Functies en functionaliteiten

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 — roep chart.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.ShowValue en soortgelijke) om in één keer een standaard in te stellen voor elk label in de reeks.
  • ClearFormat() is beschikbaar op zowel ChartDataPoint als ChartDataLabelCollection — het reset de directe opmaak terug naar wat de reeks standaard erft.
  • De veld-evaluatie-engine werkt inhoudsvelden zoals DATE en DOCPROPERTY programmatisch bij, maar velden die afhankelijk zijn van paginalay-out (paginanummers in een inhoudsopgave, NUMPAGES) evalueren naar placeholder-waarden 0 omdat 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

ProbleemOorzaakOplossing
Paginanummers of inhoudsopgave-vermeldingen tonen 0Deze editie bevat de pagina-layout/rendering-engine nietVerwacht 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 misluktRenderformaten zijn niet inbegrepen in deze editieSla 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 misluktAlleen DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown en platte tekst worden ondersteund voor laden/opslaanConverteer het bronbestand eerst naar DOCX, of gebruik de commerciële editie
Standaard grafiekreeks verschijnt nog steeds na het toevoegen van aangepaste gegevenschart.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 / EigenschapBeschrijving
DocumentRoot documentobject; Save() schrijft naar DOCX, Markdown of platte tekst
DocumentBuilderHigh-level cursor API; InsertChart() voegt een grafiekvorm toe
ShapeTekeningobject geretourneerd door InsertChart(); exposeert de Chart eigenschap
ChartGrafiekobject; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionSeriesgegevens (Add, Clear) en per-serie-instellingen
ChartDataPoint / ChartDataPointCollectionPer-puntopmaak; ClearFormat()
ChartMarker / MarkerSymbolVorm en grootte van datapuntmarkering
ChartDataLabel / ChartDataLabelCollectionInstellingen voor labelweergave per label en voor de hele collectie
ChartAxisTitleTiteltekst weergegeven op Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryGrafieklegenda en de per-reeks items
ChartDataTableDatatabel weergegeven onder de grafiek
Font / FillTekstopmaak en vulling (effen kleur, verloop) van grafiektetekstelementen

Zie ook

 Nederlands