無需MS Office創建Excel!再C ++中以編程方式在Excel電子表格中創建圖表

圖表是簡潔顯示數據的絕佳工具。此外,它們以可視方式表示數據,從而更易於使用大量數據。在需要顯示數據(例如每月預算比較或產品採用率)的情況下,圖表可能會有所幫助。有鑑於此,本文將教您如何使用C ++在Excel文件中創建圖表。

  • 使用C ++在Excel中創建折線圖
  • 使用C ++在Excel中創建金字塔圖
  • 使用C ++在Excel中創建氣泡圖

Aspose.Cells for C++是本機C ++庫,使用它可以創建,讀取和修改Excel文件,而無需安裝Microsoft Excel。該API還支持在Excel文件中創建圖表。下載最新版


使用C ++在Excel中創建折線圖

若要創建折線圖,請在添加圖表時使用ChartType_Line枚舉值。以下是在Excel文件中創建折線圖的步驟。

  • 首先,創建一個IWorkbook類的實例。
  • 使用IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)方法檢索要添加圖表的工作表。
  • 插入圖表的數據。
  • 使用IWorksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow,Aspose::Cells::Systems::Int32 upperLeftColumn,Aspose::Cells::Systems::Int32 lowerRightRow,Aspose::Cells::Systems::Int32 lowerRightColumn)方法將圖表添加到工作表中。
  • 使用IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)方法訪問圖表及其索引。
  • 使用 IChart->GetNISeries()->Add (intrusive_ptrarea, bool isVertical)方法爲圖表添加數據源。
  • 最後,使用IWorkbook->Save(intrusive_ptrfileName)方法保存Excel文件。

以下是使用C ++在Excel中創建折線圖的示例代碼。

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Path of output excel file
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));

// Create a new workbook
intrusive_ptrworkbook = Factory::CreateIWorkbook();

// Get first worksheet which is created by default
intrusive_ptrworksheet = 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_ptrchart = 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);
無需MS Office創建Excel!使用C ++在Excel電子表格中創建圖表

使用C ++在Excel中創建金字塔圖

若要創建金字塔形圖,請在添加統計圖時使用ChartType_Pyramid枚舉值指定統計圖類型。以下是在Excel文件中創建金字塔圖的步驟。

  • 首先,創建一個IWorkbook類的實例。
  • 使用IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)方法檢索要添加圖表的工作表。
  • 插入圖表的數據。
  • 使用IWorksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType type,Aspose::Cells::Systems::Int32 upperLeftRow,Aspose::Cells::Systems::Int32 upperLeftColumn,Aspose::Cells::Systems::Int32 lowerRightRow,Aspose::Cells::Systems::Int32 lowerRightColumn)方法將圖表添加到工作表中。
  • 使用IWorksheet->GetICharts()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)方法訪問圖表及其索引。
  • 使用 IChart->GetNISeries()->Add (intrusive_ptrarea, bool isVertical)方法爲圖表添加數據源。
  • 最後,使用IWorkbook->Save(intrusive_ptrfileName)方法保存Excel文件。

以下是使用C ++在Excel中創建金字塔圖的示例代碼。

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Path of output excel file
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));

// Create a new workbook
intrusive_ptrworkbook = Factory::CreateIWorkbook();

// Get first worksheet which is created by default
intrusive_ptrworksheet = 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_ptrchart = 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);
無需MS Office創建Excel!使用C ++在Excel電子表格中創建圖表

使用C ++在Excel中創建氣泡圖

爲了創建一個氣泡圖,該傳ChartType_Bubble枚舉值到IWorksheet-> GetICharts() - >添加()方法。以下是在Excel文件中創建氣泡圖的步驟。

  • 首先,創建一個IWorkbook類的實例。
  • 使用IWorkbook-> GetIWorksheets()-> GetObjectByIndex(Aspose :: Cells :: Systems :: Int32索引)方法檢索要在其中添加圖表的工作表。
  • 插入圖表的數據。
  • 使用IWorksheet-> GetICharts()-> Add將圖表添加到工作表中(Aspose :: Cells :: Charts :: ChartType類型,Aspose :: Cells :: Systems :: Int32 upperLeftRow,Aspose :: Cells :: Systems: :Int32 upperLeftColumn,Aspose :: Cells :: Systems :: Int32 lowerRightRow,Aspose :: Cells :: Systems :: Int32 lowerRightColumn)方法。
  • 使用IWorksheet-> GetICharts()-> GetObjectByIndex(Aspose :: Cells :: Systems :: Int32索引)方法訪問帶有索引的圖表。
  • 使用 IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes (intrusive_ptrarea, bool isVertical), IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes (intrusive_ptr值)、ICchart->GetNISeries()->GetObjectByIndex(0)->SetXValues(intrusive_ptr值)、ICchart->GetNISeries()->GetObjectByIndex(0)->SetValues(intrusive_ptr值)方法分別設置。
  • 最後,使用IWorkbook->Save(intrusive_ptrfileName)方法保存Excel文件。

以下是使用C ++在Excel中創建氣泡圖的示例代碼。

// Output directory path.
StringPtr outDir = new String("OutputDirectory\\");

// Path of output excel file
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));

// Create a new workbook
intrusive_ptrworkbook = Factory::CreateIWorkbook();

// Get first worksheet which is created by default
intrusive_ptrworksheet = 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_ptrchart = 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);
無需MS Office創建Excel!使用C ++在Excel電子表格中創建圖表

如果您有任何疑問或需求,請隨時加入Aspose技術交流羣(761297826),我們很高興爲您提供查詢和諮詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章