Funktionen und Funktionalitäten

Funktionen und Funktionalitäten

Funktionen und Merkmale

Diese Seite behandelt die Diagrammerstellungs-Funktionen von Aspose.Words FOSS für .NET mit funktionierenden C#-Beispielen, aufgebaut um DocumentBuilder.InsertChart() und dem Chart Objektmodell. Das vollständige Dokument-Objektmodell der Bibliothek (Absätze, Tabellen, Formatvorlagen, Lesezeichen, Abschnitte) wird in der Produktübersicht und im Quickstart Handbuch.


Ein Dokument mit einem Diagramm erstellen

Fügen Sie eine Diagrammform mit DocumentBuilder.InsertChart() ein und greifen Sie dann über das zurückgegebene Shape auf dessen Chart-Objekt zu. Löschen Sie die standardmäßig erzeugte Reihe, bevor Sie echte Daten hinzufügen:

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");

Diagrammserien, Datenpunkte und Marker

Chart.Series ist ein ChartSeriesCollection. Jede ChartSeries stellt ihre einzelnen Datenpunkte über DataPoints bereit, wodurch Sie den Marker oder die Formatierung eines einzelnen Punktes anpassen können, ohne die übrigen Reihen zu beeinflussen:

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();

Diagrammdatenbeschriftungen

ChartSeries.DataLabels ist ein ChartDataLabelCollection, das die Beschriftungen für jeden Punkt in der Serie auf einmal steuert. Greifen Sie mit DataLabels[i] darauf zu, um ein einzelnes ChartDataLabel zu überschreiben:

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;

Diagrammachsentitel

Chart.AxisX und Chart.AxisY stellen jeweils ein ChartAxisTitle über ihre Title-Eigenschaft bereit:

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";

Diagrammlegende und Schriften

Chart.Legend stellt LegendEntries bereit, ein ChartLegendEntry pro Serie, jeweils mit eigenem Font. Font implementiert Füllformatierung, sodass Font.Fill.Solid() eine einheitliche Textfarbe festlegt, genauso wie bei jedem anderen formatierten Lauf:

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;

Diagrammdaten-Tabelle

Chart.DataTable ist ein ChartDataTable, das die zugrunde liegenden Serienwerte unterhalb des Diagramms anzeigt. Seine Has*Border- und HasLegendKeys-Eigenschaften steuern, welche Teile sichtbar sind:

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");

Tipps und bewährte Verfahren

  • DocumentBuilder.InsertChart() füllt das neue Diagramm mit einer standardmäßig generierten Serie — rufen Sie chart.Series.Clear() auf, bevor Sie Ihre eigenen Daten hinzufügen, sonst bleiben die Vorgaben daneben erhalten.
  • Verwenden Sie ChartSeries.DataLabels[i], um ein Datenetikett zu adressieren, wenn nur wenige Punkte eine benutzerdefinierte Formatierung benötigen; verwenden Sie die sammlungsbezogenen Eigenschaften (DataLabels.ShowValue und ähnliche), um für jedes Etikett in der Serie gleichzeitig einen Standard festzulegen.
  • ClearFormat() ist sowohl auf ChartDataPoint als auch auf ChartDataLabelCollection verfügbar — es setzt die direkte Formatierung auf das zurück, was die Serie standardmäßig erbt.
  • Die Feldauswertungs-Engine aktualisiert Inhaltsfelder wie DATE und DOCPROPERTY programmgesteuert, aber Felder, die vom Seitenlayout abhängen (Seitenzahlen im Inhaltsverzeichnis, NUMPAGES), ergeben Platzhalterwerte 0, weil diese Ausgabe die Layout-Engine nicht enthält.
  • Siehe das Installationshandbuch um das Paket über NuGet hinzuzufügen, oder aus dem Quellcode zu bauen, bevor Sie diese APIs referenzieren.

Häufige Probleme

ProblemUrsacheLösung
Seitenzahlen oder Inhaltsverzeichniseinträge zeigen 0Diese Ausgabe enthält nicht die Seitenlayout-/Render-EngineErwartetes Verhalten — layoutabhängige Feldwerte werden nicht berechnet; verwenden Sie die kommerzielle Aspose.Words für .NET wenn Sie sie benötigen
Document.Save() bis .pdf, .xps oder eine Bilddateierweiterung schlägt fehlRenderformate sind in dieser Edition nicht enthaltenSpeichern Sie stattdessen als DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown oder Nur-Text
Laden einer .doc, .rtf, .odt, .html oder .epub Datei schlägt fehlNur DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown und Nur-Text werden für Laden/Speichern unterstütztKonvertieren Sie die Quelldatei zuerst in DOCX oder verwenden Sie die kommerzielle Edition
Standard-Diagrammreihe erscheint weiterhin nach dem Hinzufügen benutzerdefinierter Datenchart.Series.Clear() wurde nicht nach InsertChart() aufgerufenLöschen Sie die standardmäßig generierte Serie, bevor Sie chart.Series.Add() aufrufen

FAQ

Warum werden die Seitenzahlen in meinem Inhaltsverzeichnis als 0 angezeigt?

Diese FOSS-Edition enthält das Seitenlayout- und Rendering-Subsystem nicht, sodass jeder Feldwert, der vom Seitenlayout abhängt — einschließlich Seitenzahlen — zu einem Platzhalter 0 ausgewertet wird, anstatt zu einem berechneten Wert.

Kann ich ein Dokument als PDF oder in ein Bildformat exportieren?

Nicht in dieser Edition. PDF-, XPS- und Bildexport hängen vom selben Rendering-Subsystem ab, das entfernt wurde, um diese Edition kostenlos zu halten. Verwenden Sie das kommerzielle Aspose.Words für .NET für diese Ausgaben.

Kann ich eine neue digitale Signatur in einem Dokument erstellen?

Nein — diese Edition kann vorhandene digitale Signaturen prüfen, aber keine neuen erstellen.

Welche Diagrammtypen unterstützt InsertChart()?

InsertChart() nimmt einen ChartType-Wert entgegen — die Aufzählung umfasst Standard-Diagrammfamilien wie Linien-, Säulen-, Balken-, Kreis-, Flächen-, Donut-, Radar-, Streu-, Börsen- und Oberflächendiagramme, einschließlich ihrer gestapelten und 3D-Varianten.

API Reference Zusammenfassung

Klasse / EigenschaftBeschreibung
DocumentRoot-Dokumentobjekt; Save() schreibt in DOCX, Markdown oder Klartext
DocumentBuilderHigh-Level-Cursor API; InsertChart() fügt eine Diagrammform hinzu
ShapeZeichenobjekt, das von InsertChart() zurückgegeben wird; stellt die Chart-Eigenschaft bereit
ChartDiagrammobjekt; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionSeriendaten (Add, Clear) und serienspezifische Einstellungen
ChartDataPoint / ChartDataPointCollectionPunktbezogene Formatierung; ClearFormat()
ChartMarker / MarkerSymbolForm und Größe des Datenpunkt-Markers
ChartDataLabel / ChartDataLabelCollectionAnzeigeeinstellungen pro Label und für die gesamte Sammlung
ChartAxisTitleTiteltext angezeigt auf Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryDiagrammlegende und deren Einträge pro Serie
ChartDataTableDatentabelle unterhalb des Diagramms angezeigt
Font / FillTextformatierung und Füllung (einfarbig, Verlauf) bei Diagrammtextelementen

Siehe auch

 Deutsch