是可以通过COM插入图像到Excel单元格?

我已经使用自动化将值插入单元格,但是我从来没有见过任何文档,例如,显示插入除文本和/或公式之外的任何其他文档。

有没有人能够从外部应用程序插入图像?

Dim FileName as string FileName="c:\text.jpg" Set NewPic = ActiveSheet.Pictures.Insert(FileName) NewPic.top=100 NewPic.left=100 

如果要将图片定位到特定单元格,请select该单元格作为范围,然后使用该范围顶部/左侧/带来定位图片。

示例: http : //exceltip.com/st/Insert_pictures_using_VBA_in_Microsoft_Excel/486.html

注意 :在Excel中,单元格不能包含图片。 图片生活在一个浮动在细胞周围的不可见绘图层上。 它们可以根据细胞坐标进行定位,这使它感觉像是在细胞中生存。

我看到它已经被回答了,但是在这里看到我的post。

基本上,而不是使用Worksheet.Pictures.Insert方法(MSDNbuild议您不要直接使用,并返回一个原始的COM对象),请尝试Worksheet.Shapes.AddPicture方法。

 Dim range As Microsoft.Office.Interop.Excel.Range Dim pic as Microsoft.Office.Interop.Excel.Shape Dim filePath as String range = ... filePath = ... pic = range.Worksheet.Shapes.AddPicture(filePath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoCTrue, range.Left, range.Top, 300, 300) 

这不是那么直截了当,因为你必须指定确切的位置和尺寸,否则,非常酷!

当然,下面的代码给出了使用Microsoft Interop库的一个很好的例子:

  string excelfilename = @"C:\excelfile.xlsx"; string picturename = @"C:\image.jpg"; object missing = Type.Missing; Microsoft.Office.Interop.Excel.Application app = new ApplicationClass(); Workbook book = app.Workbooks.Add(missing); Worksheet sheet = (Worksheet)book.ActiveSheet; Pictures pics = (Pictures)sheet.Pictures(missing); pics.Insert(picturename, missing); book.SaveAs(excelfilename, missing, missing, missing, missing, missing, XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing); app.Quit(); app = null;