无需MS Office创建Excel!再C ++中以编程方式在Excel电子表格中创建图表

2023-10-29

图表是简洁显示数据的绝佳工具。此外,它们以可视方式表示数据,从而更易于使用大量数据。在需要显示数据(例如每月预算比较或产品采用率)的情况下,图表可能会有所帮助。有鉴于此,本文将教您如何使用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),我们很高兴为您提供查询和咨询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无需MS Office创建Excel!再C ++中以编程方式在Excel电子表格中创建图表 的相关文章

随机推荐

  • 从一个含有特殊的字符长字符串中获取对应字符方式。

    一 将字符串进行字符切割 前言 业务需求是在一个字段里存储一个题目的多个选项的内容分别使用 隔开 比如编制项目建议书 编制项目建设纲要或设计纲要 设计评审 合同洽谈 现在需要将字符串获取之后将选项内容切割出来 使用 符进行切割 思路 1 获
  • 陈关荣

    2019年12月12日 自然 Nature 杂志登出了玛加丽塔 萨拉斯 法尔格拉斯 Margarita Salas Falgueras 1938年11月30日 2019年11月7日 去世的讣告 萨拉斯于11月7日去世 享年80岁 她是把现代
  • java学习之增删改查的客户信息管理软件

    1 MVC的设计模式 模型层 控制层 视图层 2 构建4个包 com ca bean 实体对象 用来封装客户信息 com ca service 对象的管理模块 内部用数组管理一组Customer对象 并提供相应的添加 修改 删除和遍历方法
  • 利用jQuery做tab栏切换

    1 结构布局 div class tab div class tab list ul li class current 商品介绍 li li 规格与包装 li li 售后保障 li li 商品评价 5000 li li 手机社区 li ul
  • 什么是ABI

    复杂度2 5 机密度3 5 最后更新2021 04 24 ABI是Application Binary Interface的缩写 任何写过代码的码农都知道什么是API 这是平台系统为应用程序提供的预先写好的模块 完成一系列的基础功能 那么
  • linux var log目录作用,Linux系统/var/log/journal/垃圾日志清理 - 米扑博客

    CentOS系统中有两个日志服务 分别是传统的 rsyslog 和 systemd journal ls l etc logrotate d rw r r 1 root root 91 Apr 11 2018 bootlog rw r r
  • 李宏毅深度学习-回归

    目录 1 梯度下降 2 bias和variance 1 梯度下降 利用梯度下降寻找最优解是 如果在该点的梯度为负 向下 则需要增加参数大小 如果梯度为正 向上 则需要减小参数大小 计算时 减去学习率 偏导表示和梯度方向反向 即负的就要增加
  • Handler消息传递机制(一)

    1 定义 一套 Android 消息传递机制 2 作用 在多线程的应用场景中 将工作线程中需更新UI的操作信息 传递到 UI主线程 从而实现 工作线程对UI的更新处理 最终实现异步消息的处理 3 意义 问 为什么要用 Handler消息传递
  • python中保存np.save出错

    python中保存np save出错 代码如下 求大神解释一下
  • HTTP(S)协议详解

    1 什么是协议 协议 网络协议的简称 网络协议是通信计算机双方必须共同遵从的一组约定 如怎么样建立连接 怎么样互相识别等 只有遵守这个约定 计算机之间才能相互通信交流 粗俗理解协议就是 比如你的电脑和我的电脑要通信 我们之间的交流为什么互相
  • Mysql8的备份脚本 ,基于xtrabackup8.0

    Mysql8的备份脚本 基于xtrabackup8 0 注意 xtrabackup8 0与mysql8直接的版本依赖强 安装xtra后可查看支持的Mysql8版本 xtrabackup8 下载页面 https centos pkgs org
  • 后台管理系统布局以及跳转,点击菜单局部刷新,右侧显示对应界面完整版

    源码地址 https gitee com nggLee java funny 1 进入站长之家https sc chinaz com 2 搜索后台管理模版 下载一个 本次使用的模版 https sc chinaz com moban 160
  • CONST

    定义 编辑 const修饰的数据类型是指常类型 常类型的变量或对象的值是不能被更新的 目的 编辑 const 推出的初始目的 正是为了取代预编译指令 消除它的缺点 同时继承它的优点 主要作用 编辑 1 可以定义const常量 具有不可变性
  • 如何在一个中文大模型上,加入招投标字段标注的数据,搭建一个招投标字段解析的Transformer模型?

    ChatGPT方案1 在一个中文大模型上加入招投标字段标注的数据 并搭建招投标字段解析的Transformer模型可以通过以下步骤实现 收集并标注招投标相关的数据 可以使用现有的数据集 也可以通过爬虫技术获取相关数据 然后进行人工标注 标注
  • Ubuntu下安装和管理不同版本CMake,根据软件安装的需要选用不同版本的CMake

    0 Foreword 在安装VTK Visualization Toolkit 时发现需要用3 12版本以上的CMake才行 但是系统带的是3 10版本的 这时可以有两个方法 最简单粗暴就是把系统原本的CMake覆盖了 重新装新版 其次是麻
  • 快速了解时间敏感网络(TSN)_Part1

    在过去的几年间 以太网凭借开放的协议 良好的扩展性以及较高的带宽等优势为自己在车载领域赢得了一席之地 随着车载应用范围的扩大 也有越来越多的以太网技术涌现出来 今天我们就来聊一聊时间敏感网络 TSN 让大家快速了解这一技术 话不多说 大家坐
  • IDEA 快速生成项目结构的文档树形式

    参考文献 taodudu idea快速生成项目结构图 参考日期 2023 05 17 需求 在写文档的时候 想把项目结构输出成文档树的形式 实现 在 IDEA 中 可以点击下方 Terminal 按钮或 Alt F12 打开终端 同理 在命
  • 旋转矩阵 推导

    旋转变换 一 旋转矩阵 1 简介 计算机图形学中的应用非常广泛的变换是一种称为仿射变换的特殊变换 在仿射变换中的基本变换包括平移 旋转 缩放 剪切这几种 本文以及接下来的几篇文章重点介绍一下关于旋转的变换 包括二维旋转变换 三维旋转变换以及
  • vue3+vite+TS如何实现水印

    水印是通过canvas画图来实现的 首先需要创建一个ts的文件夹 之后在APP vue中全局加入水印 这样就可使全部页面都有水印 如果想要某个页面实现水印只需要单独写在页面即可 这里的判断主要是判断是否登录 登陆时再加上水印 如若不需要判断
  • 无需MS Office创建Excel!再C ++中以编程方式在Excel电子表格中创建图表

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