圖表是簡潔顯示數據的絕佳工具。此外,它們以可視化方式表示數據,從而更容易消耗大量數據。在需要顯示月度預算比較或產品採用率等數據的情況下,您可能會發現圖表很有用。鑑於此,本文將教您如何使用 C++ 在 Excel 文件中創建圖表。
- 用於創建 Excel 圖表的 C++ API
- 使用 C++ 在 Excel 中創建折線圖
- 使用 C++ 在 Excel 中創建金字塔圖
- 使用 C++ 在 Excel 中創建氣泡圖
- 額外支持的圖表
- 獲得免費許可證
用於創建 Excel 圖表的 C++ API
Aspose.Cells for C++ 是一個本地 C++ 庫,允許您創建、讀取和修改 Excel 文件,而無需安裝 Microsoft Excel。 API 還支持在 Excel 文件中創建圖表。您可以通過 NuGet 安裝 API 或直接從 下載 部分下載。
PM> Install-Package Aspose.Cells.Cpp
使用 C++ 在 Excel 中創建折線圖
要創建折線圖,請在添加圖表時使用 ChartTypeLine 枚舉值。以下是在 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 (intrusiveptrAspose::Cells::Systems::String area, bool isVertical) 方法。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下是使用 C++ 在 Excel 中創建折線圖的示例代碼。
// 輸出目錄路徑。
StringPtr outDir = new String("OutputDirectory\\");
// 輸出excel文件路徑
StringPtr outputChartTypeLine = outDir->StringAppend(new String("outputChartTypeLine.xlsx"));
// 創建新工作簿
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// 獲取默認創建的第一個工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 將示例值添加到單元格
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);
// 向工作表添加圖表
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Line, 5, 0, 20, 8);
// 訪問新添加圖表的實例
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// 將 SeriesCollection(圖表數據源)添加到從“A1”單元格到“B3”的圖表
chart->GetNISeries()->Add(new String("A1:B3"), true);
// 保存 Excel 文件
workbook->Save(outputChartTypeLine);
使用 C++ 在 Excel 中創建金字塔圖
要創建金字塔圖,請在添加圖表時使用 ChartTypePyramid 枚舉值指定圖表類型。以下是在 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 (intrusiveptrAspose::Cells::Systems::String area, bool isVertical) 方法。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下是使用 C++ 在 Excel 中創建金字塔圖的示例代碼。
// 輸出目錄路徑。
StringPtr outDir = new String("OutputDirectory\\");
// 輸出excel文件路徑
StringPtr outputChartTypePyramid = outDir->StringAppend(new String("outputChartTypePyramid.xlsx"));
// 創建新工作簿
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// 獲取默認創建的第一個工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 將示例值添加到單元格
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);
// 向工作表添加圖表
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Pyramid, 5, 0, 20, 8);
// 訪問新添加圖表的實例
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// 將 SeriesCollection(圖表數據源)添加到從“A1”單元格到“B3”的圖表
chart->GetNISeries()->Add(new String("A1:B3"), true);
// 保存 Excel 文件
workbook->Save(outputChartTypePyramid);
使用 C++ 在 Excel 中創建氣泡圖
為了創建氣泡圖,將 ChartTypeBubble 枚舉值傳遞給 IWorksheet->GetICharts()->Add() 方法。以下是在 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 (intrusiveptr) 添加圖表的數據源、氣泡大小、X 值和 Y 值Aspose::Cells::Systems::Stringarea, bool isVertical), IChart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes (intrusiveptrAspose::Cells::Systems::String value), IChart->GetNISeries()->GetObjectByIndex(0)->SetXValues (intrusiveptrAspose::Cells::Systems::String value), IChart->GetNISeries()->GetObjectByIndex(0)->SetValues (intrusiveptrAspose::Cells::Systems::String值) 方法分別。
- 最後,使用 IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String文件名) 方法。
以下是使用 C++ 在 Excel 中創建氣泡圖的示例代碼。
// 輸出目錄路徑。
StringPtr outDir = new String("OutputDirectory\\");
// 輸出excel文件路徑
StringPtr outputChartTypeBubble = outDir->StringAppend(new String("outputChartTypeBubble.xlsx"));
// 創建新工作簿
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// 獲取默認創建的第一個工作表
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 為圖表系列填寫數據
// Y值
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("Y值"));
worksheet->GetICells()->GetObjectByIndex(0, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(0, 2)->PutValue(4);
worksheet->GetICells()->GetObjectByIndex(0, 3)->PutValue(6);
// 氣泡大小
worksheet->GetICells()->GetObjectByIndex(1, 0)->PutValue((StringPtr)new String("氣泡大小"));
worksheet->GetICells()->GetObjectByIndex(1, 1)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(1, 2)->PutValue(3);
worksheet->GetICells()->GetObjectByIndex(1, 3)->PutValue(1);
// X 值
worksheet->GetICells()->GetObjectByIndex(2, 0)->PutValue((StringPtr)new String("X 值"));
worksheet->GetICells()->GetObjectByIndex(2, 1)->PutValue(1);
worksheet->GetICells()->GetObjectByIndex(2, 2)->PutValue(2);
worksheet->GetICells()->GetObjectByIndex(2, 3)->PutValue(3);
// 設置第一列寬度
worksheet->GetICells()->SetColumnWidth(0, 12);
// 向工作表添加圖表
int chartIndex = worksheet->GetICharts()->Add(Aspose::Cells::Charts::ChartType::ChartType_Bubble, 5, 0, 20, 8);
// 訪問新添加圖表的實例
intrusive_ptr<Aspose::Cells::Charts::IChart> chart = worksheet->GetICharts()->GetObjectByIndex(chartIndex);
// 添加SeriesCollection(圖表數據源)到B1到D1的圖表
chart->GetNISeries()->Add(new String("B1:D1"), true);
// 設置氣泡大小
chart->GetNISeries()->GetObjectByIndex(0)->SetBubbleSizes(new String("B2:D2"));
// 設置 X 軸值
chart->GetNISeries()->GetObjectByIndex(0)->SetXValues(new String("B3:D3"));
// 設置 Y 軸值
chart->GetNISeries()->GetObjectByIndex(0)->SetValues(new String("B1:D1"));
// 保存 Excel 文件
workbook->Save(outputChartTypeBubble);
額外支持的圖表
除了上面顯示的圖表,Aspose.Cells for C++ 還支持許多其他圖表類型。您可以通過查看 ChartType 枚舉值來查看支持圖表的完整列表。
獲得免費許可證
您可以通過申請 免費的臨時許可證 來試用沒有評估限制的 API。
結論
在本文中,您學習瞭如何使用 C++ 在 Excel 電子表格中創建圖表。具體來說,您已經了解瞭如何使用 Aspose.Cells for C++ API 創建折線圖、金字塔圖和氣泡圖。此外,您已經看到該 API 支持您可以在 Excel 文件中創建的大量其他圖表。除了圖表之外,API 還提供了許多用於處理 Excel 文件的附加功能。您可以通過訪問 官方文檔 來詳細探索 API。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。