Hogyan dolgozzunk a diagramokkal a .NET-ban
Ez az útmutató bemutatja, hogyan szúrjunk be egy natív Word-diagramot, és hogyan szabályozzuk a megjelenését a Aspose.Words FOSS segítségével a .NET számára — a jelmagyarázat és a tengelyek elrejtésével, az értéktengely skálájának rögzítésével, majd egy másik diagramtípus kiválasztásával és az adatcímkék valamint az egyes pontok formázásával. A Aspose.Words FOSS a .NET számára elérhető a NuGet vagy a forráskódból történő felépítés útján.
Lépésről lépésre útmutató
1. lépés: Szerezd be a könyvtárat
Klónozza a tárolót és építse Aspose.Words.sln Release konfigurációban, majd adjon hozzá egy projektreferenciát a Aspose.Words.csproj a saját .NET projektjéből, amint a Telepítési útmutató.
2. lépés: Diagram beszúrása és a megjelenés egyszerűsítése
DocumentBuilder.InsertChart(chartType, width, height) a kurzornál beszúr egy diagram alakzatot, és visszaadja a tartalmazó Shape objektumot; annak Chart tulajdonsága a Chart objektum, amelyet konfigurálsz, fő alobjektumai a AxisX, AxisY, Legend és Title. A diagramtípusok a Aspose.Words.Drawing.Charts névtérben élnek, a mag Aspose.Words névtérrel együtt. Egy minimális, előadásra kész ChartType.Bar diagram egy új Document esetén gyakran azt jelenti, hogy a Legend.Position értékét LegendPosition.None-ra állítod, a Hidden és HasMajorGridlines beállítását a AxisY és AxisX objektumokon, a Title.Show értékét false-ra, a ChartSeriesCollection helyőrzőt a Series.Clear() segítségével törlöd a Series.Add(seriesName, categories, values) meghívása előtt, a AxisY.Scaling.Maximum rögzítése egy rögzített AxisBound értékre az automatikus skálázás helyett, majd az eredményt a Document.Save használatával írod ki. A teljes példa — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound és Document.Save — a következőképpen néz ki:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Bar, 432, 252);
Chart chart = shape.Chart;
chart.Legend.Position = LegendPosition.None;
ChartSeriesCollection seriesColl = chart.Series;
chart.AxisY.Hidden = true;
chart.AxisY.HasMajorGridlines = false;
chart.AxisX.Hidden = true;
chart.Title.Show = false;
seriesColl.Clear();
chart.AxisY.Scaling.Maximum = new AxisBound(100);
string[] categories = new string[] { "AW Category 1" };
seriesColl.Add("AW Series 1", categories, new double[] { 30 });
doc.Save("chart.docx");Ez létrehoz egy Document, beszúr egy ChartType.Bar diagramot, beállítja a Chart.Legend.Position értékét LegendPosition.None értékre a jelmagyarázat elrejtéséhez, beállítja a Hidden = true és HasMajorGridlines = false értékeket a chart.AxisY és a Hidden = true értékeken a chart.AxisX esetén, beállítja a chart.Title.Show = false, törli a helyőrző sorozatot a seriesColl.Clear() segítségével, rögzíti az értéktengelyt egy 100 maximumra a chart.AxisY.Scaling.Maximum = new AxisBound(100) segítségével, hozzáad egy valós sorozatot a seriesColl.Add(seriesName, categories, values) használatával, és kiírja az eredményt a Document.Save segítségével.
3. lépés: Válasszon másik diagramtípust
ChartType lefedi a szabványos Word diagramcsaládokat — Line, Bar, Column (plusz Stacked, PercentStacked és 3D változatok), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, valamint a Word 2016 típusok Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker és Waterfall. Adja át a kívánt értéket a chartType argumentumként a InsertChart-nek — nincs olyan tag, amely a már beszúrt diagram típusát megváltoztatná, ezért válassza ki előre a megfelelő típust, vagy cserélje le az alakzatot.
4. lépés: Adjon hozzá és formázza az adatcímkéket
Állítsa be a series.HasDataLabels = true értékét, mielőtt konfigurálná a series.DataLabels (egy ChartDataLabelCollection) — a megjelenítési kapcsolók nem járnak látható hatással, amíg a címkék ki vannak kapcsolva. A ShowValue, ShowCategoryName és ShowPercentage szabályozzák, mely információs darabok jelennek meg, és a Position helyezi el őket az adatponthoz képest.
5. lépés: Egy adatpont formázása
Indexeljen a sorozat DataPoints (egy ChartDataPointCollection) mezőjébe, hogy elérjen egy ChartDataPoint elemet, és beállítsa annak Format, Marker, Explosion vagy InvertIfNegative értékét a sorozat többi részétől függetlenül. Így emelhet ki egyetlen oszlopot, szeletet vagy jelölőt anélkül, hogy az egész sorozatot újraformázná.
Általános problémák és megoldások
Az új diagram váratlan demo adatokat jelenít meg. InsertChart előre betölti a diagramot helykitöltő sorozatokkal. Hívja meg chart.Series.Clear() mielőtt hozzáadná saját sorozatait.
Hiding AxisY nem távolítja el a rácsvonalakat. Hidden elrejti a tengelyvonalat és a címkéket; a rácsvonalak külön kapcsolóval vezérelhetők. Állítsa be HasMajorGridlines = false (és HasMinorGridlines = false ha a kisebb rácsvonalak is láthatóak).
Az adatcímkék nem jelennek meg a beállítás után ShowValue = true. HasDataLabels nem lett először a sorozatra beállítva. Állítsa be series.HasDataLabels = true, majd konfigurálja series.DataLabels.
Scaling.Maximum úgy tűnik, nem érvényesül. Győződjön meg róla, hogy a megfelelő tengelyobjektumon állítja be (chart.AxisY az érték tengelyhez a legtöbb diagramtípusban) és hogy semmilyen korábbi kódelág ne állítsa vissza Scaling vissza az alapértelmezett értékére AxisBound().
Gyakran Ismételt Kérdések
Hogyan rejthetem el egy diagram jelmagyarázatát?
Állítsa be a(z) chart.Legend.Position = LegendPosition.None.
Hogyan rögzíthetem a tengelyt egy adott tartományra az automatikus skálázás helyett?
Állítsa be a AxisScaling.Minimum és/vagy a AxisScaling.Maximum (mindkettő AxisBound érték) a chart.AxisX.Scaling vagy chart.AxisY.Scaling esetén.
Hogyan rejthetem el a diagram címét anélkül, hogy törölném?
Állítsa be a chart.Title.Show = false. A ChartTitle objektum és annak Text megmarad; csak a látható feliratot tiltja le.
Milyen diagramtípusok érhetők el?
ChartType felsorolja a klasszikus családokat (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, valamint a halmozott és 3D változatok) a Word 2016 típusokkal együtt (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).
Formázhatok egy adatpontot eltérően a sorozat többi részétől?
Igen — indexeljen a ChartSeries.DataPoints elemben, és állítsa be annak ChartDataPoint Format, Marker vagy Explosion értékét önállóan.