我已经使用自动化将值插入单元格,但是我从未见过任何文档,例如,演示插入除文本和/或公式之外的任何内容。
是否有人能够从外部应用程序插入图像?
答案 0 :(得分:2)
Dim FileName as string
FileName="c:\text.jpg"
Set NewPic = ActiveSheet.Pictures.Insert(FileName)
NewPic.top=100
NewPic.left=100
如果您想将图片定位到特定单元格,请选择该单元格作为范围,并使用上/左/范围来定位图片。
样品:http://exceltip.com/st/Insert_pictures_using_VBA_in_Microsoft_Excel/486.html
注意:在Excel中,单元格不能包含图片。这些图片生活在一个隐藏在细胞周围的不可见的绘图层上。它们可以根据细胞坐标进行定位,这使它感觉它们生活在“细胞”中。
答案 1 :(得分:2)
我看到它已经被回答,但请看我的帖子here。
基本上不是使用Worksheet.Pictures.Insert方法(MSDN建议您不直接使用,并返回原始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)
这不是那么简单,因为你必须指定确切的位置和尺寸,否则,非常酷!
答案 2 :(得分:1)
当然,以下代码使用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;