ویژگی‌ها و عملکردها

ویژگی‌ها و عملکردها

ویژگی‌ها و عملکردها

این صفحه قابلیت‌های ایجاد نمودار را پوشش می‌دهد Aspose.Words FOSS برای .NET با مثال‌های عملی C#، ساخته شده بر DocumentBuilder.InsertChart() و Chart مدل شیء. مدل شیء کامل اسناد کتابخانه (پاراگراف‌ها، جداول، سبک‌ها، نشانک‌ها، بخش‌ها) در نمای کلی محصول و در Quickstart راهنما.


ایجاد سند با یک نمودار

یک شکل نمودار را با DocumentBuilder.InsertChart() درج کنید، سپس از طریق Shape برگردانده‌شده به شیء Chart آن دسترسی پیدا کنید. قبل از افزودن داده‌های واقعی، سری پیش‌فرض تولید شده را پاک کنید:

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) به مقادیر جایگزین 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

چرا شماره‌های صفحه در فهرست مطالب من به صورت ۰ نمایش داده می‌شوند؟

این نسخه‌ی FOSS شامل زیرسیستم چیدمان صفحه و رندرینگ نیست، بنابراین هر مقدار فیلدی که به چیدمان صفحه وابسته است — از جمله شماره‌های صفحه — به جای مقدار محاسبه‌شده، به یک جای‌دار 0 ارزیابی می‌شود.

آیا می‌توانم یک سند را به PDF یا یک قالب تصویر صادر کنم؟

در این نسخه امکان‌پذیر نیست. خروجی PDF، XPS و تصویر به همان زیرسیستم رندرینگ وابسته‌اند که برای رایگان نگه داشتن این نسخه حذف شد. برای آن خروجی‌ها از Aspose.Words تجاری برای .NET استفاده کنید.

آیا می‌توانم یک امضای دیجیتال جدید بر روی یک سند ایجاد کنم؟

خیر — این نسخه می‌تواند امضاهای دیجیتال موجود را تأیید کند اما نمی‌تواند امضاهای جدید ایجاد کند.

کدام انواع نمودار را InsertChart() پشتیبانی می‌کند؟

InsertChart() یک مقدار ChartType می‌گیرد — این enum شامل خانواده‌های استاندارد نمودار مانند خط، ستون، میله، دایره‌ای، مساحت، دونات، رادار، پراکندگی، سهام و سطحی است و شامل انواع پشته‌دار و سه‌بعدی آن‌ها می‌شود.

خلاصه 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قالب‌بندی متن و پر کردن (رنگ ثابت، گرادیان) در عناصر متنی نمودار

همچنین ببینید:

 فارسی