Εργασία με Διαγράμματα
Εργασία με Διαγράμματα
Aspose.Words FOSS για .NET μπορεί να εισάγει εγγενή διαγράμματα Word — τα ίδια DrawingML διαγράμματα που δημιουργεί το Word — ως σχήμα στη στρώση σχεδίασης. Το DocumentBuilder.InsertChart δημιουργεί το σχήμα και το επιστρέφει· η ιδιότητα Chart του σχήματος εκθέτει σειρές, άξονες, υπόμνημα και μορφοποίηση. Αυτός ο οδηγός καλύπτει τη δημιουργία διαγράμματος, την επιλογή τύπου διαγράμματος, την εργασία με σειρές και σημεία δεδομένων, άξονες και πλέγματα, και τη μορφοποίηση στοιχείων διαγράμματος.
Δημιουργία Διαγράμματος
Κλήστε το DocumentBuilder.InsertChart(chartType, width, height) για να εισάγετε ένα σχήμα διαγράμματος στην θέση του δρομέα και να λάβετε το περιέχον Shape. Η ιδιότητα Chart του είναι το αντικείμενο Chart που διαμορφώνετε. Ένα πρόσφατα εισαχθέν διάγραμμα έρχεται με σειρές επίδειξης placeholder, οπότε καθαρίστε το Chart.Series πριν προσθέσετε πραγματικά δεδομένα με το ChartSeriesCollection.Add(seriesName, categories, values):
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");Αυτό το παράδειγμα δημιουργεί ένα Document, χρησιμοποιεί το DocumentBuilder.InsertChart(ChartType.Line, 432, 252) για να εισάγει ένα σχήμα γραμμικού διαγράμματος, διαβάζει το shape.Chart για να λάβει το αντικείμενο Chart, καλεί το chart.Series.Clear() για να αφαιρέσει τη σειρά placeholder, προσθέτει μια πραγματική σειρά με το chart.Series.Add(seriesName, categories, values), και γράφει το αποτέλεσμα με το Document.Save.
Τύποι Διαγραμμάτων
ChartType καλύπτει τις τυπικές οικογένειες διαγραμμάτων του Word — Line, Bar, Column (συμπεριλαμβανομένων των παραλλαγών Stacked, PercentStacked και 3D), Pie, PieOfPie, Doughnut, Area, Scatter, Bubble, Radar, Stock, Surface, και των νεότερων τύπων διαγραμμάτων Word 2016 Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker και Waterfall. Περάστε την επιθυμητή τιμή ως το όρισμα chartType στο InsertChart; δεν υπάρχει τρόπος να αλλάξετε τον τύπο ενός υπάρχοντος διαγράμματος μετά την εισαγωγή εκτός από την αντικατάσταση του σχήματος.
Σειρές και Σημεία Δεδομένων
Chart.Series είναι ένα ChartSeriesCollection από ChartSeries αντικείμενα. Πέρα από την υπερφόρτωση Add(seriesName, categories, values) που χρησιμοποιήθηκε παραπάνω, το ChartSeriesCollection έχει επίσης υπερφορτώσεις για ζεύγη τιμών X/Y, ημερομηνίες και μεγέθη φυσαλίδων, καθώς και Insert, Remove(index) και Clear(). Κάθε ChartSeries εκθέτει DataPoints (ένα ChartDataPointCollection) για μορφοποίηση ανά σημείο — Format, Marker, Explosion και InvertIfNegative — και HasDataLabels / DataLabels για ενεργοποίηση και ρύθμιση ενός ChartDataLabelCollection (ShowValue, ShowCategoryName, ShowPercentage, Position).
Άξονες και Γραμμές Πλέγματος
Chart.AxisX, AxisY και AxisZ είναι αντικείμενα ChartAxis (με Chart.Axes ως ChartAxisCollection για την επανάληψη όλων τους). Κάθε άξονας διαθέτει HasMajorGridlines / HasMinorGridlines, MajorUnit / MinorUnit (με αντίστοιχα *IsAuto flags), Crosses / CrossesAt, CategoryType, και ένα αντικείμενο TickLabels (AxisTickLabels) για τη γραμματοσειρά και τον προσανατολισμό της ετικέτας. ChartAxis.Title (ChartAxisTitle) ορίζει το κείμενο της λεζάντας του άξονα μέσω των ιδιοτήτων Text και Show.
Υπόμνημα, Τίτλος και Πίνακας Δεδομένων
Chart.Title (ChartTitle) ορίζει τη συνολική λεζάντα του διαγράμματος — Text, Show και Font. Chart.Legend (ChartLegend) ελέγχει αν και πού εμφανίζεται το υπόμνημα μέσω του Position (μια τιμή LegendPosition όπως Bottom, Right ή Top) και εκθέτει μεμονωμένα LegendEntries. Chart.DataTable (ChartDataTable) μπορεί να εμφανίσει τις υποκείμενες τιμές των σειρών ως πίνακα κάτω από την περιοχή του γραφήματος, με Show, HasLegendKeys και εναλλαγές περιγράμματος.
Μορφοποίηση Στοιχείων Διαγράμματος
Τα περισσότερα στοιχεία του διαγράμματος — σειρές, σημεία δεδομένων, άξονες, ο τίτλος και το υπόμνημα — εκθέτουν μια ιδιότητα Format τύπου ChartFormat, η οποία με τη σειρά της εκθέτει Fill και Stroke για τα χρώματα του στοιχείου, καθώς και ένα ShapeType (ChartShapeType) για τα σχήματα των σημείων δεδομένων. ChartFormat.SetDefaultFill() επαναφέρει ένα στοιχείο στην προεπιλεγμένη εμφάνιση που καθορίζεται από το θέμα.
Συμβουλές και Καλές Πρακτικές
- Πάντα καθαρίζετε ή αντικαθιστάτε τη σειρά κράτησης θέσης (
chart.Series.Clear()) πριν προσθέσετε πραγματικά δεδομένα — ένα πρόσφατα εισαχθέν διάγραμμα περιλαμβάνει ήδη δείγμα δεδομένων. - Χρησιμοποιήστε τις υπερφορτώσεις του
ChartSeriesCollection.Addπου ταιριάζουν με τη μορφή των δεδομένων σας (κατηγορίες, ζεύγη X/Y, ημερομηνίες ή μεγέθη φουσκών) αντί να εξαναγκάζετε τα πάντα μέσω ζευγών κατηγορία/τιμή. - Ορίστε το
HasDataLabels = trueσε μια σειρά πριν ρυθμίσετε τη συλλογήDataLabels— οι ιδιότητες εμφάνισης της συλλογής δεν έχουν ορατό αποτέλεσμα όταν οι ετικέτες είναι απενεργοποιημένες. - Διαβάστε το
Chart.ChartSpaceή ελέγξτε το συγκεκριμένοChartTypeπριν βασιστείτε στη συμπεριφορά των γραμμών πλέγματος ή των αξόνων που διαφέρει μεταξύ κλασικών διαγραμμάτων και διαγραμμάτων στυλ Word-2016. - Προτιμήστε το
ChartFormat.SetDefaultFill()αντί για το χειροκίνητο καθάρισμα κάθε ιδιότητας γεμίσματος όταν θέλετε να επαναφέρετε την εμφάνιση ενός στοιχείου.
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
| Το νέο διάγραμμα εμφανίζει απρόσμενα δεδομένα επίδειξης | InsertChart σπέρνει το διάγραμμα με σειρά placeholder | Καλέστε το chart.Series.Clear() πριν προσθέσετε τις δικές σας σειρές |
| Οι ετικέτες δεδομένων δεν εμφανίζονται | HasDataLabels δεν ορίστηκε στη σειρά πριν από τη διαμόρφωση του DataLabels | Ορίστε series.HasDataLabels = true, στη συνέχεια ρυθμίστε ShowValue/ShowCategoryName στο series.DataLabels |
| Οι γραμμές πλέγματος δεν εμφανίζονται στον άξονα τιμών | HasMajorGridlines/HasMinorGridlines προεπιλεγούν σε false για αυτόν τον άξονα | Ορίστε chart.AxisY.HasMajorGridlines = true (και HasMinorGridlines αν χρειάζεται) |
| Το υπόμνημα δεν εμφανίζεται | Chart.Legend.Position έχει οριστεί σε LegendPosition.None | Ορίστε Position σε Bottom, Right, Top, Left ή TopRight |
FAQ
Πώς μπορώ να εισάγω ένα γράφημα σε ένα έγγραφο;
Καλέστε DocumentBuilder.InsertChart(chartType, width, height). Επιστρέφει το Shape που το περιέχει· διαβάστε την ιδιότητα Chart για να διαμορφώσετε το γράφημα.
Πώς μπορώ να προσθέσω δεδομένα σε ένα γράφημα;
Καθαρίστε τη σειρά placeholder με το chart.Series.Clear(), στη συνέχεια καλέστε το chart.Series.Add(seriesName, categories, values) (ή μία από τις άλλες υπερφορτωμένες Add για δεδομένα X/Y, ημερομηνίας ή φυσαλίδων).
Ποιοι τύποι γραφήματος είναι διαθέσιμοι;
ChartType περιλαμβάνει τις κλασικές οικογένειες (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, καθώς και τις στοίβακές και 3Δ παραλλαγές τους) και τους τύπους γραφήματος του Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).
Πώς μπορώ να αλλάξω τη θέση όπου εμφανίζεται το υπόμνημα;
Ορίστε το Chart.Legend.Position σε μια τιμή LegendPosition, όπως το LegendPosition.Bottom ή το LegendPosition.Right.
Μπορώ να μορφοποιήσω ένα μεμονωμένο σημείο δεδομένων διαφορετικά από τα υπόλοιπα της σειράς του;
Ναι — δείξτε στο ChartSeries.DataPoints (ένα ChartDataPointCollection) και ορίστε το Format, Marker ή Explosion του ChartDataPoint ανεξάρτητα από τη μορφοποίηση σε επίπεδο σειράς.
API Reference Περίληψη
| Κλάση/Μέθοδος | Περιγραφή |
|---|---|
DocumentBuilder.InsertChart | Εισάγει ένα σχήμα διαγράμματος στον κέρσορα και το επιστρέφει. |
Chart | Το αντικείμενο διαμόρφωσης διαγράμματος, προσβάσιμο μέσω Shape.Chart. |
ChartType | Απαρίθμηση των διαθέσιμων τύπων διαγραμμάτων (γραμμή, ράβδος, πίτα και τύποι διαγραμμάτων Word-2016). |
ChartSeriesCollection / ChartSeries | Οι σειρές δεδομένων του διαγράμματος και οι μέθοδοι για την προσθήκη, εισαγωγή ή αφαίρεσή τους. |
ChartDataPointCollection / ChartDataPoint | Μορφοποίηση ανά σημείο εντός μιας σειράς. |
ChartDataLabelCollection / ChartDataLabel | Ετικέτες τιμής/κατηγορίας που εμφανίζονται σε σημεία του διαγράμματος. |
ChartAxis / ChartAxisCollection | Διαμόρφωση αξόνων — γραμμές πλέγματος, μονάδες, σημείο διασταύρωσης, ετικέτες κλίκας. |
ChartLegend / LegendPosition | Ορατότητα και τοποθέτηση του υπομνήματος. |
ChartTitle | Η συνολική λεζάντα του διαγράμματος. |
ChartDataTable | Προαιρετικός πίνακας τιμών σειράς που εμφανίζεται κάτω από την περιοχή του γραφήματος. |
ChartFormat | Γέμισμα, περίγραμμα και μορφοποίηση σχήματος που μοιράζονται τα περισσότερα στοιχεία γραφήματος. |