Functies en functionaliteiten
Kenmerken en functionaliteiten
Deze pagina behandelt de chart-authoring mogelijkheden van Aspose.Words FOSS voor .NET met werkende C# voorbeelden, opgebouwd rond DocumentBuilder.InsertChart() en de Chart objectmodel. Het volledige documentobjectmodel van de bibliotheek (alinea’s, tabellen, stijlen, bladwijzers, secties) wordt beschreven in het productoverzicht en in de Quickstart gids.
Een document maken met een diagram
Voeg een diagramvorm in met DocumentBuilder.InsertChart(), en krijg vervolgens toegang tot zijn Chart object via het geretourneerde Shape. Verwijder de standaard gegenereerde reeks voordat je echte gegevens toevoegt:
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");Diagramreeksen, gegevenspunten en markeringen
Chart.Series is een ChartSeriesCollection. Elke ChartSeries maakt zijn individuele gegevenspunten beschikbaar via DataPoints, waarmee je de markering of opmaak van een enkel punt kunt aanpassen zonder de rest van de reeks te beïnvloeden:
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();Diagramgegevenslabels
ChartSeries.DataLabels is een ChartDataLabelCollection die labels voor elk punt in de reeks in één keer beheert. Indexeer ermee met DataLabels[i] om een individuele ChartDataLabel te overschrijven:
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;Grafiektitels As
Chart.AxisX en Chart.AxisY bieden elk een ChartAxisTitle via hun Title eigenschap:
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";Grafieklegenda en Lettertypen
Chart.Legend biedt LegendEntries, één ChartLegendEntry per reeks, elk met zijn eigen Font. Font implementeert vulopmaak, dus Font.Fill.Solid() stelt een effen tekstkleur in op dezelfde manier als bij elke andere geformatteerde run:
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;Grafiekdatatabel
Chart.DataTable is een ChartDataTable die de onderliggende reekswaarden onder de grafiek weergeeft. Zijn Has*Border en HasLegendKeys eigenschappen bepalen welke delen zichtbaar zijn:
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");Tips en best practices
DocumentBuilder.InsertChart()vult de nieuwe grafiek met een standaard gegenereerde reeks — roepchart.Series.Clear()aan voordat je je eigen gegevens toevoegt, of de standaardwaarden blijven er naast staan.- Gebruik
ChartSeries.DataLabels[i]om één gegevenslabel te targeten wanneer slechts enkele punten aangepaste opmaak nodig hebben; gebruik de collectieniveau-eigenschappen (DataLabels.ShowValueen soortgelijke) om in één keer een standaard in te stellen voor elk label in de reeks. ClearFormat()is beschikbaar op zowelChartDataPointalsChartDataLabelCollection— het reset de directe opmaak terug naar wat de reeks standaard erft.- De veld-evaluatie-engine werkt inhoudsvelden zoals
DATEenDOCPROPERTYprogrammatisch bij, maar velden die afhankelijk zijn van paginalay-out (paginanummers in een inhoudsopgave,NUMPAGES) evalueren naar placeholder-waarden0omdat deze editie de lay-out-engine niet bevat. - Zie de Installatiehandleiding om het pakket toe te voegen via NuGet, of te bouwen vanuit de bron, voordat u deze API’s raadpleegt.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
Paginanummers of inhoudsopgave-vermeldingen tonen 0 | Deze editie bevat de pagina-layout/rendering-engine niet | Verwacht gedrag — layout-afhankelijke veldwaarden worden niet berekend; gebruik de commerciële Aspose.Words for .NET als je ze nodig hebt |
Document.Save() naar .pdf, .xps, of een afbeeldingsextensie mislukt | Renderformaten zijn niet inbegrepen in deze editie | Sla op als DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown of platte tekst in plaats daarvan |
Het laden van een .doc, .rtf, .odt, .html, of .epub bestand mislukt | Alleen DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown en platte tekst worden ondersteund voor laden/opslaan | Converteer het bronbestand eerst naar DOCX, of gebruik de commerciële editie |
| Standaard grafiekreeks verschijnt nog steeds na het toevoegen van aangepaste gegevens | chart.Series.Clear() werd niet aangeroepen na InsertChart() | Wis de standaard gegenereerde reeks voordat chart.Series.Add() wordt aangeroepen |
FAQ
Waarom verschijnen paginanummers in mijn inhoudsopgave als 0?
Deze FOSS-editie bevat niet het pagina-layout- en renderingssubsystem, dus elke veldwaarde die afhankelijk is van paginavormgeving — inclusief paginanummers — evalueert naar een placeholder 0 in plaats van een berekende waarde.
Kan ik een document exporteren naar PDF of een afbeeldingsformaat?
Niet in deze editie. PDF, XPS en afbeeldingsexport zijn afhankelijk van hetzelfde renderingssubsystem dat werd verwijderd om deze editie gratis te houden. Gebruik de commerciële Aspose.Words voor .NET voor die outputs.
Kan ik een nieuwe digitale handtekening op een document aanmaken?
Nee — deze editie kan bestaande digitale handtekeningen verifiëren, maar kan geen nieuwe aanmaken.
Welke grafiektype ondersteunt InsertChart()?
InsertChart() neemt een ChartType waarde — de enum omvat standaard grafiekfamilies zoals line, column, bar, pie, area, doughnut, radar, scatter, stock, en surface charts, inclusief hun stacked en 3D-varianten.
API Reference Samenvatting
| Klasse / Eigenschap | Beschrijving |
|---|---|
Document | Root documentobject; Save() schrijft naar DOCX, Markdown of platte tekst |
DocumentBuilder | High-level cursor API; InsertChart() voegt een grafiekvorm toe |
Shape | Tekeningobject geretourneerd door InsertChart(); exposeert de Chart eigenschap |
Chart | Grafiekobject; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Seriesgegevens (Add, Clear) en per-serie-instellingen |
ChartDataPoint / ChartDataPointCollection | Per-puntopmaak; ClearFormat() |
ChartMarker / MarkerSymbol | Vorm en grootte van datapuntmarkering |
ChartDataLabel / ChartDataLabelCollection | Instellingen voor labelweergave per label en voor de hele collectie |
ChartAxisTitle | Titeltekst weergegeven op Chart.AxisX / Chart.AxisY |
ChartLegend / ChartLegendEntry | Grafieklegenda en de per-reeks items |
ChartDataTable | Datatabel weergegeven onder de grafiek |
Font / Fill | Tekstopmaak en vulling (effen kleur, verloop) van grafiektetekstelementen |