2011-05-17 74 views
0

我目前在做下面的圖像添加到我通過「互操作」C#中添加圖片從資源到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文件,我如果可以的話幾個問題。

  1. 如何在添加圖片後訪問圖片 - 例如,在其上繪製邊框。
  2. 爲我的應用程序做以上的事情意味着我必須分發圖像文件,所以我想我會把它放在應用程序資源中。如何將資源中的圖像添加到excel文件中?再次添加後,我如何訪問它以添加邊框等?

    _xlWorkSheet.Shapes.AddPicture(Properties.Resources.ImageFile); //不到風度工作

非常感謝

回答

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 interop是一個頭疼。

+0

感謝您的回答,十分讚賞。至於#2 - 我沒有用這種方式處理資源 - 你介意讓我看看實現#2所需的代碼。非常感謝 – harag 2011-05-18 20:41:16

+0

沒關係 - 我已經仔細研究了這一點。再次感謝以上。 – harag 2011-05-19 13:41:19

2

對不起還是考古學。

對於第二個問題,加入來自的ressource圖片,我可能已經發現使用剪貼板的溶液:

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