彩票走势图

无需MS Office创建Excel!使用C ++在Excel电子表格中创建图表

翻译|使用教程|编辑:李显亮|2021-04-20 10:34:28.280|阅读 197 次

概述:在需要显示数据的情况下,图表可能会有所帮助。有鉴于此,本文将介绍如何使用C ++在Excel文件中创建图表。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

图表是简洁显示数据的绝佳工具。此外,它们以可视方式表示数据,从而更易于使用大量数据。在需要显示数据(例如每月预算比较或产品采用率)的情况下,图表可能会有所帮助。有鉴于此,本文将教您如何使用C ++在Excel文件中创建图表。

  • 使用C ++在Excel中创建折线图
  • 使用C ++在Excel中创建金字塔图
  • 使用C ++在Excel中创建气泡图

Aspose.Cells for C++是本机C ++库,使用它可以创建,读取和修改Excel文件,而无需安装Microsoft Excel。该API还支持在Excel文件中创建图表。

下载Aspose.Cells for C++最新版

整合所有格式的Aspose.Total永久授权正在火热促销中,立马1分钟了解全部咨询!

使用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的全部完整功能,可联系在线客服获取30天临时授权体验。


还想要更多吗?您可以点击阅读【Aspose最新资源在线文库】查找需要的教程资源。如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询

标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP