2017-10-01 21 views
6

Czy można używać narzędzia aparatu Excel z programem EPPlus? to znaczy: programowo skopiować zakres komórek z jednego arkusza i wkleić je jako obiekt rysunkowy do innego arkusza?EPPlus i narzędzie kamery programu Excel

Aktualizacja:

zauważyłem, że Excel Camera narzędzie po prostu tworzy obraz o formule. Formuła to zakres komórek, które mają być obserwowane/obserwowane przez program Excel. Jeśli którakolwiek z tych komórek zmieni obraz, jest aktualizowany przez program Excel.

Ale z EPPlus nie jest możliwe, aby wprowadzić formułę do obiektu zdjęcia, np:

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 

Wszelkie obejście?

+0

Moja opinia jest taka, że ​​nie jest to możliwe z EPPlus (bez modyfikowania kodu źródłowego), bo to po prostu nie robi nie wie o narzędziu kamery i nie emituje wymaganego xml podczas zapisywania pliku. – Evk

Odpowiedz

1

Złe wieści, gdy nagrywam makro VBA i odtwarzam je, to nie działa. Jest to składnia wygenerowana:

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 

Praca z obrazami w Excelu za pośrednictwem automatyzacji jest ograniczona. Masz prawie ogranicza się do kształtów (lub dreszczem - schowka):

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 

Co ja sugeruję, to stworzyć zrzut wybranej komórce i obejść w ten sposób.

'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 

Mamy nadzieję, że powyższe informacje pomogą Ci w pracy z EPPPlus.

ps Konwersja VBA do C# jest naprawdę łatwe i powinno być trywialne przekształcenie powyższego celu EPPPlus: https://stackoverflow.com/a/34055947/495455

+0

Z wyjątkiem EPPlus działa z otwartym xml pakietu office, nie współdziała z excel. – Evk

+0

Wiem, ok daj mi trochę czasu, a ja to skonwertuję. –