2017-10-01 5 views
6

क्या ईपीप्लस के साथ एक्सेल के कैमरा टूल का उपयोग करना संभव है? यह है: प्रोग्रामेटिक रूप से एक शीट से कोशिकाओं की एक श्रृंखला की प्रतिलिपि बनाएँ और उन्हें एक अन्य शीट में एक ड्राइंग ऑब्जेक्ट के रूप में पेस्ट करें?ईपीप्लस और एक्सेल का कैमरा टूल

अद्यतन:

मैंने देखा है कि एक्सेल के कैमरा उपकरण बस एक फार्मूले के साथ एक तस्वीर बनाता है। सूत्र Excel द्वारा देखे/देखे जाने वाले कक्षों की श्रृंखला है। यदि इनमें से कोई भी कक्ष बदलता है तो चित्र Excel द्वारा अपडेट किया जाता है।

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 

कोई वैकल्पिक हल:

लेकिन EPPlus साथ, जैसे एक चित्र ऑब्जेक्ट को एक सूत्र इंजेक्षन करने के लिए संभव नहीं है?

+0

मेरे राय है कि यह संभव नहीं EPPlus साथ (अपने स्रोत कोड को संशोधित बिना) है, क्योंकि यह सिर्फ करता है कैमरा उपकरण के बारे में नहीं पता है और फ़ाइल सहेजते समय आवश्यक XML को उत्सर्जित नहीं करता है। – Evk

उत्तर

1

खराब समाचार जब मैं एक वीबीए मैक्रो रिकॉर्ड करता हूं और इसे फिर से चलाता हूं, यह काम नहीं करता है। यह उत्पन्न वाक्यविन्यास है:

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 

स्वचालन के माध्यम से एक्सेल में छवियों के साथ काम करना सीमित है। आप काफी आकृतियाँ (या कंपकंपी - क्लिपबोर्ड) तक सीमित हैं:

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 

उम्मीद है कि उपर्युक्त ईपीपीप्लस में काम करने में आपकी सहायता के लिए पर्याप्त होगा।

ps सी # करने के लिए VBA परिवर्तित करना आसान है, और यह तुच्छ EPPPlus के लिए ऊपर परिवर्तित किया जाना चाहिए: https://stackoverflow.com/a/34055947/495455

+0

ईपीप्लस ऑफिस ओपन एक्सएमएल के साथ काम करता है, एक्सेल के साथ इंटरऑप्स नहीं करता है। – Evk

+0

मुझे पता है, ठीक है मुझे कुछ समय दें और मैं इसे बदल दूंगा। –

संबंधित मुद्दे