जावास्क्रिप्ट का उपयोग करके प्रस्तुतियों में चार्ट वर्कशीट फ़ॉर्मूले लागू करें

अवलोकन

एक चार्ट वर्कशीट प्रस्तुति में चार्ट के पीछे का डेटा स्रोत है। यह श्रेणी और श्रृंखला नामों को संख्यात्मक मानों के साथ संग्रहीत करता है जो चार्ट द्वारा प्रदर्शित होते हैं। Aspose.Slides में यह वर्कशीट चार्ट डेटा वर्कबुक के माध्यम से उपलब्ध होती है, जिससे आप प्रोग्रामेटिक रूप से चार्ट डेटा के साथ काम कर सकते हैं।

यह लेख बताता है कि चार्ट डेटा में वर्कशीट फ़ॉर्मूले कैसे उपयोग किए जाएँ ताकि सेल मानों की गणना और अपडेट स्वतः हो सके, न कि मैन्युअल रूप से दर्ज किए जाएँ। यह फ़ॉर्मूले असाइन करने, A1-स्टाइल और R1C1-स्टाइल रेफ़रेंसेज़ का उपयोग करने, वर्कबुक फ़ॉर्मूले को पुनः‑गणना करने, और प्रस्तुति में चार्ट वर्कशीट के लिए उपलब्ध नियतांक, ऑपरेटर, सेल रेफ़रेंसेज़ और पूर्वनिर्धारित फ़ंक्शन के साथ काम करने को दिखाता है।

प्रेजेंटेशन में चार्ट स्प्रेडशीट फ़ॉर्मूला के बारे में

चार्ट स्प्रेडशीट (या चार्ट वर्कशीट) प्रस्तुति में चार्ट का डेटा स्रोत है। चार्ट स्प्रेडशीट में वह डेटा होता है जो ग्राफ़िक रूप में चार्ट पर दिखाया जाता है। जब आप PowerPoint में एक चार्ट बनाते हैं, तो इस चार्ट से जुड़ी वर्कशीट स्वचालित रूप से बनती है। सभी प्रकार के चार्ट—लाइन चार्ट, बार चार्ट, सनबर्स्ट चार्ट, पाई चार्ट आदि—के लिए चार्ट वर्कशीट बनाई जाती है। PowerPoint में चार्ट स्प्रेडशीट देखने के लिए आपको चार्ट पर डबल‑क्लिक करना होगा:

todo:image_alt_text

चार्ट स्प्रेडशीट में चार्ट तत्वों के नाम होते हैं (Category Name: Category1, Serie Name) और इन श्रेणी तथा श्रृंखलाओं के अनुरूप संख्यात्मक डेटा की एक तालिका होती है। डिफ़ॉल्ट रूप से, जब आप नया चार्ट बनाते हैं तो चार्ट स्प्रेडशीट डेटा डिफ़ॉल्ट डेटा के साथ सेट होते हैं। फिर आप वर्कशीट डेटा को मैन्युअल रूप से बदल सकते हैं।

आमतौर पर, चार्ट जटिल डेटा (जैसे वित्तीय विश्लेषण, वैज्ञानिक विश्लेषण) को दर्शाता है, जहाँ सेल्स अन्य सेल्स के मानों या अन्य गतिशील डेटा से गणना की जाती हैं। सेल का मान मैन्युअल रूप से गणना कर उसे हार्ड‑कोड करने से भविष्य में परिवर्तन कठिन हो जाता है। यदि आप किसी सेल का मान बदलते हैं, तो उससे निर्भरतावान सभी सेल्स को भी अद्यतन करने की आवश्यकता होती है। इसके अतिरिक्त, तालिका डेटा अन्य तालिकाओं के डेटा पर निर्भर कर सकता है, जिससे प्रस्तुति डेटा योजना जटिल हो जाती है और उसे आसान तथा लचीले तरीके से अपडेट करने की आवश्यकता होती है।

चार्ट स्प्रेडशीट फ़ॉर्मूला प्रस्तुति में एक अभिव्यक्ति है जो चार्ट स्प्रेडशीट डेटा को स्वचालित रूप से गणना और अपडेट करती है। स्प्रेडशीट फ़ॉर्मूला किसी विशिष्ट सेल या सेल सेट के लिए डेटा गणना तर्क को परिभाषित करता है। यह गणितीय या तर्कशील फ़ॉर्मूला हो सकता है, जो उपयोग करता है: सेल रेफ़रेंसेज़, गणितीय फ़ंक्शन, तर्कीय ऑपरेटर, अंकगणितीय ऑपरेटर, रूपांतरण फ़ंक्शन, स्ट्रिंग नियतांक आदि। फ़ॉर्मूला की परिभाषा एक सेल में लिखी जाती है, और यह सेल केवल साधारण मान नहीं रखता। स्प्रेडशीट फ़ॉर्मूला मान की गणना करता है और उसे वापस देता है, फिर यह मान सेल को असाइन किया जाता है। प्रेजेंटेशन में चार्ट स्प्रेडशीट फ़ॉर्मूले मूल रूप से Excel फ़ॉर्मूले समान होते हैं, और उनके कार्यान्वयन के लिए समान डिफ़ॉल्ट फ़ंक्शन, ऑपरेटर और नियतांक समर्थित हैं।

Aspose.Slides में चार्ट स्प्रेडशीट प्रतिनिधित्व किया जाता है Chart.getChartData.getChartDataWorkbook मेथड द्वारा ChartDataWorkbook प्रकार का।
स्प्रेडशीट फ़ॉर्मूला असाइन और बदलने के लिए उपयोग किया जाता है
ChartDataCell.setFormula मेथड।
Aspose.Slides में फ़ॉर्मूलों के लिए निम्न कार्यक्षमता समर्थित है:

  • लॉजिकल नियतांक
  • संख्यात्मक नियतांक
  • स्ट्रिंग नियतांक
  • त्रुटि नियतांक
  • अंकगणितीय ऑपरेटर
  • तुलना ऑपरेटर
  • A1‑स्टाइल सेल रेफ़रेंसेज़
  • R1C1‑स्टाइल सेल रेफ़रेंसेज़
  • पूर्वनिर्धारित फ़ंक्शन

आमतौर पर, स्प्रेडशीट अंतिम गणना किए गए फ़ॉर्मूला मानों को संग्रहीत करती है। यदि प्रस्तुति लोड होने के बाद चार्ट डेटा नहीं बदला गया, तो ChartDataCell.getValue मेथड उन मानों को पढ़ते समय लौटाता है। लेकिन यदि स्प्रेडशीट डेटा बदला गया, तो ChartDataCell.Value प्रॉपर्टी पढ़ते समय CellUnsupportedDataException फ़ेंकता है, क्योंकि असमर्थित फ़ॉर्मूले के लिए यह अपवाद उत्पन्न होता है। यह इसलिए है क्योंकि फ़ॉर्मूले सफलतापूर्वक पार्स होने पर सेल निर्भरताएँ निर्धारित हो जाती हैं और अंतिम मानों की शुद्धता जाँच ली जाती है। यदि फ़ॉर्मूला पार्स नहीं किया जा सकता, तो सेल मान की शुद्धता सुनिश्चित नहीं की जा सकती।

प्रेजेंटेशन में चार्ट स्प्रेडशीट फ़ॉर्मूला जोड़ें

सबसे पहले, नई प्रस्तुति की पहली स्लाइड पर ShapeCollection.getShapes.addChart का उपयोग करके एक चार्ट जोड़ें। चार्ट की वर्कशीट स्वचालित रूप से बनती है और आप इसे Chart.getChartData.getChartDataWorkbook मेथड से एक्सेस कर सकते हैं:

var pres = new aspose.slides.Presentation();
try {
    var chart = pres.getSlides().get_Item(0).getShapes().addChart(aspose.slides.ChartType.ClusteredColumn, 150, 150, 500, 300);
    var workbook = chart.getChartData().getChartDataWorkbook();
    // ...
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

चलिए ChartDataCell.setValue प्रॉपर्टी Object टाइप की मदद से कुछ मान सेल्स में लिखते हैं, जिसका अर्थ है कि आप किसी भी प्रकार का मान इस प्रॉपर्टी में सेट कर सकते हैं:

workbook.getCell(0, "F2").setValue(-2.5);
workbook.getCell(0, "G3").setValue(6.3);
workbook.getCell(0, "H4").setValue(3);

अब फ़ॉर्मूला सेल में लिखने के लिए आप ChartDataCell.setFormula मेथड का उपयोग कर सकते हैं:

Note: ChartDataCell.setFormula मेथड A1‑स्टाइल सेल रेफ़रेंसेज़ सेट करने के लिए उपयोग किया जाता है।

R1C1‑फ़ॉर्मूला सेल रेफ़रेंस सेट करने के लिए आप ChartDataCell.setR1C1Formula मेथड का उपयोग कर सकते हैं:

फ़िर यदि आप सेल B2 और C2 के मान पढ़ते हैं, तो वे गणना किए जाएंगे:

var value1 = cell1.getValue();// 7.8
var value2 = cell2.getValue();// 2.1

लॉजिकल नियतांक

आप सेल फ़ॉर्मूलों में FALSE और TRUE जैसे लॉजिकल नियतांक का उपयोग कर सकते हैं:

workbook.getCell(0, "A2").setValue(false);
var cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
var value = cell.getValue();// मान में बूलियन "false" शामिल है

संख्यात्मक नियतांक

संख्याओं का उपयोग सामान्य या वैज्ञानिक संकेतन में करके चार्ट स्प्रेडशीट फ़ॉर्मूला बनाया जा सकता है:

workbook.getCell(0, "A2").setFormula("1 + 0.5");
workbook.getCell(0, "B2").setFormula(".3 * 1E-2");

स्ट्रिंग नियतांक

स्ट्रिंग (या लिटरल) नियतांक वह विशिष्ट मान है जिसे जैसा है वैसा ही उपयोग किया जाता है और वह बदलता नहीं है। स्ट्रिंग नियतांक में तारीखें, टेक्स्ट, संख्याएँ आदि शामिल हो सकते हैं:

workbook.getCell(0, "A2").setFormula("\"abc\"");
workbook.getCell(0, "B2").setFormula("\"2/3/2020 12:00\"");

त्रुटि नियतांक

कभी‑कभी फ़ॉर्मूले के परिणाम की गणना संभव नहीं होती। ऐसे में सेल में त्यागी मान के बजाय त्रुटि कोड प्रदर्शित होता है। प्रत्येक प्रकार की त्रुटि का विशिष्ट कोड होता है:

  • #DIV/0! - फ़ॉर्मूला शून्य से भाग देने की कोशिश कर रहा है।
  • #GETTING_DATA - सेल पर दिख सकता है, जबकि उसका मान अभी गणना में है।
  • #N/A - जानकारी अनुपलब्ध या उपलब्ध नहीं है। कारण हो सकते हैं: फ़ॉर्मूले में प्रयुक्त सेल खाली होना, अतिरिक्त स्पेस, टाइपो आदि।
  • #NAME? - किसी सेल या अन्य फ़ॉर्मूले ऑब्जेक्ट को उसका नाम नहीं मिलने पर।
  • #NULL! - फ़ॉर्मूले में त्रुटि के कारण दिख सकता है, जैसे (,) या कॉलन (:) की जगह स्पेस का उपयोग।
  • #NUM! - फ़ॉर्मूले में नंबर्स अमान्य, बहुत बड़े या बहुत छोटे हो सकते हैं।
  • #REF! - अवैध सेल रेफ़रेंस।
  • #VALUE! - अप्रत्याशित मान प्रकार। उदाहरण के तौर पर, स्ट्रिंग मान को संख्यात्मक सेल में सेट करना।
var cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
var value = cell.getValue();// मान में स्ट्रिंग "#DIV/0!" शामिल है

अंकगणितीय ऑपरेटर

आप चार्ट वर्कशीट फ़ॉर्मूलों में सभी अंकगणितीय ऑपरेटरों का उपयोग कर सकते हैं:

ऑपरेटर अर्थ उदाहरण
+ (प्लस चिन्ह) जोड़ या यूनरी प्लस 2 + 3
- (माइनस चिन्ह) घटाव या नेगेशन 2 - 3
-3
* (ऐस्टेरिस्क) गुणा 2 * 3
/ (फ़ॉरवर्ड स्लैश) भाजन 2 / 3
% (परसेंट चिन्ह) प्रतिशत 30%
^ (कैरट) घातांक 2 ^ 3

Note: मूल्यांकन क्रम बदलने के लिए उस भाग को कोष्ठकों में घेरें जिसे पहले गणना करना है।

तुलनात्मक ऑपरेटर

आप तुलना ऑपरेटरों के माध्यम से सेल मानों की तुलना कर सकते हैं। जब दो मानों की इन ऑपरेटरों से तुलना की जाती है, तो परिणाम एक लॉजिकल मान TRUE या FALSE होता है:

ऑपरेटर अर्थ अर्थ
= (इक्वल साइन) बराबर A2 = 3
<> (नॉट इक्वल साइन) बराबर नहीं A2 <> 3
> (ग्रेटर थैन साइन) बड़ा A2 > 3
>= (ग्रेटर थैन या इक्वल साइन) बड़ा या बराबर A2 >= 3
< (लेस थैन साइन) छोटा A2 < 3
<= (लेस थैन या इक्वल साइन) छोटा या बराबर A2 <= 3

A1‑स्टाइल सेल रेफ़रेंसेज़

A1‑स्टाइल सेल रेफ़रेंसेज़ उन वर्कशीट्स के लिए उपयोग की जाती हैं जहाँ कॉलम का पहचानकर्ता अक्षर (जैसे “A") और पंक्ति का पहचानकर्ता संख्या (जैसे “1") होता है। A1‑स्टाइल सेल रेफ़रेंसेज़ को इस प्रकार उपयोग किया जा सकता है:

सेल रेफ़रेंस उदाहरण
Absolute Relative Mixed
Cell $A$2 A2

A$2

$A2

Row $2:$2 2:2 -
Column $A:$A A:A -
Range $A$2:$C$4 A2:C4

$A$2:C4

A$2:$C$4

यहाँ एक उदाहरण है जो फ़ॉर्मूले में A1‑स्टाइल सेल रेफ़रेंस का उपयोग दर्शाता है:

workbook.getCell(0, "A2").setFormula("C3 + SUM(F2:H5)");

R1C1‑स्टाइल सेल रेफ़रेंसेज़

R1C1‑स्टाइल सेल रेफ़रेंसेज़ उन वर्कशीट्स के लिए उपयोग की जाती हैं जहाँ पंक्ति और कॉलम दोनों का पहचानकर्ता संख्यात्मक होता है। R1C1‑स्टाइल सेल रेफ़रेंसेज़ को इस प्रकार उपयोग किया जा सकता है:

सेल रेफ़रेंस उदाहरण
Absolute Relative Mixed
Cell R2C3 R[2]C[3] R2C[3]
R[2]C3
Row R2 R[2] -
Column C3 C[3] -
Range R2C3:R5C7 R[2]C[3]:R[5]C[7] R2C3:R[5]C[7]
R[2]C3:R5C[7]

यहाँ एक उदाहरण है जो फ़ॉर्मूले में A1‑स्टाइल सेल रेफ़रेंस का उपयोग दर्शाता है:

workbook.getCell(0, "A2").setR1C1Formula("R2C4 + SUM(R5C6:R7C9)");

पूर्वनिर्धारित फ़ंक्शन

फ़ॉर्मूलों में उपयोग के लिए पूर्वनिर्धारित फ़ंक्शन उपलब्ध हैं जो उनके कार्यान्वयन को सरल बनाते हैं। ये फ़ंक्शन सामान्यतः प्रयुक्त ऑपरेशनों को समेटे होते हैं, जैसे:

  • ABS
  • AVERAGE
  • CEILING
  • CHOOSE
  • CONCAT
  • CONCATENATE
  • DATE (1900 डेट सिस्टम)
  • DAYS
  • FIND
  • FINDB
  • IF
  • INDEX (रेफ़रेंस फ़ॉर्म)
  • LOOKUP (वेक्टर फ़ॉर्म)
  • MATCH (वेक्टर फ़ॉर्म)
  • MAX
  • SUM
  • VLOOKUP

FAQ

क्या फ़ॉर्मूलों वाले चार्ट के डेटा स्रोत के रूप में बाहरी Excel फ़ाइलें समर्थित हैं?

हाँ। Aspose.Slides बाहरी वर्कबुक को chart’s data source के रूप में समर्थन देता है, जिससे आप प्रस्तुति के बाहर स्थित XLSX फ़ाइल के फ़ॉर्मूलों का उपयोग कर सकते हैं।

क्या चार्ट फ़ॉर्मूले उसी वर्कबुक में शीट नाम द्वारा अन्य शीट्स को रेफ़र कर सकते हैं?

हाँ। फ़ॉर्मूले standard Excel रेफ़रेंस मॉडल का पालन करते हैं, इसलिए आप उसी वर्कबुक या बाहरी वर्कबुक की अन्य शीट्स को रेफ़र कर सकते हैं। बाहरी रेफ़रेंस के लिए, Excel सिंटैक्स का उपयोग करके पाथ और वर्कबुक नाम शामिल करें।