Χαρακτηριστικά και Λειτουργίες

Χαρακτηριστικά και Λειτουργίες

Χαρακτηριστικά και Λειτουργίες

Αυτή η σελίδα καλύπτει τις δυνατότητες δημιουργίας διαγραμμάτων του Aspose.Words FOSS για .NET με λειτουργικά παραδείγματα C#, χτισμένα γύρω από DocumentBuilder.InsertChart() και το Chart μοντέλο αντικειμένου. Το πλήρες μοντέλο αντικειμένου εγγράφου της βιβλιοθήκης (παράγραφοι, πίνακες, στυλ, σελιδοδείκτες, ενότητες) περιγράφεται στην επισκόπηση του προϊόντος και στο Quickstart οδηγό.


Δημιουργία Εγγράφου με Διάγραμμα

Εισάγετε ένα σχήμα διαγράμματος με το DocumentBuilder.InsertChart(), έπειτα αποκτήστε πρόσβαση στο αντικείμενο Chart μέσω του επιστρεφόμενου Shape. Καθαρίστε τη σειρά που δημιουργείται εξ ορισμού πριν προσθέσετε πραγματικά δεδομένα:

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

Σειρές Διαγράμματος, Σημειακά Στοιχεία και Δείκτες

Chart.Series είναι ένα ChartSeriesCollection. Κάθε ChartSeries εκθέτει τα ατομικά του σημεία δεδομένων μέσω του DataPoints, το οποίο σας επιτρέπει να προσαρμόσετε το δείκτη ή τη μορφοποίηση ενός μεμονωμένου σημείου χωρίς να επηρεάσετε την υπόλοιπη σειρά:

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

Ετικέτες Δεδομένων Διαγράμματος

ChartSeries.DataLabels είναι ένα ChartDataLabelCollection που ελέγχει τις ετικέτες για κάθε σημείο στη σειρά ταυτόχρονα. Δείξτε σε αυτό με DataLabels[i] για να παρακάμψετε μια μεμονωμένη ChartDataLabel:

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;

Τίτλοι Άξονα Γραφήματος

Chart.AxisX και Chart.AxisY εκθέτουν το καθένα ένα ChartAxisTitle μέσω της ιδιότητας 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";

Υπόμνημα Γραφήματος και Γραμματοσειρές

Chart.Legend εκθέτει το LegendEntries, ένα ChartLegendEntry ανά σειρά, το καθένα με τη δική του Font. Το Font υλοποιεί μορφοποίηση γεμίσματος, έτσι το Font.Fill.Solid() ορίζει ένα συμπαγές χρώμα κειμένου με τον ίδιο τρόπο όπως θα το έκανε σε οποιαδήποτε άλλη μορφοποιημένη ακολουθία:

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;

Πίνακας Δεδομένων Γραφήματος

Chart.DataTable είναι ένα ChartDataTable που εμφανίζει τις υποκείμενες τιμές της σειράς κάτω από το γράφημα. Οι ιδιότητες Has*Border και HasLegendKeys του ελέγχουν ποια μέρη είναι ορατά:

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

Συμβουλές και Καλές Πρακτικές

  • DocumentBuilder.InsertChart() γεμίζει το νέο διάγραμμα με μια προεπιλεγμένη παραγόμενη σειρά — καλέστε το chart.Series.Clear() πριν προσθέσετε τα δικά σας δεδομένα, ή οι προεπιλογές θα παραμείνουν μαζί του.
  • Χρησιμοποιήστε το ChartSeries.DataLabels[i] για να στοχεύσετε μία ετικέτα δεδομένων όταν μόνο λίγα σημεία χρειάζονται προσαρμοσμένη μορφοποίηση· χρησιμοποιήστε τις ιδιότητες επιπέδου συλλογής (DataLabels.ShowValue και παρόμοιες) για να ορίσετε μια προεπιλογή για κάθε ετικέτα στη σειρά ταυτόχρονα.
  • Το ClearFormat() είναι διαθέσιμο τόσο στο ChartDataPoint όσο και στο ChartDataLabelCollection — επαναφέρει τη άμεση μορφοποίηση στην προεπιλεγμένη κληρονομική τιμή της σειράς.
  • Η μηχανή αξιολόγησης πεδίων ενημερώνει προγραμματιστικά πεδία περιεχομένου όπως το DATE και το DOCPROPERTY, αλλά τα πεδία που εξαρτώνται από τη διάταξη της σελίδας (αριθμοί σελίδων σε ΠΠΠ, NUMPAGES) αξιολογούνται σε τιμές placeholder 0 επειδή αυτή η έκδοση δεν περιλαμβάνει τη μηχανή διάταξης.
  • Δείτε το Οδηγός Εγκατάστασης για να προσθέσετε το πακέτο μέσω NuGet, ή να το κατασκευάσετε από τον πηγαίο κώδικα, πριν κάνετε αναφορά σε αυτά τα API.

Συνηθισμένα Προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Οι αριθμοί σελίδων ή οι καταχωρήσεις Πίνακα Περιεχομένων εμφανίζουν 0Αυτή η έκδοση δεν περιλαμβάνει τη μηχανή διάταξης/απόδοσης σελίδαςΑναμενόμενη συμπεριφορά — οι τιμές πεδίων εξαρτημένες από τη διάταξη δεν υπολογίζονται· χρησιμοποιήστε την εμπορική Aspose.Words για .NET αν τα χρειάζεστε
το Document.Save() σε .pdf, .xps, ή μια επέκταση εικόνας αποτυγχάνειΟι μορφές απόδοσης δεν περιλαμβάνονται σε αυτήν την έκδοσηΑποθηκεύστε σε DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown ή απλό κείμενο
Η φόρτωση ενός αρχείου .doc, .rtf, .odt, .html ή .epub αποτυγχάνειΜόνο τα DOCX, DOCM, DOTX, DOTM, Flat OPC, Markdown και απλό κείμενο υποστηρίζονται για φόρτωση/αποθήκευσηΜετατρέψτε πρώτα το αρχείο προέλευσης σε DOCX ή χρησιμοποιήστε την εμπορική έκδοση
Η προεπιλεγμένη σειρά γραφήματος εξακολουθεί να εμφανίζεται μετά την προσθήκη προσαρμοσμένων δεδομένωνchart.Series.Clear() δεν κλήθηκε μετά από InsertChart()Καθαρίστε τη προεπιλεγμένη δημιουργημένη σειρά πριν καλέσετε το chart.Series.Add()

FAQ

Γιατί οι αριθμοί σελίδων στον πίνακα περιεχομένων μου εμφανίζονται ως 0;

Αυτή η έκδοση FOSS δεν περιλαμβάνει το υποσύστημα διάταξης σελίδων και απόδοσης, έτσι οποιαδήποτε τιμή πεδίου που εξαρτάται από τη διάταξη της σελίδας — συμπεριλαμβανομένων των αριθμών σελίδας — αξιολογείται σε ένα σύμβολο κράτησης θέσης 0 αντί για υπολογισμένη τιμή.

Μπορώ να εξάγω ένα έγγραφο σε PDF ή σε μορφή εικόνας;

Όχι σε αυτή την έκδοση. Η εξαγωγή σε PDF, XPS και εικόνα εξαρτάται από το ίδιο υποσύστημα απόδοσης που αφαιρέθηκε για να παραμείνει αυτή η έκδοση δωρεάν. Χρησιμοποιήστε το εμπορικό Aspose.Words για .NET για αυτές τις εξόδους.

Μπορώ να δημιουργήσω μια νέα ψηφιακή υπογραφή σε ένα έγγραφο;

Όχι — αυτή η έκδοση μπορεί να επαληθεύσει υπάρχουσες ψηφιακές υπογραφές αλλά δεν μπορεί να δημιουργήσει νέες.

Ποιοι τύποι διαγραμμάτων υποστηρίζει το InsertChart();

InsertChart() παίρνει μια τιμή ChartType — η enum καλύπτει τις τυπικές οικογένειες διαγραμμάτων όπως line, column, bar, pie, area, doughnut, radar, scatter, stock και surface charts, συμπεριλαμβανομένων των στοίβακων και 3D παραλλαγών.

API Reference Περίληψη

Κλάση / ΙδιότηταΠεριγραφή
DocumentΑντικείμενο ριζικού εγγράφου; Save() γράφει σε DOCX, Markdown ή απλό κείμενο
DocumentBuilderΔείκτης υψηλού επιπέδου API; InsertChart() προσθέτει σχήμα διαγράμματος
ShapeΑντικείμενο σχεδίασης που επιστρέφεται από το InsertChart(); εκθέτει την ιδιότητα Chart
ChartΑντικείμενο διαγράμματος; Series, Legend, DataTable, AxisX, AxisY, Title
ChartSeries / ChartSeriesCollectionΔεδομένα σειράς (Add, Clear) και ρυθμίσεις ανά σειρά
ChartDataPoint / ChartDataPointCollectionΜορφοποίηση ανά σημείο; ClearFormat()
ChartMarker / MarkerSymbolΣχήμα και μέγεθος δείκτη σημείου δεδομένων
ChartDataLabel / ChartDataLabelCollectionΡυθμίσεις εμφάνισης ανά ετικέτα και για ολόκληρη τη συλλογή
ChartAxisTitleΚείμενο τίτλου που εμφανίζεται στο Chart.AxisX / Chart.AxisY
ChartLegend / ChartLegendEntryΥπόμνημα διαγράμματος και οι καταχωρίσεις ανά σειρά
ChartDataTableΠίνακας δεδομένων που εμφανίζεται κάτω από το διάγραμμα
Font / FillΜορφοποίηση κειμένου και γέμισμα (πλήρες χρώμα, διαβάθμιση) στα στοιχεία κειμένου του διαγράμματος

Δείτε επίσης

 Ελληνικά