2017-10-01 26 views
6

Có thể sử dụng Công cụ Máy ảnh của Excel với EPPlus không? đó là: lập trình sao chép một dải ô từ một trang tính và dán chúng dưới dạng đối tượng vẽ vào một trang tính khác?Công cụ Máy ảnh EPPlus và Excel

Cập nhật:

tôi nhận thấy rằng máy ảnh của Excel Công cụ chỉ đơn giản là tạo ra một bức tranh với một công thức. Công thức là phạm vi ô được theo dõi/quan sát bởi Excel. Nếu bất kỳ ô nào trong số các ô này thay đổi hình ảnh được Excel cập nhật.

Nhưng với EPPlus là không thể tiêm một công thức để một đối tượng hình ảnh, ví dụ:

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 

Bất kỳ workaround?

+0

Ý kiến ​​của tôi là nó không thể với EPPlus (mà không sửa đổi mã nguồn của nó), bởi vì nó chỉ doesn không biết về công cụ máy ảnh và không phát ra xml yêu cầu khi lưu tệp. – Evk

Trả lời

1

Tin xấu khi tôi ghi lại VBA Macro và phát lại, nó không hoạt động. Đây là cú pháp được tạo:

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 

Làm việc với hình ảnh trong Excel qua tự động hóa bị giới hạn. Bạn có khá nhiều giới hạn Shapes (hoặc rùng mình - clipboard):

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 

Những gì tôi thấy là tạo ra một ảnh chụp màn hình của ô đã chọn và workaround nó theo cách đó.

'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 

Hy vọng rằng ở trên sẽ đủ để giúp bạn làm cho nó hoạt động trong EPPPlus.

ps Chuyển đổi VBA C# là thực sự dễ dàng, và nó phải được tầm thường chuyển đổi ở trên để EPPPlus: https://stackoverflow.com/a/34055947/495455

+0

Ngoại trừ EPPlus hoạt động với văn phòng mở xml, không liên quan đến excel. – Evk

+0

Tôi biết, ok cho tôi một chút thời gian và tôi sẽ chuyển đổi nó. –

Các vấn đề liên quan