Použití vzorců pracovního listu grafu v prezentacích na Androidu

Přehled

Pracovní list grafu je zdroj dat za grafem v prezentaci. Uchovává názvy kategorií a sérií spolu s číselnými hodnotami zobrazenými v grafu. V Aspose.Slides je tento pracovní list k dispozici prostřednictvím sešitu dat grafu, který umožňuje programově pracovat s daty grafu.

Tento článek vysvětluje, jak použít vzorce v pracovním listu pro data grafu, aby hodnoty buněk mohly být vypočítány a aktualizovány automaticky místo ručního zadávání. Ukazuje, jak přiřadit vzorce, používat jak odkazy ve stylu A1, tak ve stylu R1C1, přepočítávat vzorce v sešitu a pracovat s podporovanými konstantami, operátory, odkazy na buňky a předdefinovanými funkcemi dostupnými pro pracovní listy grafů v prezentacích.

O vzorcích tabulky grafu v prezentacích

Tabulka grafu (nebo pracovní list grafu) v prezentaci je zdrojem dat grafu. Tabulka grafu obsahuje data, která jsou v grafu zobrazena graficky. Když v PowerPointu vytvoříte graf, automaticky se také vytvoří pracovní list spojený s tímto grafem. Pracovní list grafu je vytvořen pro všechny typy grafů: čárový graf, sloupcový graf, sunburst graf, koláčový graf atd. Chcete‑li v PowerPointu zobrazit tabulku grafu, dvojklikněte na graf:

todo:image_alt_text

Tabulka grafu obsahuje názvy prvků grafu (Název kategorie: Category1, Název série) a tabulku s číselnými daty odpovídajícími těmto kategoriím a sériím. Ve výchozím nastavení, když vytvoříte nový graf, jsou data tabulky grafu nastavena na výchozí data. Poté můžete data tabulky v pracovním listu ručně změnit.

Obvykle graf představuje komplikovaná data (např. finanční analytici, vědecké analytiky), přičemž buňky jsou vypočítány z hodnot v jiných buňkách nebo z jiných dynamických dat. Ruční výpočet hodnoty buňky a její pevné zakódování do buňky ztěžuje její budoucí změnu. Pokud změníte hodnotu určité buňky, všechny buňky na ní závislé budou také vyžadovat aktualizaci. Navíc data v tabulce mohou záviset na datech z jiných tabulek, což vytváří složitý datový schéma prezentace, které je potřeba snadno a flexibilně aktualizovat.

Vzorec tabulky grafu v prezentaci je výraz pro automatický výpočet a aktualizaci dat tabulky grafu. Vzorec tabulky definuje logiku výpočtu dat pro určitou buňku nebo sadu buněk. Vzorec tabulky je matematický nebo logický vzorec, který používá: odkazy na buňky, matematické funkce, logické operátory, aritmetické operátory, konverzní funkce, řetězcové konstanty atd. Definice vzorce je zapsána do buňky, a tato buňka neobsahuje jednoduchou hodnotu. Vzorec tabulky vypočítá hodnotu a vrátí ji zpět, poté je tato hodnota přiřazena buňce. Vzorce tabulky grafu v prezentacích jsou ve skutečnosti stejné jako Excelové vzorce a podporují stejné výchozí funkce, operátory a konstanty pro jejich implementaci.

V Aspose.Slides je tabulka grafu reprezentována metodou Chart.getChartData.getChartDataWorkbook typu IChartDataWorkbook. Vzorec tabulky lze přiřadit a změnit metodou IChartDataCell.setFormula. V Aspose.Slides jsou pro vzorce podporovány následující funkce:

  • Logické konstanty
  • Číselné konstanty
  • Řetězcové konstanty
  • Chybové konstanty
  • Aritmetické operátory
  • Porovnávací operátory
  • Odkazy na buňky ve stylu A1
  • Odkazy na buňky ve stylu R1C1
  • Předdefinované funkce

Typicky sešity ukládají poslední vypočítané hodnoty vzorců. Pokud po načtení prezentace data grafu nebyla změněna, metoda IChartDataCell.getValue vrátí při čtení tyto hodnoty. Pokud však byla data v sešitu změněna, při čtení vlastnosti ChartDataCell.Value vyhodí CellUnsupportedDataException pro nepodporované vzorce. Důvodem je, že když jsou vzorce úspěšně parsovány, jsou určeny závislosti buněk a správnost posledních hodnot. Pokud vzorec nelze parsovat, správnost hodnoty buňky nelze zaručit.

Přidání vzorce tabulky grafu do prezentace

Nejprve přidejte graf na první snímek nové prezentace pomocí IShapeCollection.getShapes.addChart. Pracovní list grafu je automaticky vytvořen a lze k němu přistupovat metodou 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();
}

Zapište některé hodnoty do buněk pomocí vlastnosti IChartDataCell.setValue typu Object, což znamená, že můžete nastavit libovolnou hodnotu:

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

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

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

Nyní k zápisu vzorce do buňky můžete použít metodu IChartDataCell.setFormula:

Poznámka: metoda IChartDataCell.setFormula se používá k nastavení odkazů na buňky ve stylu A1.

Pro nastavení odkazu na buňku R1C1Formula můžete použít metodu IChartDataCell.setR1C1Formula:

Pak pokud se pokusíte přečíst hodnoty z buněk B2 a C2, budou vypočítány:

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

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

Logické konstanty

Můžete použít logické konstanty jako FALSE a TRUE ve vzorcích buněk:

workbook.getCell(0, "A2").setValue(false);
IChartDataCell cell = workbook.getCell(0, "B2");
cell.setFormula("A2 = TRUE");
Object value = cell.getValue(); // hodnota obsahuje boolean "false"

Číselné konstanty

Čísla lze použít v běžné nebo vědecké notaci k vytvoření vzorce tabulky grafu:

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

Řetězcové konstanty

Řetězcová (nebo literální) konstanta je konkrétní hodnota, která se používá tak, jak je, a nemění se. Řetězcové konstanty mohou být: data, texty, čísla atd.:

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

Chybové konstanty

Občas není možné vypočítat výsledek pomocí vzorce. V takovém případě se v buňce místo hodnoty zobrazí kód chyby. Každý typ chyby má specifický kód:

  • #DIV/0! – vzorec se snaží dělit nulou.
  • #GETTING_DATA – může být zobrazen v buňce, zatímco její hodnota se stále počítá.
  • #N/A – informace chybí nebo není k dispozici. Některé důvody mohou být: buňky použité ve vzorci jsou prázdné, nadbytečný mezerník, překlep atd.
  • #NAME? – určitá buňka nebo jiné objekty vzorce nelze najít podle názvu.
  • #NULL! – může se objevit, když je ve vzorci chyba, např. (,) nebo místo dvojtečky (:) použit mezerník.
  • #NUM! – číselná hodnota ve vzorci může být neplatná, příliš dlouhá nebo příliš malá atd.
  • #REF! – neplatný odkaz na buňku.
  • #VALUE! – neočekávaný typ hodnoty. Například řetězcová hodnota nastavena do číselné buňky.
IChartDataCell cell = workbook.getCell(0, "A2");
cell.setFormula("2 / 0");
Object value = cell.getValue(); // hodnota obsahuje řetězec "#DIV/0!"

Aritmetické operátory

Můžete použít všechny aritmetické operátory ve vzorcích pracovního listu grafu:

Operátor Význam Příklad
+ (plus) Sčítání nebo unární plus 2 + 3
- (minus) Odčítání nebo negace 2 - 3
-3
* (hvězdička) Násobení 2 * 3
/ (lomítko) Dělení 2 / 3
% (procento) Procento 30%
^ (stříška) Mocnina 2 ^ 3

Poznámka: Pro změnu pořadí vyhodnocení uzavřete část vzorce, která má být vypočítána první, do závorek.

Porovnávací operátory

Můžete porovnávat hodnoty buněk pomocí porovnávacích operátorů. Když jsou dvě hodnoty porovnány těmito operátory, výsledek je logická hodnota TRUE nebo FALSE:

Operátor Význam Příklad
= (rovná se) Rovná se A2 = 3
<> (nerovno) Nerovná se A2 <> 3
> (větší než) Větší než A2 > 3
>= (větší nebo rovno) Větší nebo rovno A2 >= 3
< (menší než) Menší než A2 < 3
<= (menší nebo rovno) Menší nebo rovno A2 <= 3

Odkazy na buňky ve stylu A1

Odkazy na buňky ve stylu A1 se používají pro pracovní listy, kde sloupec má písmenový identifikátor (např. “A") a řádek má číselný identifikátor (např. “1"). Odkazy ve stylu A1 lze použít následujícím způsobem:

Cell reference Example Absolute Relative Mixed
Buňka $A$2 A2

A$2

$A2

Řádek $2:$2 2:2 -
Sloupec $A:$A A:A -
Rozsah $A$2:$C$4 A2:C4

$A$2:C4

A$2:$C4

Zde je příklad, jak použít odkaz na buňku ve stylu A1 ve vzorci:

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

Odkazy na buňky ve stylu R1C1

Odkazy na buňky ve stylu R1C1 se používají pro pracovní listy, kde mají jak řádek, tak sloupec číselný identifikátor. Odkazy ve stylu R1C1 lze použít následujícím způsobem:

Cell reference Example Absolute Relative Mixed
Buňka R2C3 R[2]C[3] R2C[3]
R[2]C3
Řádek R2 R[2] -
Sloupec C3 C[3] -
Rozsah R2C3:R5C7 R[2]C[3]:R[5]C[7] R2C3:R[5]C[7]
R[2]C3:R5C[7]

Zde je příklad, jak použít odkaz na buňku ve stylu R1C1 ve vzorci:

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

Předdefinované funkce

Existují předdefinované funkce, které lze ve vzorcích použít ke zjednodušení jejich implementace. Tyto funkce zahrnují nejčastěji používané operace, jako například:

  • ABS
  • AVERAGE
  • CEILING
  • CHOOSE
  • CONCAT
  • CONCATENATE
  • DATE (1900 date system)
  • DAYS
  • FIND
  • FINDB
  • IF
  • INDEX (reference form)
  • LOOKUP (vector form)
  • MATCH (vector form)
  • MAX
  • SUM
  • VLOOKUP

FAQ

Jsou externí soubory Excel podporovány jako zdroj dat pro graf s vzorci?

Ano. Aspose.Slides podporuje externí sešity jako zdroj dat grafu, což vám umožní použít vzorce z XLSX mimo prezentaci.

Mohou vzorce grafu odkazovat na listy ve stejném sešitu podle názvu listu?

Ano. Vzorce používají standardní model odkazování v Excelu, takže můžete odkazovat na jiné listy ve stejném sešitu nebo na externí sešit. U externích odkazů uveďte cestu a název sešitu pomocí syntaxe Excel.