Caracteristici și funcționalități

Caracteristici și funcționalități

Funcționalități și caracteristici

Această pagină acoperă capabilitățile de creare a diagramelor ale Aspose.Words FOSS pentru .NET cu exemple funcționale de C#, construite în jurul DocumentBuilder.InsertChart() și a Chart modelului de obiecte. Modelul complet de obiecte al bibliotecii (paragrafe, tabele, stiluri, semne de carte, secțiuni) este descris în prezentarea produsului și în Quickstart ghidul.


Crearea unui document cu un grafic

Introduceți o formă de grafic cu DocumentBuilder.InsertChart(), apoi accesați obiectul său Chart prin intermediul Shape returnat. Ștergeți seria generată implicit înainte de a adăuga date reale:

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

Serii de grafice, puncte de date și marcatori

Chart.Series este un ChartSeriesCollection. Fiecare ChartSeries expune punctele sale de date individuale prin DataPoints, permițându-vă să personalizați markerul sau formatarea unui singur punct fără a afecta restul seriei:

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

Etichete de date ale graficului

ChartSeries.DataLabels este un ChartDataLabelCollection care controlează etichetele pentru fiecare punct din serie simultan. Indexați în el cu DataLabels[i] pentru a suprascrie un ChartDataLabel individual:

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;

Titluri axe diagramă

Chart.AxisX și Chart.AxisY expun fiecare un ChartAxisTitle prin proprietatea lor 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 diagramă și fonturi

Chart.Legend expune LegendEntries, un ChartLegendEntry pe serie, fiecare cu propriul său Font. Font implementează formatarea de umplere, astfel Font.Fill.Solid() setează o culoare solidă a textului în același mod în care ar face pe orice alt segment formatat:

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;

Tabel de date al diagramei

Chart.DataTable este un ChartDataTable care afișează valorile subiacente ale seriei sub diagramă. Proprietățile sale Has*Border și HasLegendKeys controlează care părți sunt vizibile:

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

Sfaturi și bune practici

  • DocumentBuilder.InsertChart() populează graficul nou cu o serie generată implicit — apelează chart.Series.Clear() înainte de a adăuga propriile date, altfel valorile implicite rămân alături de ea.
  • Folosește ChartSeries.DataLabels[i] pentru a viza o singură etichetă de date când doar câteva puncte necesită formatare personalizată; folosește proprietățile la nivel de colecție (DataLabels.ShowValue și altele similare) pentru a stabili o valoare implicită pentru fiecare etichetă din serie simultan.
  • ClearFormat() este disponibil atât pe ChartDataPoint, cât și pe ChartDataLabelCollection — resetează formatarea directă la ceea ce seria moștenește în mod implicit.
  • Motorul de evaluare a câmpurilor actualizează programatic câmpurile de conținut cum ar fi DATE și DOCPROPERTY, dar câmpurile care depind de aspectul paginii (numerele de pagină dintr-un Cuprins, NUMPAGES) evaluează la valori de tip placeholder 0 deoarece această ediție nu include motorul de layout.
  • Consultați Ghidul de instalare pentru a adăuga pachetul prin NuGet, sau pentru a compila din sursă, înainte de a face referire la aceste API-uri.

Probleme comune

ProblemăCauzăRemediere
Numerele de pagină sau intrările din Cuprins afișează 0Această ediție nu include motorul de layout/redare a paginilorComportament așteptat — valorile câmpurilor dependente de layout nu sunt calculate; utilizați versiunea comercială Aspose.Words pentru .NET dacă ai nevoie de ele
Document.Save() la .pdf, .xps, sau o extensie de imagine eșueazăFormatele de randare nu sunt incluse în această edițieSalvează în DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown sau text simplu în schimb
Încărcarea unui fișier .doc, .rtf, .odt, .html sau .epub eșueazăDoar DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown și text simplu sunt acceptate pentru încărcare/salvareConvertește mai întâi fișierul sursă în DOCX sau folosește ediția comercială
Seria de diagramă implicită apare încă după adăugarea datelor personalizatechart.Series.Clear() nu a fost apelat după InsertChart()Curățați seria generată implicit înainte de a apela chart.Series.Add()

FAQ

De ce numerele de pagină din cuprinsul meu apar ca 0?

Această ediție FOSS nu include subsistemul de aranjare a paginilor și randare, astfel încât orice valoare de câmp care depinde de aranjarea paginii — inclusiv numerele de pagină — se evaluează la un substituent 0 în loc de o valoare calculată.

Pot exporta un document în PDF sau într-un format imagine?

Nu în această ediție. Exportul în PDF, XPS și imagine depinde de același subsistem de randare care a fost eliminat pentru a menține această ediție gratuită. Folosiți versiunea comercială Aspose.Words pentru .NET pentru acele rezultate.

Pot crea o semnătură digitală nouă pe un document?

Nu — această ediție poate verifica semnăturile digitale existente, dar nu poate crea altele noi.

Ce tipuri de grafice suportă InsertChart()?

InsertChart() primește o valoare ChartType — enumerația acoperă familii standard de grafice, cum ar fi linie, coloană, bară, plăcintă, zonă, inel, radar, împrăștiere, stoc și suprafață, inclusiv variantele lor stivuite și 3D.

API Reference Rezumat

Clasă / ProprietateDescriere:
DocumentObiectul document rădăcină; Save() scrie în DOCX, Markdown sau text simplu
DocumentBuilderCursor de nivel înalt API; InsertChart() adaugă o formă de diagramă
ShapeObiect de desen returnat de InsertChart(); expune proprietatea Chart
ChartObiect diagramă; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionDatele seriei (Add, Clear) și setări per-serie
ChartDataPoint / ChartDataPointCollectionFormatare per-punct; ClearFormat()
ChartMarker / MarkerSymbolForma și dimensiunea markerului pentru punctul de date
ChartDataLabel / ChartDataLabelCollectionSetări de afișare a etichetelor per-eticheta și pentru întreaga colecție
ChartAxisTitleTextul titlului afișat pe Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryLegenda graficului și intrările sale per serie
ChartDataTableTabelul de date afișat sub grafic
Font / FillFormatarea textului și umplerea (culoare solidă, gradient) pe elementele text ale graficului

Vezi și:

 Română