如何通过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();
}

效果图

 —本文完—

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/6963.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

aspnet030高校学生团体管理系统sqlserver

net030高校学生团体管理系统 . 1.用户基本信息管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 2.学生成绩管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 3.学生团体信息管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 4.教…

Excel技能之查找筛选排序,同事竖起大拇指

每天面对大量的数据&#xff0c;眼睛都看花了。头疼、脱发、颈椎病、胸闷、腰间盘突出&#xff0c;一系列并发症严重影响打工人的心情。同事看在眼里&#xff0c;痛在心里。 救救打工人吧&#xff01;打工人的福音来了&#xff0c;自从学会了查找筛选排序&#xff0c;手脚利索…

动态规划(一) part1

T1:一个数组 中的最长 升序 子序列 的长度 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组…

C 非线性结构——树 万字详解(通俗易懂)

目录 一、树的介绍 1.定义 : 2.相关概念 : 3.简单分类 : 4.相关应用 : 二、树的存储 1.二叉树的存储 : 1 二叉树连续存储 2 二叉树链式存储&#xff08;常用&#xff09; 2.普通树和森林的存储 : 1 普通树的存储 2 森林的存储 三、树的遍历 1.二叉树先序遍历 : 2.二叉…

深度学习训练营之yolov5训练自己的数据集

深度学习训练营之训练自己的数据集原文链接环境介绍准备好数据集划分数据集运行voc_train.py遇到问题完整代码创建new_data.yaml文件模型训练时遇到的报错模型训练结果可视化参考链接原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f…

正则表达式

一、正则表达式的概述 1、概念 正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串&#xff08;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊字符&#xff08;称为“元字符”&#xff09;&#xff09;操…

JVM 程序计数器(PC)

PC寄存器的概念 JVM中的程序计数寄存器&#xff08;Program Counter Register&#xff09;中&#xff0c;Register的命名源于CPU的寄存器&#xff0c;寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。这里&#xff0c;并非是广义上所指的物理寄存器&#…

【蓝桥杯冲刺】日期类专题特训

目录 1. 日期累加 题目描述 输入 输出 代码 2. 日期差值 题目描述 输入 输出 代码 3. 打印日期 题目描述 输入 输出 代码 写在最后&#xff1a; 1. 日期累加 题目链接&#xff1a;日期累加 题目描述 输入 1 2008 2 3 100 输出 2008-05-13 代码 #include…

如何在 Linux 中查找所有符号链接,这几个命令得会!

在Linux中&#xff0c;符号链接&#xff08;Symbolic Link&#xff09;是一种非常常见的文件类型&#xff0c;也称为软链接。符号链接是指向另一个文件的指针&#xff0c;而不是实际的数据。它允许用户创建一个指向另一个文件的虚拟文件&#xff0c;这样用户可以在不改变实际文…

JVM解析原理

目录1.JVM内存结构2.JIT及时编译器的原理&#xff0c;优化以及切换编译器类型2.1解释型语言和编译语言2.2JIT即时编译器&#xff08;Just In Time Compiler&#xff09;3.类的加载机制和类的加载器3.1类的加载机制3.2类的加载器4.双亲委派机制4.1定义4.2优点4.3总结5.虚拟机栈详…

读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理

ChatGPT的泛用性极高&#xff0c;上知天文&#xff0c;下通地理&#xff0c;参考古今&#xff0c;博稽中外&#xff0c;几乎无所不知&#xff0c;无所不晓。但如果涉及垂直领域的专业知识点&#xff0c;ChatGPT难免也会有语焉不详&#xff0c;闪烁其词的毛病&#xff0c;本次我…

16从零开始学Java之Java里的输入与输出语句有哪些?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们在前面的文章中&#xff0c;学习了如何创建Java文件&#xff0c;也学习了Java里的标识符、运算符、进制等内容。有些…

iPhone手机小技巧:使用备忘录创建清单

手机备忘录是非常常用的软件之一&#xff0c;无论是iPhone手机还是安卓系统的手机都可以下载相应的APP进行使用。它可以帮助我们记录很多琐碎的事情&#xff0c;防止我们遗忘某事。 在记备忘录的时候&#xff0c;有的人是直接打字记录的&#xff0c;也没有什么具体的格式&…

Excel–如何区分大小写、精确匹配查找?

最近经常需要用到uuid来匹配数据&#xff0c;经常会遇到两个uuid 只是大小写的区别&#xff0c;数据库里使用是没问题的&#xff0c;因为mysql是可以区分大小写的&#xff0c;但是导出后通过excel处理数据匹配数据时就会出问题 如下图所示&#xff0c;通过vlookup匹配&#xf…

文心一言 VS chatgpt (3)-- 算法导论2.1

一、以图 2-2 为模型&#xff0c;说明INSERTION-SORT 在数组 A(31&#xff0c;41&#xff0c;59&#xff0c;26&#xff0c;41&#xff0c;58)上的执行过程。 文心一言&#xff1a; 以图 2-2 为模型&#xff0c;说明INSERTION-SORT 在数组 A(31&#xff0c;41&#xff0c;59&…

Java基础学习第二十四讲:Stream流

Stream流 一、什么是Stream流 Stream流操作是Java 8提供一个重要新特性&#xff0c;它允许开发人员以声明性方式处理集合&#xff0c;其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中&…

ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试

ROS功能包|mav_control_rw&#xff08;基于MPC的无人机轨迹跟踪控制&#xff09;---gazebo仿真测试gazebo仿真测试gazebo仿真测试 启动gazebo并加载无人机模型 $ roslaunch rotors_gazebo mav.launch mav_name:firefly启动 linear mpc 控制器 $ roslaunch mav_linear_mpc ma…

Win10安装MySql1.5.7

1&#xff09;、下载安装包 地址&#xff1a;MySQL :: Download MySQL Community Server 或者&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1iSLiUo8ehqP6tfxGJ2ewfA 提取码&#xff1a;ctbr 2&#xff09;、下载后解压到指定目录 我的是D:\Program Files\mysql-…

SCS【19】单细胞自动注释细胞类型 (Symphony)

单细胞生信分析教程桓峰基因公众号推出单细胞生信分析教程并配有视频在线教程&#xff0c;目前整理出来的相关教程目录如下&#xff1a;Topic 6. 克隆进化之 CanopyTopic 7. 克隆进化之 CardelinoTopic 8. 克隆进化之 RobustCloneSCS【1】今天开启单细胞之旅&#xff0c;述说单…

一图看懂 bz2 模块:处理压缩和解压缩文件, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 bz2 模块&#xff1a;处理压缩和解压缩文件, 资料整理笔记&#xff08;大全&#xff09;摘要模块图类关系图模块全展开【bz2】统计常量int模块4 io5 os6 warnings7 _compre…