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í — zavolejtechart.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.ShowValuea podobně) k nastavení výchozího nastavení pro každý štítek v sérii najednou. ClearFormat()je k dispozici jak naChartDataPoint, tak naChartDataLabelCollection— 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
DATEaDOCPROPERTY, 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 symbolu0, 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ém | Příčina | Oprava |
|---|---|---|
Čísla stránek nebo položky obsahu zobrazují 0 | Toto vydání neobsahuje engine pro rozvržení/renderování stránek | Oč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ázku | Formáty vykreslování nejsou v tomto vydání zahrnuty | Ulož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 selhalo | Pro načítání/ukládání jsou podporovány pouze soubory DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown a prostý text | Nejprve 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 dat | chart.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 / Vlastnost | Popis: |
|---|---|
Document | Kořenový objekt dokumentu; Save() zapisuje do DOCX, Markdown nebo prostého textu |
DocumentBuilder | Vysoceúrovňový kurzor API; InsertChart() přidává tvar grafu |
Shape | Objekt kresby vrácený InsertChart(); zpřístupňuje vlastnost Chart |
Chart | Objekt grafu; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Data řady (Add, Clear) a nastavení pro každou řadu |
ChartDataPoint / ChartDataPointCollection | Formátování jednotlivých bodů; ClearFormat() |
ChartMarker / MarkerSymbol | Tvar a velikost značky datového bodu |
ChartDataLabel / ChartDataLabelCollection | Nastavení zobrazení popisků pro jednotlivé popisky i pro celou kolekci |
ChartAxisTitle | Text titulku zobrazený na Chart.AxisX / Chart.AxisY |
ChartLegend / ChartLegendEntry | Legenda grafu a její položky pro jednotlivé řady |
ChartDataTable | Datová tabulka zobrazená pod grafem |
Font / Fill | Formátování textu a výplň (plná barva, gradient) u textových prvků grafu |