एक्सेल में इस कार्यक्षमता के लिए किसी भी उपयोगकर्ता-सुलभ समर्थन का अभाव है, लेकिन आप या तो आसानी से इसके आसपास काम कर सकते हैं या VBA को खोद सकते हैं, जहां यह सुविधा प्रदान की जाती है:
"वन-शॉट" निर्यात
- ग्राफ़ का चयन करें (संपूर्ण ग्राफ़, आंतरिक घटक नहीं; इसलिए सीमा का चयन करें)।
- इसे कॉपी करें (ctrl-c, राइट-क्लिक कॉपी, जो भी आपको पसंद है)।
- एमएस पेंट खोलें।
- पेस्ट करें (आप पहले छवि का आकार कम करना चाह सकते हैं, यह फिट होने के लिए बढ़ जाएगा, लेकिन सिकुड़ा नहीं)।
- इच्छानुसार सेव करें।
थोक निर्यात
आप शायद ActiveChart.Export
VBA मैक्रो का उपयोग करना चाहते हैं , यह आपको एक फ़ाइल पथ निर्दिष्ट करने देता है और फिर एक्सेल को काम करने देता है।
नीचे एक कार्यशील प्रोटोटाइप है जिसे मैंने अभी एक साथ रखा है। इसे चलाएं और सक्रिय कार्यपुस्तिका में प्रत्येक चार्ट को उसी फ़ाइल के रूप में उसी पीएनजी प्रारूप _chart##
में फ़ाइल नाम (जहां ##
एक बढ़ती संख्या है) में निर्यात किया जाएगा ।
यह किसी भी सुरक्षा जाँच नहीं करता है (इसलिए फ़ाइलों को अधिलेखित कर देगा!) और इसमें कोई त्रुटि जाँच नहीं होती है। यह काम नहीं करेगा यदि आपने अभी तक कार्यपुस्तिका को सहेजा नहीं है, तो स्थान केवल पढ़ने के लिए या कुछ और है जो फ़ाइल के स्थान पर लिखने से रोकता है। मैंने केवल एक्सेल 2003 में इसका परीक्षण किया है (जैसा कि इस समय मेरे हाथ में है)।
दूसरे शब्दों में: अपने जोखिम पर उपयोग करें , यह केवल एक बुनियादी काम करने के उदाहरण के रूप में करना है ।
'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
If num < 10 Then
NiceFileNumber = "0" & num
Else
NiceFileNumber = num
End If
End Function
'the real function'
Sub ExportAllCharts()
Dim i As Integer, exportCount As Integer
Dim fileNum As String, fileBase As String
Dim sheetObj As Worksheet
Dim chartObj As Chart
'current file location and name, with extension stripped'
fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
exportCount = 0
'First, export all charts that are in their own sheets'
For Each chartObj In ActiveWorkbook.Charts
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
chartObj.Export fileBase & "_chart" & fileNum & ".png"
Next
'Then, export all charts that are embedded inside normal sheets'
For Each sheetObj In ActiveWorkbook.Worksheets
For i = 1 To sheetObj.ChartObjects.count
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
sheetObj.ChartObjects(i).Activate
ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
Next i
Next
End Sub
नोट: मैंने '
दोनों सिरों पर टिप्पणियों को अंकित किया है, जिसकी आवश्यकता नहीं है, लेकिन यह सुनिश्चित करने में मदद करता है कि वे यहां सही ढंग से रंगीन हैं।