如何通过C++ 将数据写入 Excel 工作表
直观的界面、出色的计算功能和图表工具,使Excel成为最流行的个人计算机数据处理软件。在独立的数据包含的信息量太少,而过多的数据又难以理清头绪时,制作成表格是数据管理的最有效手段之一。这样不仅可以方便整理数据,还可以方便我们查找和应用数据。后期我们还可以对具有相似表格框架,相同性质的数据进行合并汇总工作。在本文中,您将学习如何使用 Spire.XLS for C++ 创建 Excel 文档,以及如何将数据写入 Excel 工作表。
- 在 C++ 中将文本或数字值写入单元格
- 在 C++ 中将数组写入指定的单元格范围
安装Spire.XLS for C++
有两种方法可以将 Spire.XLS for C++ 集成到您的应用程序中。一种方法是通过 NuGet 安装它,另一种方法是从我们的网站下载包并将库复制到您的程序中。通过 NuGet 安装更简单,更推荐使用。您可以通过访问以下链接找到更多详细信息。
在 C++ 应用程序中集成 Spire.XLS for C++
在 C++ 中将文本或数字值写入单元格
Spire.XLS for C++ 提供了 Workbook 类和 Worksheet 类,分别表示 Excel 文档和工作表。 用户可以使用 Worksheet->GetRange(int row, int column) 方法访问特定的单元格。然后,使用 CellRange->SetText() 或 CellRange->SetNumberValue() 方法为单元格分配一个文本值或数字值。以下是详细步骤:
- 创建一个Workbook对象。
- 使用 Workbook->GetWorksheets()->Get() 方法获取第一个工作表。
- 使用 Worksheet->GetRange(int row, int column) 方法获取特定单元格。
- 使用 CellRange->SetText() 或 CellRange->SetNumberValue() 方法将文本值或数字值添加到指定的单元格。
- 使用 Workbook->SaveToFile() 方法将工作簿保存到 Excel 文件。
完整代码
C++
- #include "Spire.Xls.o.h";
- using namespace Spire::Xls;
- int main() {
- //指定输出文件路径和名称
- std::wstring outputPath = L"输出\\";
- std::wstring outputFile = outputPath + L"将单个值写入单元格.xlsx";
- //创建一个Workbook对象
- Workbook* workbook = new Workbook();
- //获取第一个工作表
- Worksheet* sheet = workbook->GetWorksheets()->Get(0);
- //将文本和数字写入指定的单元格
- sheet->GetRange(1, 1)->SetText(L"名字");
- sheet->GetRange(1, 2)->SetText(L"年龄");
- sheet->GetRange(1, 3)->SetText(L"部门");
- sheet->GetRange(1, 4)->SetText(L"入职日期");
- sheet->GetRange(1, 1)->SetText(L"名字");
- sheet->GetRange(2, 1)->SetText(L"谢殊");
- sheet->GetRange(2, 2)->SetNumberValue(29);
- sheet->GetRange(2, 3)->SetText(L"市场部");
- sheet->GetRange(2, 4)->SetText(L"2018-02-26");
- sheet->GetRange(3, 1)->SetText(L"李强");
- sheet->GetRange(3, 2)->SetNumberValue(30);
- sheet->GetRange(3, 3)->SetText(L"人力资源部");
- sheet->GetRange(3, 4)->SetText(L"2017-07-13");
- sheet->GetRange(4, 1)->SetText(L"高阳");
- sheet->GetRange(4, 2)->SetNumberValue(35);
- sheet->GetRange(4, 3)->SetText(L"策划部");
- sheet->GetRange(4, 4)->SetText(L"2015-04-01");
- //自动调整列宽
- sheet->GetAllocatedRange()->AutoFitColumns();
- //将样式应用于第一行
- CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
- style->GetFont()->SetIsBold(true);
- sheet->GetRange(1, 1, 1, 4)->SetStyle(style);
- //保存文件
- workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
- workbook->Dispose();
- }
效果图
在 C++ 中将数组写入指定的单元格范围
Spire.XLS for C++ 提供了 Worksheet->InsertArray() 方法,它允许程序员将向量写入工作表的指定单元格范围。在将数组写入工作表之前,您需要将它们转换为向量。将数组写入工作表的步骤如下:
- 创建一个Workbook对象。
- 使用 Workbook->GetWorksheets()->Get() 方法获取第一个工作表。
- 创建一个数组并将其转换为一个向量或多个向量。
- 使用 Worksheet->InsertArray() 方法将向量插入工作表。
- 使用 Workbook->SaveToFile() 方法将工作簿保存到 Excel 文件。
完整代码
C++
- #include "Spire.Xls.o.h";
- using namespace Spire::Xls;
- using namespace std;
- int main() {
- //指定输出文件路径和名称
- wstring outputPath = L"输出\\";
- wstring outputFile = outputPath + L"将数组写入指定的单元格范围.xlsx";
- //创建一个Workbook对象
- Workbook* workbook = new Workbook();
- //获取第一个工作表
- Worksheet* sheet = workbook->GetWorksheets()->Get(0);
- //创建一维数组
- wstring oneDimensionalArray[6] = { L"一月", L"二月", L"三月", L"四月", L"五月", L"六月" };
- //将数组转换为向量
- vector<LPCWSTR> vec;
- for (size_t i = 0; i < sizeof(oneDimensionalArray) / sizeof(oneDimensionalArray[0]); i++)
- {
- vec.push_back(oneDimensionalArray[i].c_str());
- }
- //将向量插入工作表
- sheet->InsertArray(vec, 1, 1, false);
- //创建一个二维数组
- wstring twoDimensionalArray[4][5] = {
- {L"姓名", L"年龄", L"性别", L"部门.", L"联系方式."},
- {L"李刚", L"25", L"男", L"广告部", L"835256"},
- {L"刘兴桐", L"24", L"女", L"运营策划部", L"835583"},
- {L"陈海波", L"26", L"男", L"销售部", L"834176"}
- };
- //获取行号和列号
- int rowNum = sizeof(twoDimensionalArray) / sizeof(twoDimensionalArray[0]);
- int columnNum = sizeof(twoDimensionalArray[0]) / sizeof(twoDimensionalArray[0][0]);
- //将二维数组拆分为多个一维向量
- for (size_t i = 0; i < rowNum; i++)
- {
- vector<LPCWSTR> vec_temp;
- for (size_t j = 0; j < columnNum; j++)
- {
- vec_temp.push_back(twoDimensionalArray[i][j].c_str());
- }
- //将向量插入工作表
- sheet->InsertArray(vec_temp, 4 + i, 1, false);
- }
- //自动调整列宽
- sheet->GetAllocatedRange()->AutoFitColumns();
- //将样式应用于第一行
- CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
- style->GetFont()->SetIsBold(true);
- sheet->GetRange(1, 1, 1, 6)->SetStyle(style);
- sheet->GetRange(4, 1, 4, 5)->SetStyle(style);
- //保存文件
- workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
- workbook->Dispose();
- }
效果图
—本文完—
如何通过C++ 将数据写入 Excel 工作表的更多相关文章
- java数据写入Excel
正好最近公司要写一个对账的功能,后台用java从银行获得对账信息,数据是json类型的,然后写入excel中发送给一卡通中心的服务器上,网上找了很多代码,然后整合和改正,代码如下. import ja ...
- 数据写入Excel
通过xlwt这个库,可以将数据写入Excel中,而且通过xlwt写excel格式可以控制 颜色.模式.编码.背景色 下面基本上是一个练习,熟悉如何操作xlwt库的 下面是代码,所有的内容,和介绍,基本 ...
- 《程序实现》从xml、txt文件里读取数据写入excel表格
直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...
- Python:将爬取的网页数据写入Excel文件中
Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...
- 将Oracle数据库中的数据写入Excel
将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...
- 初识python: xlsxwriter 将数据写入Excel
使用 xlsxwriter 模块将数据写入excel . #!/user/bin env python # author:Simple-Sir # time:2020/9/24 12:51 # 使用 ...
- C#中如何在Excel工作表创建混合型图表
在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...
- C#将一个excel工作表根据指定范围拆分为多个excel文件
C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...
- C# 原样复制excel工作表
在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文 ...
- C#7.2——编写安全高效的C#代码 c# 中模拟一个模式匹配及匹配值抽取 走进 LINQ 的世界 移除Excel工作表密码保护小工具含C#源代码 腾讯QQ会员中心g_tk32算法【C#版】
C#7.2——编写安全高效的C#代码 2018-11-07 18:59 by 沉睡的木木夕, 123 阅读, 0 评论, 收藏, 编辑 原文地址:https://docs.microsoft.com/ ...
随机推荐
- 在项目中配置proxy 解决调试过程中的跨域问题
- vue中,解决chrome下,的warning, Added non-passive event listener to a scroll-blocking ‘mousewheel‘ event 问题
写项目的时候,Chrome 提醒: [Violation] Added non-passive event listener to a scroll-blocking 'mousewheel' eve ...
- 【SQL Server】numeric——精确数字的数据类型
NUMERIC数据类型是一种精确数字数据类型. numeric是标准sql的数据类型,格式是numeric(m,n).最多精确位数为38位,其中m表示总位数,n表示保留的小数点位数. 参数 含义 默认 ...
- HDFS学习记录
HDFS 1.hdfs整体工作机制: 1>hdfs:分布式文件系统. hdfs:分布式文件系统 hdfs有着文件系统共同的特征: 2>有目录结构,顶层目录是: / 3>系统中存放的 ...
- Python冰墩墩(非原创,搬运工)
import turtle turtle.title('2022北京冬奥会冰墩墩') turtle.speed(10000) # 速度 # 左手 turtle.penup() turtle.goto( ...
- Java-JSP页面实现简单登录退出(菜鸟一枚、仅供参考)
1.JSP页面代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...
- 关于decimal与double数据类型
关于double和decimal类型, double类型能表示的精度不如decimal,但是其数据范围比decimal的大. 对于double类型的字段,用sum函数会出现多位小数的情况,比如a+b+ ...
- python机器学习——PCA降维算法
背景与原理: PCA(主成分分析)是将一个数据的特征数量减少的同时尽可能保留最多信息的方法.所谓降维,就是在说对于一个$n$维数据集,其可以看做一个$n$维空间中的点集(或者向量集),而我们要把这个向 ...
- Erueka注册源码分析
在com.netfix.discovery包下有一个DiscoveryClient类中包含注册方法,DiscoveryClient实现了EurekaClient接口,并且是一个单例模式,而Eureka ...
- react文件分片上传
参考文档: https://blog.csdn.net/weixin_39887846/article/details/113492372 https://juejin.cn/post/6844904 ...