如何通过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/ ...
随机推荐
- Unity Random
Random 不仅可以随机值,还可以随机其它属性,用了这么久,刚知道... 譬如: rotation 随机Rotation onUnitSphere 球体表面随机点 insideUnitCircl ...
- Mysql存储的设备推送数据如何利用GroupBy筛选所有设备的最新数据
首先介绍GroupBy关键字的用法原理: 先来看下表1,表名为test: 表1 执行如下SQL语句: SELECTnameFROMtestGROUPBYname 你应该很容易知道运行的结果,没错, ...
- 逆向学习物联网-网关ESP8266-04系统联合调试
1.测试平台原理 2.搭建硬件测试平台 3.软件测试平台 1)串口终端 2)串口监视 3)OneNET后台服务 https://open.iot.10086.cn/passport/login/ 户名 ...
- calibredrv命令
flattencell: set L1 [layout create *.gds -dt_expand] $L1 flatten cell TOP_CELL_NAME $L1 gdsout ./*_f ...
- 问题:配置apache的相关配置文件报错:Invalid command 'Order' (已解决)
1. 问题描述 在虚拟文件httpd-vhosts.conf里面,directory里加入Order allow,deny,重启apache,出现Invalid command 'Order', pe ...
- libevent学习之入门--[02]从hello-world开始
系列文章回顾 libevent学习之入门--[01]概述与安装 上一节介绍了libevent的下载和编译,从这节开始,我会从我学习的角度逐步探索libevent的源码,慢慢揭开它的神秘面纱. 面对几十 ...
- outlook2013 关闭后不能接收邮件了解决方法
本人装的是2013版的outlook亲测有用,其他版本的本人没试过. 下载KeepOutlookRunning.rar 链接:https://pan.baidu.com/s/1hcNorKDLbpzV ...
- dpkt 简单应用
import dpktfrom dpkt.utils import mac_to_str,inet_to_strcap=f'D:/test_pacp/6.pcap'with open(cap,'rb' ...
- 记录搜索的例子 浙大c
#include <stdio.h> struct{ int amount; char *name; } coins[] = { {1, "penny"}, {5, & ...
- 【项目记录】4:Pycharm激活方法
引用一下: 今天给大家带来一种全新的Pycharm安装激活方式.可以激活到2099年. 安装 1.我们首先进入idea官网 jetbrains.com 找到最新版本的pycharm,这里就以windo ...