PDA

View Full Version : وارد کردن object در یک فایل اکسل



f_pakzad
یک شنبه 29 فروردین 1389, 22:22 عصر
به برنامه ای نیاز دارم که در آن یک فایل اکسل تولید شود و یک آبجکت در آن قرار گیرد.
فرض کنید یک فایل اکسل باز کردیم و در سربرگ insert با کلیک روی object فرمی باز میشه که در آن آبجکت مورد نظر را انتخاب میکنیم.حالا میخوام این کار از طریق برنامه نویسی باشه .فرض کنید آبجکت مورد نظر یک فایل word یا bmp است.
البته چند روزه که رو این موضوع کار میکنم و خیلی جستجو کردم اما در اکثر برنامه ها با آبجکت کار نشده.مثلاً برای افزودن تصویر ، تصویر را از یک آدرس در فایل کپی کردند.البته کلاسهایی مثل
Microsoft.Office.Interop.Excel.DrawingObjects
هست اما نمیدونم چه طور باهاش کار کنم.توابعی برای درج shape هست اما برای آبجکت نمیدونم چه کنم؟
ضمناً کد زیر برای افزودن shape به اکسل هست
در این کد سه تا مثلث به صورت گروهی در یک فایل اکسل درج میشه

CultureInfo oldCulture = System.Threading.Thread.CurrentThread.CurrentCultu re;

System.Threading.Thread.CurrentThread.CurrentCultu re = new System.Globalization.CultureInfo("en-US");


Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.ApplicationClass();
Microsoft.Office.Interop.Excel.Workbook wb = xl.Workbooks.Add(Microsoft.Office.Interop.Excel.Xl WBATemplate.xlWBATWorksheet);
Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Activ eSheet;

ws.Shapes.AddShape(Microsoft.Office.Core.MsoAutoSh apeType.msoShapeIsoscelesTriangle, 10, 10, 100, 100).Name = "shpOne";
ws.Shapes.AddShape(Microsoft.Office.Core.MsoAutoSh apeType.msoShapeIsoscelesTriangle, 150, 10, 100, 100).Name = "shpTwo";
ws.Shapes.AddShape(Microsoft.Office.Core.MsoAutoSh apeType.msoShapeIsoscelesTriangle, 300, 10, 100, 100).Name = "shpThree";
object[] shapeArray = { "shpOne", "shpTwo", "shpThree" };

Microsoft.Office.Interop.Excel.ShapeRange rng = ws.Shapes.get_Range(shapeArray);
Microsoft.Office.Interop.Excel.Shape grp = rng.Group();
xl.Visible = true;;
ممنون میشم اگر کمک کنید یا حتی مرجعی برای مطالعه د راین زمینه بهم معرفی کنید

f_pakzad
دوشنبه 30 فروردین 1389, 15:39 عصر
دوستان..میشه یه نگاهکی بندازید؟:گریه:

f_pakzad
سه شنبه 31 فروردین 1389, 13:10 عصر
روش اضافه کردن یه word object در فایل اکسل رو تونستم بنویسم:

Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.ApplicationClass();
ws.Shapes.AddOLEObject("Word.Document.12", missing, false, false, missing, missing, missing, 1, 1, 300, 300);
حالا تنها کاری که مونده اینه که چه طوری باید به این آبجکت در برنامه مقدار بدم؟
تو رو خدا یه کمکی برسونید:اشتباه:

f_pakzad
سه شنبه 31 فروردین 1389, 13:48 عصر
از کد زیر برای نوشتن متن در ابجکت استفاده میکنم


Shape shape = ws.Shapes.AddOLEObject("Word.Document.12", missing, false, false,missing,missing,Microsoft.Office.Core.MsoTex tUnderlineType.msoUnderlineDashHeavyLine, 10, 10, 100, 200);

shape.Select(Type.Missing);
shape.TextFrame.Characters(missing,missing).Text = "High Risk";
اما ارور میده:

Member not found. (Exception from HRESULT: 0x80020003 (DISP_E_MEMBERNOTFOUND))