如何通过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/ ...
随机推荐
- jquery语言中获取input标签后如何给input标签添加disabled的属性
jquery语言中获取input标签后如何给input标签添加disabled的属性 1.使用JQuery函数prop():$("input").prop("disabl ...
- #ifdef _WIN32 #ifdef _WIN64
#ifdef _WIN32#ifdef _WIN64 这样的代码,实际上这提供了一种抽象机制,使代码可以在不同平台间移植. #ifdef _WIN32 #ifdef _WIN64 {windows 6 ...
- c++实现单链表及常用方法实现
来自https://blog.csdn.net/h294455907/article/details/80223345 这篇博客,做了一点小改动,用一个cpp实现的 #include<iostr ...
- backward函数中gradient参数的一些理解
当标量对向量求导时不需要该参数,但当向量对向量求导时,若不加上该参数则会报错,显示"grad can be implicitly created only for scalar output ...
- AIGC 至少能在两个方面改变当前的世界-纯银
互联网圈一个正在形成的共识是,web3 只是金融领域的创新,还没有任何征兆能进入大众社会,但 AIGC 对世界的改变正在眼前发生.AIGC 至少能在两个方面改变当前的世界.1.对于缺乏创造力的(文字) ...
- centos7中通过源码安装postgresql13.6
下载地址:https://www.postgresql.org/ftp/source/ 0.安装相关依赖库 centos依赖包下载地址:https://developer.aliyun.com/pac ...
- OO课程第二阶段(实验和期中试题)总结Blog2
OO课程第二阶段(实验和期中试题)总结Blog2 前言:学习OOP课程的第二阶段已经结束了,在此进行对于知识点,题量,难度的个人看法. 学习OOP课程的第二阶段已经结束了,较第一次阶段学习难度加大,学 ...
- pwm 理解
PWM: 假设PWM的时钟主频是 PWM_CLK_FREQ Hz,则如果需要输出频率为 xHz,占空比为 y% 的波形时, 则只需要在定时器的周期寄存器中写入(PWM_CLK_FREQ / x),在 ...
- aos.js 与 swiper 组合,翻页后无法触发aos的效果
手动给除第一页之外的需要特效的元素添加 class="aos-animate" 转自:https://cloud.tencent.com/developer/ask/sof/302 ...
- P1138 第 k 小整数
P1138 第 k 小整数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) dalao 勿喷,适合新手 思路就是排序加查重,最后判断第k小数.思路十分简单. 刚开始我一直想二维循环查 ...