Grafikler Oluşturma ve Özelleştirme

Olası Kullanım Senaryoları

Grafik, bilgilerin görsel bir gösterimidir. Aspose.Cells, geliştiricilerin tıpkı Microsoft Excel’in yaptığı gibi grafiklerdeki bilgileri görselleştirmesine olanak tanır. Bilgileri grafikler halinde sunmak, karar vericilerin hızlı ve zamanında kararlar almaları için her zaman yardımcı olur. Verilerdeki karşılaştırmaları, kalıpları ve eğilimleri, ham sayılar yerine grafiklerle hızlı bir şekilde görmek daha kolaydır. Bir elektronik tablodaki verilere dayalı olarak çalışma zamanında grafikler oluşturmak, Aspose.Cells’in kullanışlı özelliklerinden biridir. Aspose.Cells, hem Standart hem de Özelleştirilmiş grafikler oluşturmayı destekler. Aşağıda, Aspose.Cells API kullanarak bazı yaygın MS-Excel grafik türlerinin nasıl oluşturulacağına ilişkin örnek dosyalarla birlikte birkaç örnek göstereceğiz.

Piramit Grafiği

Örnek kod yürütüldüğünde, çalışma sayfasına bir piramit grafiği eklenir. Lütfen bkzçıktı excel dosyası aşağıdaki örnek koddan.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);
// Saving the Excel file
workbook->Save(outputChartTypePyramid);

Çizgi grafik

Yukarıdaki örnekte, basitçe değiştirmekGrafik tipiileChartType_Linebir çizgi grafiği oluşturur. Tam kaynak aşağıda verilmiştir. kod yürütüldüğünde, çalışma sayfasına bir çizgi grafik eklenir. Lütfen bkzçıktı excel dosyası aşağıdaki örnek koddan.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(20);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from "A1" cell to "B3"
chart->GetNISeries()->Add(new String("A1:B3"), true);
// Saving the Excel file
workbook->Save(outputChartTypeLine);

Kabarcık Grafiği

Balon grafiği oluşturmak için,Grafik tipi olarak ayarlanması gerekirChartType_Bubble ve birkaç ekstra özellik gibiBalon Boyutlarını Ayarla & SetXValues buna göre ayarlanması gerekir. Aşağıdaki kodu çalıştırdıktan sonra, çalışma sayfasına bir balon grafiği eklenir. Lütfen bkzçıktı excel dosyası aşağıdaki örnek koddan.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Fill in data for chart's series
// Y Values
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Y Values"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// Bubble Size
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("Bubble Size"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// X Values
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("X Values"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);
// Set first column width
worksheet->GetICells()->SetColumnWidth(0, 12);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from B1 to D1
chart->GetNISeries()->Add(new String("B1:D1"), true);
// Set bubble sizes
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));
// Set X axis values
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));
// Set Y axis values
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));
// Saving the Excel file
workbook->Save(outputChartTypeBubble);

Özel Grafikler Oluşturma

Şimdiye kadar grafikleri tartıştığımızda, kendi standart biçimlendirme ayarlarına sahip standart grafiklere baktık. Yalnızca veri kaynağını tanımlarız, birkaç özellik ayarlarız ve grafik, varsayılan biçim ayarlarıyla oluşturulur. Ancak Aspose.Cells API’leri, geliştiricilerin kendi biçim ayarlarıyla grafikler oluşturmasına olanak tanıyan özel grafikler oluşturmayı da destekler. Geliştiriciler, çalışma zamanında Aspose.Cells’i kullanarak özel grafikler oluşturabilir.

Grafik, bir veri serisinden oluşur. Geliştiriciler, özel bir grafik oluştururken, farklı veri serileri için farklı türde grafikler kullanma özgürlüğüne sahiptir.

Aşağıdaki örnek kod, özel grafiklerin nasıl oluşturulacağını gösterir. Bu örnekte, birinci veri serisi için bir sütun grafiği ve ikinci seri için bir çizgi grafiği kullanacağız. Sonuç olarak, çalışma sayfasına bir çizgi grafiğiyle birlikte bir sütun grafiği ekliyoruz. Lütfen bkzçıktı excel dosyası aşağıdaki örnek koddan.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-C
// Output directory path
StringPtr outDir = new String("..\\Data\\02_OutputDirectory\\");
// Path of output excel file
StringPtr outputChartTypeCustom = outDir->StringAppend(new String("outputChartTypeCustom.xlsx"));
// Create a new workbook
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Get first worksheet which is created by default
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Adding sample values to cells
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(100);
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(150);
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(110);
worksheet->GetICells()->GetObjectByIndex(new String("B1"))->PutValue(260);
worksheet->GetICells()->GetObjectByIndex(new String("B2"))->PutValue(12);
worksheet->GetICells()->GetObjectByIndex(new String("B3"))->PutValue(50);
worksheet->GetICells()->GetObjectByIndex(new String("B4"))->PutValue(100);
// Adding a chart to the worksheet
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Column, 5, 0, 20, 8);
// Accessing the instance of the newly added chart
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// Adding SeriesCollection (chart data source) to the chart ranging from A1 to B4
chart->GetNISeries()->Add(new String("A1:B4"), true);
// Setting the chart type of 2nd NSeries to display as line chart
chart->GetNISeries()->GetObjectByIndex(1)->SetType(Aspose::Cells::Charts::ChartType::ChartType_Line);
// Saving the Excel file
workbook->Save(outputChartTypeCustom);