Presentations में C++ का उपयोग करके चार्ट वर्कशीट फ़ॉर्मूले लागू करें

परिचय

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

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

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

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

todo:image_alt_text

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

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

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

Aspose.Slides में चार्ट स्प्रेडशीट को ChartData::get_ChartDataWorkbook() मेथड के माध्यम से प्रतिनिधित्व किया जाता है, जो कि IChartDataWorkbook प्रकार से संबंधित है। स्प्रेडशीट फ़ॉर्मूला को असाइन और बदलाया जा सकता है IChartDataCell::set_Formula() मेथड द्वारा। Aspose.Slides में फ़ॉर्मूलों के लिए निम्नलिखित कार्यक्षमता समर्थित है:

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

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

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

पहले, नई प्रस्तुतीकरण की पहली स्लाइड में IShapeCollection::AddChart() के माध्यम से एक चार्ट जोड़ें। चार्ट की वर्कशीट स्वचालित रूप से बन जाती है और इसे ChartData::get_ChartDataWorkbook() मेथड से एक्सेस किया जा सकता है:

auto presentation = System::MakeObject<Presentation>();
    
auto chart = presentation->get_Slides()->idx_get(0)->get_Shapes()->AddChart(ChartType::ClusteredColumn, 150.0f, 150.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

// ...

अब Object प्रकार की IChartDataCell.set_Value() मेथड से कुछ मान सेल्स में लिखें, जिससे आप मेथड में कोई भी मान पास कर सकते हैं:

workbook->GetCell(0, u"F2")->set_Value(System::ObjectExt::Box<double>(-2.5));
workbook->GetCell(0, u"G3")->set_Value(System::ObjectExt::Box<double>(6.3));
workbook->GetCell(0, u"H4")->set_Value(System::ObjectExt::Box<int32_t>(3));

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

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

R1C1Formula सेल रेफ़रेंस सेट करने के लिए, आप IChartDataCell::set_R1C1Formula() मेथड उपयोग कर सकते हैं:

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

auto value1 = cell1->get_Value(); // 7.8
auto value2 = cell2->get_Value(); // 2.1

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

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

संख्यात्मक स्थिरांक

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

स्ट्रिंग स्थिरांक

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

त्रुटि स्थिरांक

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

  • #DIV/0! - फ़ॉर्मूला शून्य से विभाजन करने की कोशिश करता है।
  • #GETTING_DATA - सेल में दिख सकता है जबकि उसका मान अभी गणना हो रहा है।
  • #N/A - सूचना अनुपलब्ध या उपलब्ध नहीं है। कुछ कारण हो सकते हैं: फ़ॉर्मूले में उपयोग किए गए सेल खाली हों, अतिरिक्त स्पेस वर्ण, टाइपो आदि।
  • #NAME? - कोई निश्चित सेल या अन्य फ़ॉर्मूला ऑब्जेक्ट उसके नाम से नहीं मिला।
  • #NULL! - फ़ॉर्मूले में त्रुटि के कारण दिख सकता है, जैसे: (,) या कोलन (:) के स्थान पर स्पेस।
  • #NUM! - फ़ॉर्मूले में संख्या अमान्य, बहुत बड़ी या बहुत छोटी हो सकती है।
  • #REF! - अमान्य सेल रेफ़रेंस।
  • #VALUE! - अप्रत्याशित मान प्रकार। उदाहरण के लिये, स्ट्रिंग मान को संख्यात्मक सेल में सेट करना।

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

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

ऑपरेटर अर्थ उदाहरण
+ (प्लस चिह्न) जोड़ या यूनरी प्लस 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:$C4

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

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‑स्टाइल सेल रेफ़रेंस को फ़ॉर्मूले में उपयोग किया जाता है:

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

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

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

FAQ

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

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

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

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