如何通过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/ ...
随机推荐
- leecode编写记录
记录leecode刷题思路 39.组合总数 39. 组合总和 - 力扣(LeetCode) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candida ...
- Win10家庭版找不到组策略gpedit.msc怎么解决?
链接:https://pan.baidu.com/s/1SoSWCfHwZhD3tV4C7DcirA 提取码:okfm 1.下载文件 2.以管理员身份运行 3.
- Win10解决无法访问其他机器共享的问题【转】
你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问.这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁.管理员身份执行sc.exe config lanmanworks ...
- vue后台管理系统
1. 项目概述: 根据不同的应用场景,电商系统一般都提供了 PC 端.移动 APP.移动 Web.微信小程序等多种终端访问方式. 2. 电商后台管理系统的功能 电商后台管理系统用于管理用户账号.商品分 ...
- 西瓜书3.3 尝试解题(python)对率回归 极大似然估计
数据如下: x01=[0.697,0.774,0.634,0.608,0.556,0.403,0.481,0.437,0.666,\ 0.243,0.245,0.343,0.639,0.657,0.3 ...
- latex常用的宏包(转载)
页面与标题式样 geometry 利用 geometry 可以很方便的设置页面的大小.由于可以自动居中排放页面,自动计算并平衡页面各部分如页眉.页脚.左右边空等的大小,因此只需给出很少的信息就能得到满 ...
- uniapp 微信小程序 使用 echarts 避坑
echarts.min.js的版本 5.3.2 第一步 : https://blog.csdn.net/qq_45164516/article/details/125298373 第二步: 重中之重修 ...
- Nginx系列---【配置文件中静态资源文件禁止通过目录查看】
配置文件中静态资源文件禁止通过目录查看 1.问题 nginx作为文件服务器时,默认是可以通过目录路径查看该目录下的所有文件的,这样很不安全,容易造成静态资源泄露. 2.方案 location /ima ...
- Java 实现汉字按照首字母分组排序
一.实现思路: 1.将数据list 进行排序Collections,排序后是按照汉字字母排序的 2.循环找出26个字母,以字母为key,以list中相同首字母的数据为值(集合) 二.代码实现: // ...
- Redis工具类 单机+集群
package com.irdstudio.basic.framework.redis.redisutil; import org.springframework.dao.DataAccessExce ...