創建 Excel 圖表 C++

圖表是簡潔顯示數據的絕佳工具。此外,它們以可視化方式表示數據,從而更容易消耗大量數據。在需要顯示月度預算比較或產品採用率等數據的情況下,您可能會發現圖表很有用。鑑於此,本文將教您如何使用 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 文件中創建折線圖的步驟。

以下是使用 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 文件中創建金字塔圖的步驟。

以下是使用 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 文件中創建氣泡圖的步驟。

以下是使用 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。如有任何疑問,請隨時通過我們的免費支持論壇與我們聯繫。

也可以看看