我目前正在执行以下操作,将图像添加到我正在通过“interop”创建的excel文件中
private Excel.Workbook _xlWorkBook;
_xlWorkSheet.Shapes.AddPicture(appPath + @"\ImageFile.png", Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, 5, 5, 60, 60);
如果可以,我有几个问题。
为我的应用程序执行上述操作意味着我必须分发图像文件,所以我想我会把它放在应用程序资源中。如何将资源中的图像添加到Excel文件中?再次添加后,如何访问它以添加边框等?
_xlWorkSheet.Shapes.AddPicture(Properties.Resources.ImageFile); //不能工作
非常感谢
答案 0 :(得分:2)
抱歉或考古学。
对于第二个问题,从资源中添加图片,我可能已经找到了使用剪贴板的解决方案:
System.Drawing.Bitmap pic = Properties.Resources.my_ressource;
System.Windows.Forms.Clipboard.SetImage(pic);
Range position = (Range)myWorksheet.Cells[Y, X];
myWorksheet.Paste(position); //copy the clipboard to the given position
答案 1 :(得分:1)
1。)我相信您可以使用
访问图片// after adding the picture
Picture pic = (Picture) ActiveSheet.Pictures(ActiveSheet.Pictures.Count - 1);
pic.Border.LineStyle = XlLineStyle.xlContinuous;
pic.Border.Weight = XlBorderWeight.xlMedium;
或者
// add the picture using Pictures.Insert
// this should return a Picture cast-able object
Picture pic = (Picture) ActiveSheet.Pictures.Insert(FileName);
// etc...
2。)最简单的方法是从资源中提取文件,将其写入临时文件,将其添加到Excel中,然后删除临时文件。
此代码非常未经测试。 Excel互操作是头痛。
答案 2 :(得分:0)
RE:2.我这样做:
S = Shapes.AddPicture(filename,MsoTriState.msoFalse,MsoTriState.msoTrue,0,0,50,50);
S.Name = "Picture";
S.Placement = XlPlacement.xlMoveAndSize;