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

अवलोकन

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

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

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

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

todo:image_alt_text

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

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

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

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

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

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

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

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

Presentation pres = new Presentation();
try {
    IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 150, 150, 500, 300);

    IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();

    // ...
} finally {
    if (pres != null) pres.dispose();
}

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

workbook.getCell(0, "F2").setValue(-2.5);

workbook.getCell(0, "G3").setValue(6.3);

workbook.getCell(0, "H4").setValue(3);

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

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

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

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

Object value1 = cell1.getValue(); // 7.8

Object value2 = cell2.getValue(); // 2.1

लॉजिकल स्थिरांक

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

workbook.getCell(0, "A2").setValue(false);
IChartDataCell cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
Object 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! - अप्रत्याशित मान प्रकार। उदाहरण के लिये, स्ट्रिंग मान को संख्यात्मक सेल में सेट करना।
IChartDataCell cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
Object value = cell.getValue(); // मान में स्ट्रिंग "#DIV/0!" शामिल है

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

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

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

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

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

आप तुलना ऑपरेटर्स के माध्यम से सेल मानों की तुलना कर सकते हैं। इन ऑपरेटर्स से दो मानों की तुलना करने पर परिणाम एक लॉजिकल मान 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:$C4

यहाँ एक उदाहरण है कि फ़ॉर्मूले में 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]

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

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

अक्सर पूछे जाने वाले प्रश्न

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

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

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

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