Diagram munkalap képletek alkalmazása prezentációkban C++ használatával

Áttekintés

A PowerPoint-diagramok általában a forrásadataikat egy beágyazott munkalapon tárolják. Az Aspose.Slides for C++-ban hozzáférhet ehhez a munkalaphoz a diagram adat‑munkafüzeten keresztül, beírhat bemeneti értékeket, képleteket rendelhet a cellákhoz, kiszámíthatja a támogatott képleteket, és a kiszámított cellákat diagramadatként használhatja.

Ez a cikk bemutatja a teljes képletszintetikus munkafolyamatot: diagram létrehozása, a munkalap feltöltése, A1‑stílusú vagy R1C1‑stílusú képletek hozzárendelése, azok újraszámítása, a kiszámított értékek kiolvasása, a cellák diagram‑sorozatra kapcsolása, és a prezentáció mentése. Emellett leírja a támogatott képletszintaxist, a beépített függvény‑részhalmazt, a gyorsítótárazott értékeket, a nem támogatott képleteket és a táblázat‑specifikus hibákat.

Diagram munkalapok és képletek

Egy diagram munkalapja tartalmazza a diagram által használt kategóriákat, sorozatneveket és értékeket. PowerPoint‑ban a munkalapot a diagram adat‑szerkesztő megnyitásával ellenőrizheti:

PowerPoint-diagram a beágyazott munkalapjával megnyitva, a kategória- és sorozatadatok megjelenítése

Az Aspose.Slides‑ben a munkalap a IChartDataWorkbook interfészen keresztül érhető el. A1‑stílusú képletekhez használja a IChartDataCell::set_Formula metódust, R1C1‑stílusú képletekhez a IChartDataCell::set_R1C1Formula metódust. A bemeneti cellák vagy képletek módosítása után hívja a IChartDataWorkbook::CalculateFormulas metódust a támogatott képletek újraszámításához és a megfelelő cellaértékek frissítéséhez.

Egy kiszámított cella továbbra is az eredményét a IChartDataCell::get_Value metódussal adja vissza. Ez akkor fontos, ha a kódban kell ellenőriznie a képlet eredményét, vagy a cellát diagramadat‑ponthoz szeretné használni.

Diagram létrehozása és a munkalap képleteinek kiszámítása

Az alábbi példa egy vég‑től‑végéig folyamatot mutat be. Létrehoz egy klaszter‑oszlop diagramot, törli a mintaadatokat, beírja a negyedéves bevételi és kiadási értékeket, képletekkel számolja ki a profitot, kiolvassa az eredményeket, a kiszámított cellákat diagramértékként használja, és menti a prezentációt.

#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartCategoryCollection.h>
#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataCell.h>
#include <DOM/Chart/IChartDataPointCollection.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/Chart/IChartSeries.h>
#include <DOM/Chart/IChartSeriesCollection.h>
#include <DOM/Chart/IDataLabelCollection.h>
#include <DOM/Chart/IDataLabelFormat.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/object_ext.h>
#include <system/string.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Export;
using namespace System;

auto presentation = MakeObject<Presentation>();

auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 600.0f, 350.0f);
auto chartData = chart->get_ChartData();
auto workbook = chartData->get_ChartDataWorkbook();
const int32_t worksheetIndex = 0;

chartData->get_Series()->Clear();
chartData->get_Categories()->Clear();
workbook->Clear(worksheetIndex);

auto category1 = workbook->GetCell(worksheetIndex, u"A2", ObjectExt::Box<String>(u"Q1"));
auto category2 = workbook->GetCell(worksheetIndex, u"A3", ObjectExt::Box<String>(u"Q2"));
auto category3 = workbook->GetCell(worksheetIndex, u"A4", ObjectExt::Box<String>(u"Q3"));

workbook->GetCell(worksheetIndex, u"B1", ObjectExt::Box<String>(u"Revenue"));
workbook->GetCell(worksheetIndex, u"C1", ObjectExt::Box<String>(u"Expenses"));
workbook->GetCell(worksheetIndex, u"D1", ObjectExt::Box<String>(u"Profit"));

workbook->GetCell(worksheetIndex, u"B2")->set_Value(ObjectExt::Box<double>(120.0));
workbook->GetCell(worksheetIndex, u"C2")->set_Value(ObjectExt::Box<double>(80.0));
workbook->GetCell(worksheetIndex, u"B3")->set_Value(ObjectExt::Box<double>(150.0));
workbook->GetCell(worksheetIndex, u"C3")->set_Value(ObjectExt::Box<double>(95.0));
workbook->GetCell(worksheetIndex, u"B4")->set_Value(ObjectExt::Box<double>(135.0));
workbook->GetCell(worksheetIndex, u"C4")->set_Value(ObjectExt::Box<double>(110.0));

auto profit1 = workbook->GetCell(worksheetIndex, u"D2");
auto profit2 = workbook->GetCell(worksheetIndex, u"D3");
auto profit3 = workbook->GetCell(worksheetIndex, u"D4");

profit1->set_Formula(u"B2-C2");
profit2->set_Formula(u"B3-C3");
profit3->set_Formula(u"B4-C4");

workbook->CalculateFormulas();

auto q1Profit = profit1->get_Value(); // 40
auto q2Profit = profit2->get_Value(); // 55
auto q3Profit = profit3->get_Value(); // 25

chartData->get_Categories()->Add(category1);
chartData->get_Categories()->Add(category2);
chartData->get_Categories()->Add(category3);

auto profitSeries = chartData->get_Series()->Add(workbook->GetCell(worksheetIndex, u"D1"), chart->get_Type());
profitSeries->get_DataPoints()->AddDataPointForBarSeries(profit1);
profitSeries->get_DataPoints()->AddDataPointForBarSeries(profit2);
profitSeries->get_DataPoints()->AddDataPointForBarSeries(profit3);
profitSeries->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true);

presentation->Save(u"chart-formulas.pptx", SaveFormat::Pptx);

A diagram adatpontjai a D2:D4 tartományra hivatkoznak, így a diagram a kiszámított profitértékeket használja. Ebben a munkafolyamatban nincs külön diagram‑frissítő hívás: először számolja újra a munkafüzetet, majd használja vagy mentse a kiszámított cellákra mutató diagramadatokat.

A1‑stílusú képletek használata

Az A1 jelölés betűkkel azonosítja az oszlopokat, számokkal a sorokat. A‑1‑stílusú kifejezéseket a IChartDataCell::set_Formula metódussal rendelje hozzá.

#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataCell.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <system/object_ext.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace System;

auto presentation = MakeObject<Presentation>();

auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

workbook->GetCell(0, u"C3")->set_Value(ObjectExt::Box<int32_t>(10));
workbook->GetCell(0, u"F2")->set_Value(ObjectExt::Box<int32_t>(2));
workbook->GetCell(0, u"G2")->set_Value(ObjectExt::Box<int32_t>(3));
workbook->GetCell(0, u"H2")->set_Value(ObjectExt::Box<int32_t>(4));

auto cell = workbook->GetCell(0, u"A2");
cell->set_Formula(u"C3+SUM(F2:H2)");

workbook->CalculateFormulas();

auto value = cell->get_Value(); // 19

A gyakori A1‑hivatkozási formák:

Hivatkozás Relatív Abszolút Vegyes
Cella A2 $A$2 A$2, $A2
Sor 2:2 $2:$2
Oszlop A:A $A:$A
Tartomány A2:C4 $A$2:$C$4 A$2:$C4, $A2:C$4

A relatív hivatkozások megváltozhatnak, ha egy képletet egy táblázatkezelő alkalmazás átmozgat vagy másol. Az abszolút hivatkozások mindkét koordinátát rögzítik, míg a vegyes hivatkozások csak egy sort vagy egy oszlopot rögzítenek.

R1C1‑stílusú képletek használata

Az R1C1 jelölés számszerűen azonosítja a sorokat és oszlopokat. A relatív hivatkozások szögletes zárójelekben adandó eltolást tartalmaznak. Ezt a szintaxist a IChartDataCell::set_R1C1Formula metódussal adja meg.

#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataCell.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <system/object_ext.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace System;

auto presentation = MakeObject<Presentation>();

auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

workbook->GetCell(0, u"B2")->set_Value(ObjectExt::Box<int32_t>(12));
workbook->GetCell(0, u"C2")->set_Value(ObjectExt::Box<int32_t>(5));

auto cell = workbook->GetCell(0, u"D2");
cell->set_R1C1Formula(u"RC[-2]-RC[-1]");

workbook->CalculateFormulas();

auto value = cell->get_Value(); // 7

A gyakori R1C1‑hivatkozási formák:

Hivatkozás Relatív Abszolút Vegyes
Cella R[2]C[3] R2C3 R2C[3], R[2]C3
Sor R[2] R2
Oszlop C[3] C3
Tartomány R[2]C[3]:R[5]C[7] R2C3:R5C7 R2C3:R[5]C[7], R[2]C3:R5C[7]

Például a D2 cellában az RC[-2] a ugyanabban sorban két oszloppal balra lévő cellát jelenti (B2).

Képletállandók és operátorok

A beépített képletelemző támogatja a logikai értékeket, numerikus literálokat, szövegeket, táblázat‑hibákat, aritmetikai operátorokat és összehasonlító operátorokat.

Állandók és literálok

Típus Példák Megjegyzések
Logikai TRUE, FALSE Közvetlenül használható logikai kifejezésekben, például A2=TRUE.
Szám 1, 0.5, .3, 1E-2 A közönséges és a tudományos jelölés egyaránt támogatott.
Szöveg "abc", "2/3/2020 12:00" A szöveg‑literálok dupla idézőjelben szerepelnek a képleten belül.
Hibás eredmény #DIV/0!, #N/A, #REF! Egy érvényes képlet visszaadhat táblázat‑hibát a normál eredmény helyett.

Ez a példa több állandótípust is bemutat:

#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <system/object_ext.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace System;

auto presentation = MakeObject<Presentation>();

auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();

workbook->GetCell(0, u"A2")->set_Value(ObjectExt::Box<bool>(false));
workbook->GetCell(0, u"B2")->set_Formula(u"A2=TRUE");
workbook->GetCell(0, u"C2")->set_Formula(u"1+0.5");
workbook->GetCell(0, u"D2")->set_Formula(u".3*1E-2");
workbook->GetCell(0, u"E2")->set_Formula(u"\"abc\"");
workbook->GetCell(0, u"F2")->set_Formula(u"2/0");

workbook->CalculateFormulas();

auto logicalValue = workbook->GetCell(0, u"B2")->get_Value(); // Hamis
auto numericValue = workbook->GetCell(0, u"C2")->get_Value(); // 1.5
auto scientificValue = workbook->GetCell(0, u"D2")->get_Value(); // 0.003
auto stringValue = workbook->GetCell(0, u"E2")->get_Value(); // abc
auto errorValue = workbook->GetCell(0, u"F2")->get_Value(); // #DIV/0!

Aritmetikai operátorok

Operátor Jelentés Példa
+ Összeadás vagy egyelőjeles plusz 2+3
- Kivonás vagy negáció 2-3, -3
* Szorzás 2*3
/ Osztás 2/3
% Százalék 30%
^ Hatványozás 2^3

Használjon zárójeleket a kiértékelési sorrend egyértelművé tételéhez, például (A2+B2)*C2.

Összehasonlító operátorok

Az összehasonlító kifejezések logikai értéket adnak vissza.

Operátor Jelentés Példa
= Egyenlő A2=3
<> Nem egyenlő A2<>3
> Nagyobb A2>3
>= Nagyobb vagy egyenlő A2>=3
< Kisebb A2<3
<= Kisebb vagy egyenlő A2<=3

Támogatott előre definiált függvények

Az Aspose.Slides beépített képletelemzője diagram‑munkalapokhoz készült, de nem egy teljes Excel‑számítási motor. A dokumentált függvénykészlet a lenti függvényekre korlátozódik. Ne tételezze, hogy egy tetszőleges Excel‑függvény újraszámítható a IChartDataWorkbook::CalculateFormulas metódussal.

Függvény Cél vagy támogatott forma Példa
ABS Abszolút érték ABS(A2)
AVERAGE Aritmetikai közép AVERAGE(B2:B5)
CEILING Szám felfelé kerekítése többszörösre CEILING(A2,5)
CHOOSE Érték kiválasztása index szerint CHOOSE(A2,"Low","High")
CONCAT Szövegelemek összefűzése CONCAT(A2,B2)
CONCATENATE Szövegelemek összefűzése CONCATENATE(A2," ",B2)
DATE Dátumérték létrehozása a 1900‑as dátumrendszerrel DATE(2026,8,19)
DAYS Napok száma két dátum között DAYS(B2,A2)
FIND Szöveg keresése egy másik szövegben FIND("-",A2)
FINDB Byte‑orientált szövegre keresés FINDB("a",A2)
IF Feltételes eredmény IF(A2>0,A2,0)
INDEX Referencia forma INDEX(A2:C4,2,3)
LOOKUP Vektor forma LOOKUP(A2,B2:B5,C2:C5)
MATCH Vektor forma MATCH(A2,B2:B5,0)
MAX Maximális érték MAX(B2:B5)
SUM Értékek összeadása SUM(B2:B5)
VLOOKUP Vertikális keresés VLOOKUP(A2,B2:D10,3,FALSE)

A táblázatban feltüntetett korlátozások jelentősek: az INDEX referencia‑formában dokumentált, míg a LOOKUP és a MATCH vektor‑formában. A DATE a 1900‑as dátumrendszert használja. A felsoroltakon kívül szereplő funkciókat az Aspose.Slides képletelemzője nem támogatja, hacsak külön nincsenek dokumentálva.

Képletek számítása preferált kultúrával

Egyes diagram‑munkafüzet függvények a szöveget kultúraspecifikus szabályok szerint értelmezik. Ez különösen fontos a dupla‑bájtos karakterkészleteket (DBCS) használó nyelvekhez készült függvényeknél. Az ilyen képletek helyes számításához hozza létre a LoadOptions objektumot, állítsa be a ISpreadsheetOptions::set_PreferredCulture beállítást a LoadOptions::set_SpreadsheetOptions segítségével, majd töltse be a prezentációt.

#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/IChart.h>
#include <DOM/IShape.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <DOM/SpreadsheetOptions.h>
#include <system/globalization/culture_info.h>
#include <system/object_ext.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace System;
using namespace System::Globalization;

auto japaneseCulture = CultureInfo::GetCultureInfo(u"ja-JP");

auto spreadsheetOptions = MakeObject<SpreadsheetOptions>();
spreadsheetOptions->set_PreferredCulture(japaneseCulture);

auto loadOptions = MakeObject<LoadOptions>();
loadOptions->set_SpreadsheetOptions(spreadsheetOptions);

auto presentation = MakeObject<Presentation>(u"presentation.pptx", loadOptions);

for (int32_t slideIndex = 0; slideIndex < presentation->get_Slides()->get_Count(); slideIndex++)
{
    auto slide = presentation->get_Slide(slideIndex);

    for (int32_t shapeIndex = 0; shapeIndex < slide->get_Shapes()->get_Count(); shapeIndex++)
    {
        auto shape = slide->get_Shape(shapeIndex);
        if (ObjectExt::Is<IChart>(shape))
        {
            auto chart = ExplicitCast<IChart>(shape);
            chart->get_ChartData()->get_ChartDataWorkbook()->CalculateFormulas();
        }
    }
}

A preferált kultúra a prezentáció betöltésének konfigurációjának része, ezért a Presentation példány létrehozása előtt adja meg. Használja a munkafüzet képletek által elvárt kultúrát; például a japán szabályokhoz a ja-JP értéket alkalmazza.

Újraszámítás és gyorsítótárazott értékek

A táblázatfájlok gyakran tárolják a képletet és annak legutóbbi kiszámított értékét is. Az Aspose.Slides ezért a IChartDataCell::get_Value metódussal tudja kiolvasni a gyorsítótárazott értéket, amikor a prezentáció betöltődik, és a diagram adatát nem módosították.

A bemeneti cellák vagy képletek módosítása után ne támaszkodjon a régi gyorsítótárazott eredményre. Hívja a IChartDataWorkbook::CalculateFormulas metódust a kiszámított értékek kiolvasása vagy a diagramadatok mentése előtt, ha azok függnek tőlük.

A támogatott részhalmazon kívül eső képletek esetén az Aspose.Slides előfordulhat, hogy nem tudja értelmezni a képletet vagy annak függőségeit. Ha a munkafüzetet módosították, a korábbi gyorsítótárazott érték már nem tekinthető megbízhatónak. Ilyen esetben egy nem támogatott adatokkal rendelkező cella értékének kiolvasása CellUnsupportedDataException kivételt dobhat.

Ha a diagram olyan Excel‑függvényektől függ, amelyet az Aspose.Slides nem értékel ki, számolja ki ezeket a képleteket egy olyan táblázatkezelő motorral, amely támogatja őket, és írja vissza a kapott értékeket a diagram‑munkafüzetbe. Ne helyettesítse a nem támogatott képleteket becsült értékekkel.

Képlethibák kezelése

Két különböző problématípust kell megkülönböztetni.

Egy képlet lehet érvényes, de táblázat‑hibát eredményezhet, például #DIV/0!, #N/A, #NAME?, #NULL!, #NUM!, #REF! vagy #VALUE!. Ebben az esetben a hiba‑token egy cella‑eredmény, és a IChartDataCell::get_Value segítségével visszakérhető.

Egy képlet a parse‑, hivatkozási-, függőségi- vagy támogatott‑adat szintjén is hibát okozhat. Az Aspose.Slides ezekhez a helyzetekhez táblázat‑specifikus kivételeket biztosít: CellInvalidFormulaException, CellInvalidReferenceException, CellCircularReferenceException és CellUnsupportedDataException.

Ha a képletek sablonokból vagy felhasználói bemenetből származnak, ezeket a kivételeket kezelje a újraszámítás és az érték‑hozzáférés körül:

#include <DOM/Chart/ChartType.h>
#include <DOM/Chart/IChartData.h>
#include <DOM/Chart/IChartDataCell.h>
#include <DOM/Chart/IChartDataWorkbook.h>
#include <DOM/IChart.h>
#include <DOM/IShapeCollection.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Spreadsheet/CellCircularReferenceException.h>
#include <Spreadsheet/CellInvalidFormulaException.h>
#include <Spreadsheet/CellInvalidReferenceException.h>
#include <Spreadsheet/CellUnsupportedDataException.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Charts;
using namespace Aspose::Slides::Spreadsheet;
using namespace System;

auto presentation = MakeObject<Presentation>();

auto slide = presentation->get_Slide(0);
auto chart = slide->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50.0f, 50.0f, 500.0f, 300.0f);
auto workbook = chart->get_ChartData()->get_ChartDataWorkbook();
auto cell = workbook->GetCell(0, u"A2");
cell->set_Formula(u"SUM(B2:B5)");

try
{
    workbook->CalculateFormulas();
    auto value = cell->get_Value();
}
catch (CellInvalidFormulaException&)
{
    // Érvénytelen képlet kezelése.
}
catch (CellInvalidReferenceException&)
{
    // Érvénytelen cellahivatkozás kezelése.
}
catch (CellCircularReferenceException&)
{
    // Körkörös hivatkozás kezelése.
}
catch (CellUnsupportedDataException&)
{
    // Nem támogatott táblázat adat kezelése.
}

Gyakorlati korlátok

A diagram‑munkalapok képlet‑támogatása egy meghatározott részhalmazra vonatkozik, nem teljes Excel‑kompatibilitásra. Tartsa szem előtt ezeket a korlátozásokat a jelentéskészítési munkafolyamat megtervezésekor:

  • Használja csak a dokumentált állandókat, operátorokat, hivatkozásokat és függvényeket, amikor az Aspose.Slides‑nek kell újraszámítania a képleteket.
  • Számolja újra a munkafüzetet a képlet‑eredmények függő cellái módosítása után.
  • Tekintse a betöltött prezentációkból származó gyorsítótárazott értékeket pillanatfelvételekként, ne helyettesítőként a szerkesztés utáni újraszámításra.
  • Tesztelje a meglévő sablonok képleteit, mielőtt a kiszámított értékekre támaszkodna, különösen, ha a dokumentált listán kívüli függvényeket használ.
  • Olyan képletek esetén, amelyek teljes táblázatszámítási motorra van szükségük, számolja ki őket külsőleg, majd frissítse a diagram‑munkafüzetet a kapott értékekkel.

GYIK

Mi a különbség a set_Formula és a set_R1C1Formula között?
IChartDataCell::set_Formula A1‑stílusú kifejezést tárol, például B2-C2. IChartDataCell::set_R1C1Formula R1C1‑stílusú kifejezést tárol, például RC[-2]-RC[-1]. Használja azt a jelölést, amely legjobban illik a képletek előállítási vagy másolási módjához.

Kell-e a cellát vagy annak értékét kiolvasni a számítás után?
IChartDataWorkbook::GetCell egy IChartDataCell‑et ad vissza. A kiszámított eredményhez olvassa el ennek a cellának a IChartDataCell::get_Value értékét a újraszámítás után.

Mikor kell meghívni a CalculateFormulas‑t?
Hívja a IChartDataWorkbook::CalculateFormulas metódust a bemeneti értékek vagy képletek módosítása után, és mielőtt a kiszámított eredményekre támaszkodna. Ez frissíti a beépített értékelő által támogatott képletek értékeit.

Támogatja-e az Aspose.Slides minden Excel‑függvényt?
Nem. A beépített értékelő egy dokumentált függvény‑részhalmazt támogat. A részhalmazon kívüli függvények nem számíthatók újraszámításra. Ha teljes Excel‑képletszámításra van szükség, végezze el a számítást egy megfelelő táblázatkezelő motorral, és írja az eredményértékeket a diagram‑munkafüzetbe.

Mi történik, ha egy betöltött prezentáció nem támogatott képletet tartalmaz?
Ha a diagram‑adatok nem változtak, a munkafüzetben maradhat egy korábban kiszámított gyorsítótárazott érték. Az érintett adatok módosítása után ez az érték már nem biztos, hogy érvényes. Egy olyan cella elérése, amelynek képlete nem kezelhető, CellUnsupportedDataException kivételt eredményezhet.

Ugyanazok‑e a képlethibák értékei, mint a C++ kivételek?
Nem. A #DIV/0!‑hoz hasonló eredmény egy táblázat‑érték, amely egy érvényes számítás során jön létre. A CellInvalidFormulaException vagy a CellCircularReferenceException típusú kivételek azt jelzik, hogy a képletet nem lehet normál módon feldolgozni.

Frissül‑e automatikusan a diagram, ha egy képletcella megváltozik?
A diagram‑sorozat hivatkozhat munkafüzet‑cellákra. Először számolja újra a munkafüzetet, majd mentse vagy renderelje a prezentációt. Ha a diagram adatpontjai a kiszámított cellákra mutatnak, a diagram a frissített cella‑értékeket használja; a munkafolyamathoz nincs szükség külön diagram‑frissítő módszerre.

Használhatnak a diagramok külső Excel munkafüzetet?
Igen, a diagram‑adatok konfigurálhatók úgy, hogy külső munkafüzetet használjanak a diagram‑adat‑API‑n keresztül. Azonban ebben a cikkben leírt képletszámítási munkafolyamat a diagram‑munkafüzetre és az Aspose.Slides által kiértékelt képlet‑részhalmazra vonatkozik. Ne tételezze, hogy a IChartDataWorkbook::CalculateFormulas teljes újraszámítást biztosít egy külső XLSX fájl tetszőleges képleteire.

Használhatok‑e képleteket, amelyek más munkalapra vagy munkafüzetre hivatkoznak?
Excel‑stílusú hivatkozások előfordulhatnak a diagram‑munkafüzetekben, de a képlet‑értékelés a támogatott elemző és függvénykészlet által korlátozott. Ha kereszt‑lap vagy külső hivatkozás elengedhetetlen, ellenőrizze a pontos képletet a cél Aspose.Slides verzióval. Olyan munkafolyamatok esetén, amelyek széleskörű Excel‑hivatkozási kompatibilitást igényelnek, számolja ki a munkafüzetet külsőleg, és írja vissza a feloldott értékeket a diagram‑adatokba.

Kell‑e az egyenlőségjellel (=) kezdeni a képletkarakterláncokat?
Az Aspose.Slides API példák a B2-C2 vagy SUM(B2:B5) kifejezéseket egyenlőségjel nélkül adják meg. Ennek a formának a használata biztosítja, hogy a generált képletek összhangban legyenek a dokumentált API‑példákkal.