איך לעבוד עם תרשימים ב-.NET
מדריך זה מראה כיצד להכניס תרשים Word מקורי ולשלוט במראה שלו עם Aspose.Words FOSS עבור .NET — הסתרת האגדה והצירים, קיבוע קנה מידה של ציר הערכים, ואז בחירת סוג תרשים שונה ועיצוב תוויות נתונים ונקודות בודדות. Aspose.Words FOSS עבור .NET זמין דרך NuGet או על ידי בנייה מהמקור.
מדריך שלב אחר שלב
שלב 1: קבל את הספרייה
שכפל את המאגר ובנה Aspose.Words.sln בתצורת Release, ואז הוסף הפנייה לפרויקט ל Aspose.Words.csproj מהפרויקט שלך .NET, כפי המתואר ב- מדריך ההתקנה.
שלב 2: הוסף תרשים ופשט את המראה שלו
DocumentBuilder.InsertChart(chartType, width, height) מוסיף צורת תרשים במיקום הסמן ומחזיר את Shape המכילה; המאפיין Chart שלו הוא האובייקט Chart שאתה מגדיר, עם AxisX, AxisY, Legend ו-Title כתתי-אובייקטים הראשיים שלו. סוגי התרשימים קיימים במרחב השמות Aspose.Words.Drawing.Charts לצד מרחב השמות הליבה Aspose.Words. תרשים ChartType.Bar מינימלי, מוכן להצגה, על Document חדש לרוב דורש הגדרת Legend.Position ל-LegendPosition.None, הגדרת Hidden ו-HasMajorGridlines על AxisY ו-AxisX, הגדרת Title.Show ל-false, ניקוי ה-placeholder ChartSeriesCollection באמצעות Series.Clear() לפני קריאת Series.Add(seriesName, categories, values), נעילת AxisY.Scaling.Maximum ל-AxisBound קבוע במקום לאפשר קנה מידה אוטומטי, ואז כתיבת התוצאה עם Document.Save. הדוגמה המלאה — Document, DocumentBuilder, Chart, AxisX, AxisY, Legend, Title, ChartSeriesCollection, AxisBound, ו-Document.Save — נראית כך:
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");זה בונה Document, מכניס גרף ChartType.Bar, מגדיר Chart.Legend.Position ל-LegendPosition.None כדי להסתיר את המקרא, מגדיר Hidden = true ו-HasMajorGridlines = false על chart.AxisY ו-Hidden = true על chart.AxisX, מגדיר chart.Title.Show = false, מוחק את סדרת המזהים עם seriesColl.Clear(), מקבע את ציר הערכים למקסימום 100 דרך chart.AxisY.Scaling.Maximum = new AxisBound(100), מוסיף סדרה אמיתית אחת עם seriesColl.Add(seriesName, categories, values), וכותב את התוצאה עם Document.Save.
שלב 3: בחר סוג גרף שונה
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 — אין רכיב שמשנה את סוג הגרף הקיים לאחר ההוספה, ולכן יש לבחור את הסוג הנכון מראש או להחליף את הצורה.
שלב 4: הוסף ועצב תוויות נתונים
הגדר את series.HasDataLabels = true לפני קביעת series.DataLabels (זהו ChartDataLabelCollection) — שינוי מצבי התצוגה שלו אינו משפיע באופן נראה כאשר התוויות כבויות. ShowValue, ShowCategoryName ו-ShowPercentage שולטות באילו חלקי מידע מוצגים, ו-Position ממקמת אותם יחסית לנקודת הנתונים.
שלב 5: עצב נקודת נתון בודדת
גש למערך DataPoints של סדרה (זהו ChartDataPointCollection) כדי להגיע ל-ChartDataPoint אחד ולהגדיר את Format, Marker, Explosion או InvertIfNegative באופן עצמאי משאר הסדרה. כך ניתן להדגיש שורה, פרוסה או סמן יחיד מבלי לשנות את העיצוב של כל הסדרה.
בעיות נפוצות ותיקונים
התרשים החדש מציג נתוני הדגמה בלתי צפויים. InsertChart מזין את התרשים בסדרות מציינות מקום. קרא chart.Series.Clear() לפני הוספת הסדרות שלך.
Hiding AxisY אינו מסיר את קווי הרשת. Hidden מסתיר את קו הציר ואת התוויות; קווי הרשת הם הפעלה נפרדת. הגדר HasMajorGridlines = false (ו HasMinorGridlines = false אם קווי רשת משניים גם נראים).
תוויות הנתונים אינן מופיעות לאחר שהוגדר ShowValue = true. HasDataLabels לא הוגדר על הסדרה תחילה. הגדר series.HasDataLabels = true, ואז קבע series.DataLabels.
Scaling.Maximum לא נראה שהוא חל. אשר שאתה מגדיר זאת על אובייקט הציר הנכון (chart.AxisY לציר הערכים ברוב סוגי התרשימים) ושאין נתיב קוד מוקדם יותר מאפס Scaling בחזרה לברירת המחדל AxisBound().
שאלות נפוצות
איך אני מסתיר את מקרא הגרף?
הגדר chart.Legend.Position = LegendPosition.None.
איך אני מקבע ציר לטווח ספציפי במקום קנה מידה אוטומטי?
הגדר AxisScaling.Minimum ו/או AxisScaling.Maximum (שתי ערכי AxisBound) ב-chart.AxisX.Scaling או ב-chart.AxisY.Scaling.
איך אני מסתיר את כותרת התרשים מבלי למחוק אותה?
הגדר chart.Title.Show = false. האובייקט ChartTitle וה-Text שלו נשארים; רק הכיתוב הגלוי מוסתר.
אילו סוגי תרשימים זמינים?
ChartType מציג את המשפחות הקלאסיות (Line, Bar, Column, Pie, Area, Scatter, Bubble, Radar, Stock, Surface, בנוסף לגרסאות ערימות ותלת-ממד) לצד סוגי Word 2016 (Treemap, Sunburst, Histogram, Pareto, BoxAndWhisker, Waterfall).
האם אני יכול לעצב נקודת נתון אחת באופן שונה משאר הסדרה שלה?
כן — השתמש באינדקס ב-ChartSeries.DataPoints והגדר את ה-Format, Marker או Explosion של ChartDataPoint באופן עצמאי.