Jellemzők és funkciók

Jellemzők és funkciók

Jellemzők és funkciók

Ez az oldal lefedi a diagramkészítési képességeket Aspose.Words FOSS a .NET számára működő C# példákkal, felépítve DocumentBuilder.InsertChart() és a Chart objektummodell. A könyvtár teljes dokumentumobjektum-modellje (bekezdések, táblázatok, stílusok, könyvjelzők, szakaszok) le van írva a termék áttekintésben és a Quickstart útmutatóban.


Dokumentum létrehozása diagrammal

Helyezz be egy diagram alakzatot DocumentBuilder.InsertChart() segítségével, majd a visszaadott Shape útján érj el hozzá a Chart objektumot. Töröld a alapértelmezett generált sorozatot, mielőtt valós adatokat adnál hozzá:

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

Diagram sorozatok, adatpontok és jelölők

Chart.Series egy ChartSeriesCollection. Minden ChartSeries a saját egyedi adatpontjait a DataPoints segítségével teszi elérhetővé, ami lehetővé teszi egyetlen pont jelölőjének vagy formázásának testreszabását anélkül, hogy a sorozat többi részét befolyásolná:

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

Diagram adatcímkék

ChartSeries.DataLabels egy ChartDataLabelCollection, amely egyszerre vezérli a sorozat minden pontjának címkéit. Indexeljen rá DataLabels[i] segítségével egyetlen ChartDataLabel felülbírálásához:

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;

Diagram tengelycímek

Chart.AxisX és Chart.AxisY mindegyike egy ChartAxisTitle-t tesz elérhetővé a saját Title tulajdonságukon keresztül:

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

Diagram jelmagyarázat és betűtípusok

Chart.Legend elérhetővé teszi a LegendEntries-t, sorozatonként egy ChartLegendEntry-t, mindegyiknek saját Font-ja van. Font megvalósítja a kitöltés formázását, így a Font.Fill.Solid() szilárd szövegszínt állít be ugyanúgy, ahogy bármely más formázott szakaszon:

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;

Diagram adat táblázat

Chart.DataTable egy ChartDataTable, amely a diagram alatt megjeleníti az alatta lévő sorozatértékeket. A Has*Border és HasLegendKeys tulajdonságai szabályozzák, hogy mely részek láthatóak:

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

Tippek és bevált gyakorlatok

  • DocumentBuilder.InsertChart() feltölti az új diagramot egy alapértelmezett generált sorozattal — hívd meg a chart.Series.Clear() függvényt, mielőtt saját adatot adnál hozzá, különben az alapértelmezések együtt maradnak.
  • Használd a ChartSeries.DataLabels[i] elemet egy adatcímke célzásához, amikor csak néhány pont igényel egyedi formázást; a gyűjtemény szintű tulajdonságokat (DataLabels.ShowValue és hasonló) pedig arra használhatod, hogy egyszerre állíts be alapértelmezést a sorozat minden címkéjére.
  • A ClearFormat() mind a ChartDataPoint, mind a ChartDataLabelCollection esetén elérhető — visszaállítja a közvetlen formázást arra, amit a sorozat alapértelmezetten örököl.
  • A mezőértékelő motor programozottan frissíti a tartalmi mezőket, például a DATE és a DOCPROPERTY mezőket, de a lapelrendezéstől függő mezők (a tartalomjegyzék oldalszámai, NUMPAGES) 0 helyőrző értékekre értékelődnek, mivel ez a kiadás nem tartalmazza a layout motort.
  • Lásd a Telepítési útmutató a csomag NuGet használatával való hozzáadásához, vagy forrásból való felépítéshez, mielőtt ezekre az API-kra hivatkoznánk.

Gyakori problémák

ProblémaOkJavítás
Az oldalszámok vagy a tartalomjegyzék bejegyzései 0 jelennek meg.Ez a kiadás nem tartalmazza az oldalelrendezés/renderelés motorját.Várható viselkedés — az elrendezéstől függő mezőértékek nincsenek kiszámítva; használja a kereskedelmi. Aspose.Words a .NET számára ha szükséged van rájuk
Document.Save() to .pdf, .xps, vagy egy képkiterjesztés hibát okozA megjelenítési formátumok nincsenek benne ebben a kiadásbanMentse helyette DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown vagy egyszerű szöveg formátumba
A .doc, .rtf, .odt, .html vagy .epub fájl betöltése sikertelenCsak a DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown és egyszerű szöveg támogatott betöltéshez/mentéshezElőször konvertálja a forrásfájlt DOCX formátumba, vagy használja a kereskedelmi kiadást
Az alapértelmezett diagram sorozat továbbra is megjelenik egyéni adatok hozzáadása utánchart.Series.Clear() nem lett meghívva InsertChart() utánTörölje az alapértelmezett generált sorozatot a chart.Series.Add() meghívása előtt

FAQ

Miért jelennek meg a tartalomjegyzék oldalszámai 0-ként?

Ez a FOSS kiadás nem tartalmazza az oldalelrendezés- és renderelés alrendszert, ezért minden, az oldalelrendezéstől függő mezőérték — beleértve az oldalszámokat is — egy 0 helyőrzőre értékelődik, a kiszámított érték helyett.

Exportálhatok egy dokumentumot PDF-be vagy képformátumba?

Ez a kiadás nem tartalmazza. A PDF, XPS és képexport ugyanazon a renderelési alrendszeren alapul, amelyet eltávolítottak, hogy ez a kiadás ingyenes maradjon. Használja a kereskedelmi Aspose.Words a .NET számára ezekhez a kimenetekhez.

Létrehozhatok új digitális aláírást egy dokumentumban?

Nem — ez a kiadás képes ellenőrizni a meglévő digitális aláírásokat, de nem tud újat létrehozni.

Milyen diagramtípusokat támogat a InsertChart()?

A InsertChart() egy ChartType értéket vár — az enumeráció a szabványos diagramcsaládokat foglalja magában, mint például vonal, oszlop, sáv, kör, terület, gyűrű, radar, szórt, tőzsde és felület diagramok, beleértve azok halmozott és 3D változatait.

API Reference összefoglaló

Osztály / TulajdonságLeírás
DocumentGyökérdokumentum objektum; Save() ír DOCX, Markdown vagy egyszerű szöveg formátumba
DocumentBuilderMagas szintű kurzor API; InsertChart() hozzáad egy diagram alakzatot
ShapeRajzobjektum, amelyet a InsertChart() visszaad; elérhetővé teszi a Chart tulajdonságot
ChartDiagram objektum; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionSorozat adatok (Add, Clear) és sorozatonkénti beállítások
ChartDataPoint / ChartDataPointCollectionPontonkénti formázás; ClearFormat()
ChartMarker / MarkerSymbolAdatpont jelölő alakja és mérete
ChartDataLabel / ChartDataLabelCollectionCímkenkénti és gyűjtemény-szintű címke-megjelenítési beállítások
ChartAxisTitleCímszöveg megjelenik a Chart.AxisX / Chart.AxisY felületen
ChartLegend / ChartLegendEntryDiagrammagyarázat és annak sorozatonkénti bejegyzései
ChartDataTableAz ábra alatti adat táblázat
Font / FillSzövegformázás és kitöltés (egyszínű, színátmenet) a diagram szövegelemekén

Lásd még:

 Magyar