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 peChartDataPoint, cât și peChartDataLabelCollection— 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șiDOCPROPERTY, dar câmpurile care depind de aspectul paginii (numerele de pagină dintr-un Cuprins,NUMPAGES) evaluează la valori de tip placeholder0deoarece 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ă 0 | Această ediție nu include motorul de layout/redare a paginilor | Comportament 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ție | Salvează î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/salvare | Converteș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 personalizate | chart.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ă / Proprietate | Descriere: |
|---|---|
Document | Obiectul document rădăcină; Save() scrie în DOCX, Markdown sau text simplu |
DocumentBuilder | Cursor de nivel înalt API; InsertChart() adaugă o formă de diagramă |
Shape | Obiect de desen returnat de InsertChart(); expune proprietatea Chart |
Chart | Obiect diagramă; Series, Legend, DataTable, AxisX, AxisY, Title |
ChartSeries / ChartSeriesCollection | Datele seriei (Add, Clear) și setări per-serie |
ChartDataPoint / ChartDataPointCollection | Formatare per-punct; ClearFormat() |
ChartMarker / MarkerSymbol | Forma și dimensiunea markerului pentru punctul de date |
ChartDataLabel / ChartDataLabelCollection | Setări de afișare a etichetelor per-eticheta și pentru întreaga colecție |
ChartAxisTitle | Textul titlului afișat pe Chart.AxisX / Chart.AxisY |
ChartLegend / ChartLegendEntry | Legenda graficului și intrările sale per serie |
ChartDataTable | Tabelul de date afișat sub grafic |
Font / Fill | Formatarea textului și umplerea (culoare solidă, gradient) pe elementele text ale graficului |