إنشاء وإدارة المخططات باستخدام Node.js عبر C++
إنشاء الرسوم البيانية
ببساطة إنشاء رسم بياني
إنشاء مخطط بسيط باستخدام Aspose.Cells يمكن تحقيقه باستخدام أكواد الأمثلة التالية:
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook(filePath);
// Obtaining the reference of the first worksheet
const worksheet = workbook.getWorksheets().get(0);
// Adding sample values to cells
worksheet.getCells().get("A2").putValue("Category1");
worksheet.getCells().get("A3").putValue("Category2");
worksheet.getCells().get("A4").putValue("Category3");
worksheet.getCells().get("B1").putValue("Column1");
worksheet.getCells().get("B2").putValue(4);
worksheet.getCells().get("B3").putValue(20);
worksheet.getCells().get("B4").putValue(50);
worksheet.getCells().get("C1").putValue("Column2");
worksheet.getCells().get("C2").putValue(50);
worksheet.getCells().get("C3").putValue(100);
worksheet.getCells().get("C4").putValue(150);
// Adding a chart to the worksheet
const chartIndex = worksheet.getCharts().add(AsposeCells.ChartType.Column, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
const chart = worksheet.getCharts().get(chartIndex);
// Setting chart data source as the range "A1:C4"
chart.setChartDataRange("A1:C4", true);
// Saving the Excel file
workbook.save(path.join(dataDir, "output.xls"));
الأشياء التي يجب معرفتها لإنشاء مخطط
قبل إنشاء المخططات، من المهم فهم بعض المفاهيم الأساسية التي تساعد عند إنشاء المخططات باستخدام Aspose.Cells.
كائنات المخطط
المبالغ الخاصة بالمخططات مذكورة أدناه:
- Series، سلسلة بيانات واحدة في المخطط.
- Axis، محور المخطط.
- Chart، مخطط Excel واحد.
- ChartArea، منطقة المخطط في ورقة العمل.
- ChartDataTable، جدول بيانات المخطط.
- ChartFrame، كائن الإطار في المخطط.
- ChartPoint، نقطة واحدة في سلسلة في المخطط.
- ChartPointCollection، مجموعة تحتوي على جميع النقاط في سلسلة واحدة.
- Charts، مجموعة من كائنات المخطط.
- DataLabels، مجموعة من جميع كائنات DataLabel للسلسلة المحددة.
- FillFormat، تنسيق الملء للشكل.
- Floor، الطابق لمخطط ثلاثي الأبعاد.
- Legend، وسام المخطط.
- Line، خط المخطط.
- SeriesCollection، مجموعة من كائنات Series.
- تسميات العلامات، علامات العلامة المرتبطة بعلامات ضبط على محور الرسم البياني.
- العنوان، عنوان الرسم البياني أو المحور.
- خط الاتجاه، خط اتجاه في الرسم البياني.
- مجموعة خطوط الاتجاه، مجموعة من جميع كائنات خط الاتجاه لسلسلة البيانات المحددة.
- الجدران، الجدران في رسم بياني ثلاثي الأبعاد.
استخدام كائنات الرسم البياني
كما ذكر أعلاه، جميع كائنات الرسم البياني هي حالات من فئاتها الخاصة وتوفر خصائص وأساليب محددة لأداء مهام محددة. استخدم كائنات الرسم البياني لإنشاء رسوم بيانية.
أضف أي نوع من المخططات إلى ورقة العمل باستخدام مجموعة getCharts(). يمثل كل عنصر في مجموعة getCharts() كائن Chart. ي encapsulate كائن Chart كل كائنات المخطط الأخرى اللازمة لتخصيص مظهر المخطط. يوضح القسم التالي كيفية استخدام بعض الكائنات الأساسية للمخطط لإنشاء مخطط بسيط.
إنشاء رسم بياني باستخدام Aspose.Cells
الخطوات:
- أضف بعض البيانات إلى خلايا ورقة العمل باستخدام طريقة putValue(string) الخاصّة بكائن Cell. سيتم استخدام هذا كمصدر بيانات للرسم البياني.
- أضف مخططًا إلى ورقة العمل عن طريق استدعاء طريقة add لمجموعة ChartCollection، مغلفة في الكائن Worksheet.
- حدد نوع المخطط باستخدام التعداد ChartType. على سبيل المثال، يستخدم المثال أدناه قيمة ChartType.Pyramid كنمط للمخطط.
- الوصول إلى الكائن Chart الجديد من مجموعة Charts عن طريق تمرير فهرسه.
- استخدم أي من كائنات المخطط الم encapsulate في كائن Chart لإدارة المخطط. يستخدم المثال أدناه كائن SeriesCollection للمخطط لتحديد مصدر بيانات المخطط.
عند إضافة بيانات المصدر إلى الرسم البياني، يمكن أن يكون مصدر البيانات مجال خلايا (مثل “A1:C3”)، أو تسلسل خلايا غير متجاورة (مثل “A1، A3، A5”)، أو تسلسل من القيم (مثل “1،2،3”).
تتيح لك هذه الخطوات العامة إنشاء أي نوع من الرسم البياني. استخدم كائنات الرسم البياني المختلفة لإنشاء رسوم بيانية مختلفة.
من الممكن إنشاء العديد من أنواع الرسوم البيانية المختلفة باستخدام Aspose.Cells. جميع الرسوم البيانية القياسية المدعومة بواسطة Aspose.Cells محددة مسبقًا في تعداد يسمى ChartType.
تخطيطات الرسوم البيانية المحددة مسبقًا هي:
أنواع الرسوم البيانية | الوصف |
---|---|
Column | يمثل مخطط الأعمدة المتجانبة |
ColumnStacked | يمثل مخطط الأعمدة المكدسة |
Column100PercentStacked | يمثل مخطط الأعمدة المكدسة بنسبة 100% |
Column3DClustered | يمثل مخطط الأعمدة المتجانبة ثلاثي الأبعاد |
Column3DStacked | يمثل مخطط الأعمدة المكدسة ثلاثي الأبعاد |
Column3D100PercentStacked | يمثل مخطط الأعمدة المكدسة بنسبة 100% ثلاثي الأبعاد |
Column3D | يمثل مخطط الأعمدة ثلاثي الأبعاد |
Bar | يمثل مخطط الأعمدة المتجانبة الأفقية |
BarStacked | يمثل مخطط الأعمدة المكدسة الأفقية |
Bar100PercentStacked | يمثل مخطط الأعمدة المكدسة بنسبة 100% الأفقية |
Bar3DClustered | يمثل مخطط الأعمدة المتجانبة ثلاثي الأبعاد الأفقية |
Bar3DStacked | يمثل مخطط الأعمدة المكدسة ثلاثي الأبعاد الأفقية |
Bar3D100PercentStacked | يمثل مخطط الأعمدة المكدسة بنسبة 100% ثلاثي الأبعاد الأفقية |
Line | يمثل مخطط الخطوط |
LineStacked | يمثل مخطط الخطوط المكدسة |
Line100PercentStacked | يمثل مخطط الخطوط المكدسة بنسبة 100% |
LineWithDataMarkers | يمثل مخطط الخط مع علامات البيانات |
LineStackedWithDataMarkers | تمثل مخطط خطوط مكدسة مع علامات البيانات |
Line100PercentStackedWithDataMarkers | تمثل مخطط خطوط مكدسة 100% مع علامات البيانات |
Line3D | تمثل مخطط خطوط ثلاثي الأبعاد |
Pie | تمثل مخطط دائري |
Pie3D | تمثل مخطط دائري ثلاثي الأبعاد |
PiePie | تمثل مخطط دائري فوق الدائرة |
PieExploded | تمثل مخطط دائري منفجر |
Pie3DExploded | تمثل مخطط دائري منفجر ثلاثي الأبعاد |
PieBar | تمثل مخطط بارز فوق القطعة من البيتزا |
Scatter | تمثل مخطط النقاط |
ScatterConnectedByCurvesWithDataMarker | تمثل مخطط النقاط متصلة بالخطوط المنحنية، مع علامات البيانات |
ScatterConnectedByCurvesWithoutDataMarker | تمثل مخطط النقاط متصلة بالخطوط المنحنية، بدون علامات البيانات |
ScatterConnectedByLinesWithDataMarker | تمثل مخطط النقاط متصلة بخطوط، مع علامات البيانات |
ScatterConnectedByLinesWithoutDataMarker | تمثل مخطط النقاط متصلة بخطوط، بدون علامات البيانات |
Area | تمثل مخطط المساحة |
AreaStacked | تمثل مخطط المساحة المكدسة |
Area100PercentStacked | تمثل مخطط المساحة المكدسة 100% |
Area3D | تمثل مخطط المساحة ثلاثي الأبعاد |
Area3DStacked | تمثل مخطط المساحة المكدسة ثلاثي الأبعاد |
Area3D100PercentStacked | تمثل مخطط المساحة المكدسة 100% ثلاثي الأبعاد |
Doughnut | يمثل مخطط الدونات |
DoughnutExploded | يمثل مخطط الدونات المتفجر |
Radar | يمثل مخطط الرادار |
RadarWithDataMarkers | يمثل مخطط الرادار مع علامات البيانات |
RadarFilled | يمثل مخطط الرادار المملوء |
Surface3D | يمثل مخطط السطح ثلاثي الأبعاد |
SurfaceWireframe3D | يمثل مخطط سطح ثلاثي الأبعاد بالأسلاك |
SurfaceContour | يمثل مخطط التكهف |
SurfaceContourWireframe | يمثل مخطط التكهف بالأسلاك |
Bubble | يمثل مخطط الفقاعات |
Bubble3D | يمثل مخطط الفقاعات ثلاثي الأبعاد |
Cylinder | يمثل مخطط الأسطوانة |
CylinderStacked | يمثل مخطط الأسطوانة المكدسة |
Cylinder100PercentStacked | يمثل المخطط الأسطواني المكدس بنسبة 100٪ |
CylindericalBar | يمثل مخطط الأعمدة الأسطوانية |
CylindericalBarStacked | يمثل مخطط الأعمدة الأسطوانية المكدسة |
CylindericalBar100PercentStacked | يمثل المخطط الأسطواني المكدس بنسبة 100٪ |
CylindericalColumn3D | يمثل مخطط الأعمدة الأسطوانية ثلاثي الأبعاد |
Cone | يمثل مخطط المخروط |
ConeStacked | يمثل مخطط المخروط المكدس |
Cone100PercentStacked | يمثل 100% حجم الرسم البياني المكدس المخروطي |
ConicalBar | يمثل رسم بياني شريطي مخروطي |
ConicalBarStacked | يمثل رسم بياني شريطي مكدس مخروطي |
ConicalBar100PercentStacked | يمثل رسم بياني شريطي مخروطي مكدس بنسبة 100% |
ConicalColumn3D | يمثل رسم بياني أعمدة مخروطي ثلاثي الأبعاد |
Pyramid | يمثل رسم بياني الهرم |
PyramidStacked | يمثل رسم بياني الهرم المكدس |
Pyramid100PercentStacked | يمثل رسم بياني الهرم المكدس بنسبة 100% |
PyramidBar | يمثل رسم بياني شريطي هرمي |
PyramidBarStacked | يمثل رسم بياني شريطي هرمي مكدس |
PyramidBar100PercentStacked | يمثل رسم بياني شريطي هرمي مكدس بنسبة 100% |
PyramidColumn3D | يمثل رسم بياني أعمدة هرمي ثلاثي الأبعاد |
عندما تُسند نطاقًا من الخلايا كمصدر للبيانات، يمكنك تعيين النطاق فقط من الزاوية العلوية اليسرى إلى الزاوية السفلى اليمنى. على سبيل المثال، “A1:C3” صالح بينما “C3:A1” غير صالح.
|
رسم بياني الهرم
عند تنفيذ الشيفرة المرجعية، يتم إضافة رسم بياني للهرم إلى ورقة العمل.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook();
// Adding a new worksheet to the Excel object
const sheetIndex = workbook.getWorksheets().add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(sheetIndex);
// Adding sample values to cells
worksheet.getCells().get("A1").putValue(50);
worksheet.getCells().get("A2").putValue(100);
worksheet.getCells().get("A3").putValue(150);
worksheet.getCells().get("B1").putValue(4);
worksheet.getCells().get("B2").putValue(20);
worksheet.getCells().get("B3").putValue(50);
// Adding a chart to the worksheet
const chartIndex = worksheet.getCharts().add(AsposeCells.ChartType.Pyramid, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
const chart = worksheet.getCharts().get(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.getNSeries().add("A1:B3", true);
// Saving the Excel file
workbook.save(path.join(dataDir, "output.xls"));
رسم بياني خطي
في المثال أعلاه، ببساطة تغيير ChartType إلى Line ينشئ مخطط خطي. المصدر الكامل موفر أدناه. عند تنفيذ الكود، يتم إضافة مخطط خطي إلى ورقة العمل.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Loads the workbook which contains hidden external links
const workbook = new AsposeCells.Workbook(filePath);
// Adding a new worksheet to the Excel object
const sheetIndex = workbook.getWorksheets().add();
// Obtaining the reference of the newly added worksheet by passing its sheet index
const worksheet = workbook.getWorksheets().get(sheetIndex);
// Adding sample values to cells
worksheet.getCells().get("A1").putValue(50);
worksheet.getCells().get("A2").putValue(100);
worksheet.getCells().get("A3").putValue(150);
worksheet.getCells().get("B1").putValue(4);
worksheet.getCells().get("B2").putValue(20);
worksheet.getCells().get("B3").putValue(50);
// Adding a chart to the worksheet
const chartIndex = worksheet.getCharts().add(AsposeCells.ChartType.Line, 5, 0, 15, 5);
// Accessing the instance of the newly added chart
const chart = worksheet.getCharts().get(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart.getNSeries().add("A1:B3", true);
// Saving the Excel file
workbook.save(path.join(dataDir, "output.xls"));
رسم بياني فقاعي
لإنشاء مخطط فقاعه، يجب إعداد ChartType إلى ChartType.Bubble وبعض الخصائص الإضافية مثل BubbleSizes و Values و XValues وفقًا لذلك. عند تنفيذ الكود التالي، يتم إضافة مخطط فقاعه إلى ورقة العمل.
رسم بياني خطي بمؤشرات البيانات
لإنشاء مخطط بخط مع علامة البيانات، يجب إعداد ChartType إلى ChartType.LineWithDataMarkers وبعض الخصائص الإضافية مثل المنطقة الخلفية، علامات السلسلة، القيم و XValues وفقًا لذلك. عند تنفيذ الكود التالي، يتم إضافة مخطط بخط مع علامة البيانات إلى ورقة العمل.
const path = require("path");
const AsposeCells = require("aspose.cells.node");
// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sample.xlsx");
// Instantiate a workbook
const workbook = new AsposeCells.Workbook();
// Access first worksheet
const worksheet = workbook.getWorksheets().get(0);
// Set columns title
worksheet.getCells().get(0, 0).putValue("X");
worksheet.getCells().get(0, 1).putValue("Y");
// Random data shall be used for generating the chart
// Create random data and save in the cells
for (let i = 1; i < 21; i++) {
worksheet.getCells().get(i, 0).putValue(i);
worksheet.getCells().get(i, 1).putValue(0.8);
}
for (let i = 21; i < 41; i++) {
worksheet.getCells().get(i, 0).putValue(i - 20);
worksheet.getCells().get(i, 1).putValue(0.9);
}
// Add a chart to the worksheet
const idx = worksheet.getCharts().add(AsposeCells.ChartType.LineWithDataMarkers, 1, 3, 20, 20);
// Access the newly created chart
const chart = worksheet.getCharts().get(idx);
// Set chart style
chart.setStyle(3);
// Set autoscaling value to true
chart.setAutoScaling(true);
// Set foreground color white
chart.getPlotArea().getArea().setForegroundColor(AsposeCells.Color.White);
// Set Properties of chart title
chart.getTitle().setText("Sample Chart");
// Set chart type
chart.setType(AsposeCells.ChartType.LineWithDataMarkers);
// Set Properties of categoryaxis title
chart.getCategoryAxis().getTitle().setText("Units");
//Set Properties of nseries
const s2_idx = chart.getNSeries().add("A2:A2", true);
const s3_idx = chart.getNSeries().add("A22:A22", true);
// Set IsColorVaried to true for varied points color
chart.getNSeries().setIsColorVaried(true);
// Set properties of background area and series markers
chart.getNSeries().get(s2_idx).getArea().setFormatting(AsposeCells.FormattingType.Custom);
chart.getNSeries().get(s2_idx).getMarker().getArea().setForegroundColor(AsposeCells.Color.Yellow);
chart.getNSeries().get(s2_idx).getMarker().getBorder().setIsVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s2_idx).setXValues("A2:A21");
chart.getNSeries().get(s2_idx).setValues("B2:B21");
// Set properties of background area and series markers
chart.getNSeries().get(s3_idx).getArea().setFormatting(AsposeCells.FormattingType.Custom);
chart.getNSeries().get(s3_idx).getMarker().getArea().setForegroundColor(AsposeCells.Color.Green);
chart.getNSeries().get(s3_idx).getMarker().getBorder().setIsVisible(false);
// Set X and Y values of series chart
chart.getNSeries().get(s3_idx).setXValues("A22:A41");
chart.getNSeries().get(s3_idx).setValues("B22:B41");
// Save the workbook
workbook.save(path.join(dataDir, "LineWithDataMarkerChart.xlsx"), AsposeCells.SaveFormat.Xlsx);
مواضيع متقدمة
- قراءة وتلاعب شكل بيانات Excel 2016
- إدارة محاور مخططات Excel
- ضبط مظهر الرسم البياني
- أنواع المخططات
- تخصيص المخططات
- تعيين مصدر البيانات للمخطط
- إدارة تسميات البيانات في مخططات Excel
- الحصول على ورقة العمل من المخطط
- إدارة الأسطورة في مخططات Excel
- تلاعب بموقع وحجم وتصميم المخطط
- إنشاء مخطط دائري مع خطوط قيادة
- الأشكال في المخططات
- إدارة عناوين مخططات Excel
- عرض الرسم البياني
- الحصول على نص المعادلة لخط اتجاه المخطط