Funkce a vlastnosti

Funkce a vlastnosti

Tato stránka popisuje schopnosti vytváření grafů Aspose.Words FOSS pro .NET s funkčními příklady C#, postavenými na DocumentBuilder.InsertChart() a Chart objektový model. Úplný model objektu dokumentu knihovny (odstavce, tabulky, styly, záložky, sekce) je popsán v přehledu produktu a v Quickstart průvodci.


Vytvoření dokumentu s grafem

Vložte tvar grafu pomocí DocumentBuilder.InsertChart(), poté přistupte k jeho objektu Chart prostřednictvím vráceného Shape. Vymažte výchozí vygenerovanou sérii před přidáním skutečných dat:

using Aspose.Words;
using Aspose.Words.Drawing.Charts;

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;

// Delete default generated series.
chart.Series.Clear();

string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

doc.Save("chart.docx");

Série grafu, datové body a značky

Chart.Series je ChartSeriesCollection. Každý ChartSeries zpřístupňuje své jednotlivé datové body prostřednictvím DataPoints, což vám umožní přizpůsobit značku nebo formátování jediného bodu, aniž by to ovlivnilo zbytek série:

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

ChartSeries series = chart.Series[0];
ChartDataPointCollection points = series.DataPoints;

ChartDataPoint point1 = points[0];
ChartDataPoint point2 = points[1];

point1.InvertIfNegative = true;
point1.Marker.Symbol = MarkerSymbol.Square;
point2.InvertIfNegative = true;
point2.Marker.Symbol = MarkerSymbol.Diamond;

// Reset a single data point back to the series' inherited default formatting.
point1.ClearFormat();

Popisky dat v grafu

ChartSeries.DataLabels je ChartDataLabelCollection, který ovládá popisky pro každý bod v sérii najednou. Indexujte do něj pomocí DataLabels[i], abyste přepsali jednotlivý ChartDataLabel:

Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
chart.Series.Clear();
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });

ChartSeries series = chart.Series[0];
series.HasDataLabels = true;
series.DataLabels.ShowValue = true;

ChartDataLabel label = series.DataLabels[1];
label.ShowCategoryName = true;
label.Position = ChartDataLabelPosition.Below;

Názvy os grafu

Chart.AxisX a Chart.AxisY každé zpřístupňují ChartAxisTitle prostřednictvím své vlastnosti Title:

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.InsertChart(ChartType.Column, 432, 252);

Chart chart = shape.Chart;
ChartAxisTitle xTitle = chart.AxisX.Title;
ChartAxisTitle yTitle = chart.AxisY.Title;

xTitle.Show = true;
xTitle.Text = "Categories";
yTitle.Show = true;
yTitle.Text = "Values";

Legenda grafu a písma

Chart.Legend zpřístupňuje LegendEntries, jeden ChartLegendEntry na sérii, každý se svým vlastním Font. Font implementuje formátování výplně, takže Font.Fill.Solid() nastaví pevnou barvu textu stejným způsobem, jako by to bylo u jakéhokoli jiného formátovaného úseku:

using System.Drawing;

Shape shape = builder.InsertChart(ChartType.Column, 432, 252);

ChartLegend legend = shape.Chart.Legend;
Font font1 = legend.LegendEntries[0].Font;
Font font2 = legend.LegendEntries[1].Font;

font1.Fill.Solid(Color.Blue);
font2.Color = Color.Green;

Tabulka dat grafu

Chart.DataTable je ChartDataTable, který zobrazuje podkladové hodnoty sérií pod grafem. Jeho vlastnosti Has*Border a HasLegendKeys řídí, které části jsou viditelné:

Shape shape = builder.InsertChart(ChartType.Column, 432, 252);
ChartDataTable dataTable = shape.Chart.DataTable;

dataTable.HasLegendKeys = false;
dataTable.HasHorizontalBorder = true;
dataTable.HasVerticalBorder = true;
dataTable.HasOutlineBorder = false;

doc.Save("chart-report.docx");

Tipy a osvědčené postupy

  • DocumentBuilder.InsertChart() naplní nový graf výchozí generovanou sérií — zavolejte chart.Series.Clear() před přidáním vlastních dat, jinak zůstane výchozí série vedle ní.
  • Použijte ChartSeries.DataLabels[i] k cílení na jeden datový štítek, když jen několik bodů vyžaduje vlastní formátování; použijte vlastnosti na úrovni kolekce (DataLabels.ShowValue a podobně) k nastavení výchozího nastavení pro každý štítek v sérii najednou.
  • ClearFormat() je k dispozici jak na ChartDataPoint, tak na ChartDataLabelCollection — resetuje přímé formátování zpět na to, co série výchoze dědí.
  • Engine pro vyhodnocování polí aktualizuje obsahová pole, jako jsou DATE a DOCPROPERTY, programově, ale pole, která závisí na rozvržení stránky (čísla stránek v rejstříku, NUMPAGES), se vyhodnocují na hodnoty zástupného symbolu 0, protože tato edice neobsahuje engine rozvržení.
  • Viz Instalační průvodce přidat balíček pomocí NuGet nebo sestavit ze zdrojového kódu, než budete odkazovat na tyto API.

Běžné problémy

ProblémPříčinaOprava
Čísla stránek nebo položky obsahu zobrazují 0Toto vydání neobsahuje engine pro rozvržení/renderování stránekOčekávané chování — hodnoty polí závislé na rozvržení nejsou vypočítány; použijte komerční Aspose.Words pro .NET pokud je potřebujete
Document.Save() do .pdf, .xps, nebo selže přípona obrázkuFormáty vykreslování nejsou v tomto vydání zahrnutyUložte místo toho do formátu DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown nebo prostého textu
Načítání souboru .doc, .rtf, .odt, .html nebo .epub selhaloPro načítání/ukládání jsou podporovány pouze soubory DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown a prostý textNejprve převeďte zdrojový soubor na DOCX, nebo použijte komerční edici
Výchozí řada grafu se stále zobrazuje po přidání vlastních datchart.Series.Clear() nebyl zavolán po InsertChart()Vymažte výchozí generovanou řadu před voláním chart.Series.Add()

FAQ

Proč se čísla stránek v mém obsahu zobrazují jako 0?

Tato FOSS edice neobsahuje subsystém rozvržení stránky a renderování, takže jakákoli hodnota pole, která závisí na rozvržení stránky — včetně čísel stránek — se vyhodnotí jako zástupný znak 0 místo vypočtené hodnoty.

Mohu exportovat dokument do PDF nebo obrazového formátu?

Ne v této edici. Export do PDF, XPS a obrázků závisí na stejném renderovacím subsystému, který byl odstraněn, aby tato edice zůstala zdarma. Použijte komerční Aspose.Words pro .NET pro tyto výstupy.

Mohu vytvořit nový digitální podpis v dokumentu?

Ne — tato edice dokáže ověřit existující digitální podpisy, ale nemůže vytvářet nové.

Jaké typy grafů podporuje InsertChart()?

InsertChart() přijímá hodnotu ChartType — výčtový typ zahrnuje standardní rodiny grafů, jako jsou čárový, sloupcový, pruhový, koláčový, plošný, prstencový, radarový, rozptylový, stock a povrchový graf, včetně jejich zásobníkových a 3D variant.

API Reference Shrnutí

Třída / VlastnostPopis:
DocumentKořenový objekt dokumentu; Save() zapisuje do DOCX, Markdown nebo prostého textu
DocumentBuilderVysoceúrovňový kurzor API; InsertChart() přidává tvar grafu
ShapeObjekt kresby vrácený InsertChart(); zpřístupňuje vlastnost Chart
ChartObjekt grafu; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionData řady (Add, Clear) a nastavení pro každou řadu
ChartDataPoint / ChartDataPointCollectionFormátování jednotlivých bodů; ClearFormat()
ChartMarker / MarkerSymbolTvar a velikost značky datového bodu
ChartDataLabel / ChartDataLabelCollectionNastavení zobrazení popisků pro jednotlivé popisky i pro celou kolekci
ChartAxisTitleText titulku zobrazený na Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLegenda grafu a její položky pro jednotlivé řady
ChartDataTableDatová tabulka zobrazená pod grafem
Font / FillFormátování textu a výplň (plná barva, gradient) u textových prvků grafu

Viz také:

 Čeština