是否可以将Excel的相机工具与EPPlus一起使用?即:以编程方式从一张纸上复制一系列单元格并将它们作为绘图对象粘贴到另一张纸中?
更新
我注意到Excel的相机工具只是创建一个带公式的图片。公式是Excel要监视/观察的单元格范围。如果这些单元格中的任何一个更改,则图片将由Excel更新。
但是EPPlus无法将公式注入Picture对象,例如:
var picture = worksheet.Drawings.AddPicture("picture", (FileInfo)null);
picture.SetPosition(1, 0, 1, 0);
picture.Formula = "A1:D9"; // ...there is no "Formula" property for ExcelPicture object
任何解决方法?
答案 0 :(得分:1)
当我录制VBA宏并重播它时,这是个坏消息,它不起作用。这是生成的语法:
Range("A2").Select
Selection.Copy
ActiveSheet.Shapes.AddShape(, 355.5, 32.25, 72#, 72#).Select
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Application.CutCopyMode = False
通过自动化在Excel中处理图像是有限的。你几乎只限于Shapes(或 shudder - 剪贴板):
Set shp = ws.Shapes.AddPicture("C:\You.png", msoFalse, msoTrue, l, t, w, h)
shp.Name = strPic
shp.ScaleHeight Factor:=1, RelativeToOriginalSize:=msoTrue
shp.ScaleWidth Factor:=1, RelativeToOriginalSize:=msoTrue
我建议的是创建所选单元格的屏幕截图并以此方式解决方法。
'Select the cells you want to copy to image
Range("A2").Select
'Copy selected cells contents to clipboard as image
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
'Choose destination
Range("B3").Select
'Paste
ActiveSheet.Paste
'Restore previous clipboard to memory
希望以上内容足以帮助您在EPPPlus中使用它。
ps将VBA转换为C#非常简单,应该如此 将上述内容简单地转换为EPPPlus:https://stackoverflow.com/a/34055947/495455