直观的界面、出色的计算功能和图表工具,使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++

  1. #include "Spire.Xls.o.h";
  2.  
  3. using namespace Spire::Xls;
  4.  
  5. int main() {
  6.  
  7. //指定输出文件路径和名称
  8. std::wstring outputPath = L"输出\\";
  9. std::wstring outputFile = outputPath + L"将单个值写入单元格.xlsx";
  10.  
  11. //创建一个Workbook对象
  12. Workbook* workbook = new Workbook();
  13.  
  14. //获取第一个工作表
  15. Worksheet* sheet = workbook->GetWorksheets()->Get(0);
  16.  
  17. //将文本和数字写入指定的单元格
  18. sheet->GetRange(1, 1)->SetText(L"名字");
  19. sheet->GetRange(1, 2)->SetText(L"年龄");
  20. sheet->GetRange(1, 3)->SetText(L"部门");
  21. sheet->GetRange(1, 4)->SetText(L"入职日期");
  22. sheet->GetRange(1, 1)->SetText(L"名字");
  23. sheet->GetRange(2, 1)->SetText(L"谢殊");
  24. sheet->GetRange(2, 2)->SetNumberValue(29);
  25. sheet->GetRange(2, 3)->SetText(L"市场部");
  26. sheet->GetRange(2, 4)->SetText(L"2018-02-26");
  27. sheet->GetRange(3, 1)->SetText(L"李强");
  28. sheet->GetRange(3, 2)->SetNumberValue(30);
  29. sheet->GetRange(3, 3)->SetText(L"人力资源部");
  30. sheet->GetRange(3, 4)->SetText(L"2017-07-13");
  31. sheet->GetRange(4, 1)->SetText(L"高阳");
  32. sheet->GetRange(4, 2)->SetNumberValue(35);
  33. sheet->GetRange(4, 3)->SetText(L"策划部");
  34. sheet->GetRange(4, 4)->SetText(L"2015-04-01");
  35.  
  36. //自动调整列宽
  37. sheet->GetAllocatedRange()->AutoFitColumns();
  38.  
  39. //将样式应用于第一行
  40. CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
  41. style->GetFont()->SetIsBold(true);
  42. sheet->GetRange(1, 1, 1, 4)->SetStyle(style);
  43.  
  44. //保存文件
  45. workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
  46. workbook->Dispose();
  47. }

效果图

在 C++ 中将数组写入指定的单元格范围

Spire.XLS for C++ 提供了 Worksheet->InsertArray() 方法,它允许程序员将向量写入工作表的指定单元格范围。在将数组写入工作表之前,您需要将它们转换为向量。将数组写入工作表的步骤如下:

  • 创建一个Workbook对象。
  • 使用 Workbook->GetWorksheets()->Get() 方法获取第一个工作表。
  • 创建一个数组并将其转换为一个向量或多个向量。
  • 使用 Worksheet->InsertArray() 方法将向量插入工作表。
  • 使用 Workbook->SaveToFile() 方法将工作簿保存到 Excel 文件。

完整代码

C++

  1. #include "Spire.Xls.o.h";
  2.  
  3. using namespace Spire::Xls;
  4. using namespace std;
  5.  
  6. int main() {
  7.  
  8. //指定输出文件路径和名称
  9. wstring outputPath = L"输出\\";
  10. wstring outputFile = outputPath + L"将数组写入指定的单元格范围.xlsx";
  11.  
  12. //创建一个Workbook对象
  13. Workbook* workbook = new Workbook();
  14.  
  15. //获取第一个工作表
  16. Worksheet* sheet = workbook->GetWorksheets()->Get(0);
  17.  
  18. //创建一维数组
  19. wstring oneDimensionalArray[6] = { L"一月", L"二月", L"三月", L"四月", L"五月", L"六月" };
  20.  
  21. //将数组转换为向量
  22. vector<LPCWSTR> vec;
  23. for (size_t i = 0; i < sizeof(oneDimensionalArray) / sizeof(oneDimensionalArray[0]); i++)
  24. {
  25. vec.push_back(oneDimensionalArray[i].c_str());
  26. }
  27.  
  28. //将向量插入工作表
  29. sheet->InsertArray(vec, 1, 1, false);
  30.  
  31. //创建一个二维数组
  32. wstring twoDimensionalArray[4][5] = {
  33. {L"姓名", L"年龄", L"性别", L"部门.", L"联系方式."},
  34. {L"李刚", L"25", L"男", L"广告部", L"835256"},
  35. {L"刘兴桐", L"24", L"女", L"运营策划部", L"835583"},
  36. {L"陈海波", L"26", L"男", L"销售部", L"834176"}
  37. };
  38.  
  39. //获取行号和列号
  40. int rowNum = sizeof(twoDimensionalArray) / sizeof(twoDimensionalArray[0]);
  41. int columnNum = sizeof(twoDimensionalArray[0]) / sizeof(twoDimensionalArray[0][0]);
  42.  
  43. //将二维数组拆分为多个一维向量
  44. for (size_t i = 0; i < rowNum; i++)
  45. {
  46. vector<LPCWSTR> vec_temp;
  47. for (size_t j = 0; j < columnNum; j++)
  48. {
  49. vec_temp.push_back(twoDimensionalArray[i][j].c_str());
  50. }
  51.  
  52. //将向量插入工作表
  53. sheet->InsertArray(vec_temp, 4 + i, 1, false);
  54. }
  55.  
  56. //自动调整列宽
  57. sheet->GetAllocatedRange()->AutoFitColumns();
  58.  
  59. //将样式应用于第一行
  60. CellStyle* style = workbook->GetStyles()->Add(L"newStyle");
  61. style->GetFont()->SetIsBold(true);
  62. sheet->GetRange(1, 1, 1, 6)->SetStyle(style);
  63. sheet->GetRange(4, 1, 4, 5)->SetStyle(style);
  64.  
  65. //保存文件
  66. workbook->SaveToFile(outputFile.c_str(), ExcelVersion::Version2016);
  67. workbook->Dispose();
  68. }

效果图

—本文完—

如何通过C++ 将数据写入 Excel 工作表的更多相关文章

  1. java数据写入Excel

    正好最近公司要写一个对账的功能,后台用java从银行获得对账信息,数据是json类型的,然后写入excel中发送给一卡通中心的服务器上,网上找了很多代码,然后整合和改正,代码如下. import ja ...

  2. 数据写入Excel

    通过xlwt这个库,可以将数据写入Excel中,而且通过xlwt写excel格式可以控制 颜色.模式.编码.背景色 下面基本上是一个练习,熟悉如何操作xlwt库的 下面是代码,所有的内容,和介绍,基本 ...

  3. 《程序实现》从xml、txt文件里读取数据写入excel表格

    直接上码 import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java ...

  4. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  5. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  6. 初识python: xlsxwriter 将数据写入Excel

    使用 xlsxwriter 模块将数据写入excel . #!/user/bin env python # author:Simple-Sir # time:2020/9/24 12:51 # 使用 ...

  7. C#中如何在Excel工作表创建混合型图表

    在进行图表分析的时候,我们可能需要在一张图表呈现两个或多个样式的图表,以便更加清晰.直观地查看不同的数据大小和变化趋势.在这篇文章中,我将分享C#中如何在一张图表中创建不同的图表类型,其中包括如何在同 ...

  8. C#将一个excel工作表根据指定范围拆分为多个excel文件

    C#将一个excel工作表根据指定范围拆分为多个excel文件 微软Excel没有提供直接的方法来拆分excel文件,因此要拆分一个excel文件最简单的方法可能就是手动剪切和粘贴了,除此之外,还有其 ...

  9. C# 原样复制excel工作表

    在excel中,工作表是工作薄的组成部分,一个工作薄可以由一个或多个工作表组成,一个工作薄也可以说是一个excel文档,正因为如此,excel工作表的复制也就分为两种类型:在同一文档之内复制和在不同文 ...

  10. 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/ ...

随机推荐

  1. 在项目中配置proxy 解决调试过程中的跨域问题

  2. 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 ...

  3. 【SQL Server】numeric——精确数字的数据类型

    NUMERIC数据类型是一种精确数字数据类型. numeric是标准sql的数据类型,格式是numeric(m,n).最多精确位数为38位,其中m表示总位数,n表示保留的小数点位数. 参数 含义 默认 ...

  4. HDFS学习记录

    HDFS 1.hdfs整体工作机制: 1>hdfs:分布式文件系统. hdfs:分布式文件系统 hdfs有着文件系统共同的特征: 2>有目录结构,顶层目录是:  / 3>系统中存放的 ...

  5. Python冰墩墩(非原创,搬运工)

    import turtle turtle.title('2022北京冬奥会冰墩墩') turtle.speed(10000) # 速度 # 左手 turtle.penup() turtle.goto( ...

  6. Java-JSP页面实现简单登录退出(菜鸟一枚、仅供参考)

    1.JSP页面代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pag ...

  7. 关于decimal与double数据类型

    关于double和decimal类型, double类型能表示的精度不如decimal,但是其数据范围比decimal的大. 对于double类型的字段,用sum函数会出现多位小数的情况,比如a+b+ ...

  8. python机器学习——PCA降维算法

    背景与原理: PCA(主成分分析)是将一个数据的特征数量减少的同时尽可能保留最多信息的方法.所谓降维,就是在说对于一个$n$维数据集,其可以看做一个$n$维空间中的点集(或者向量集),而我们要把这个向 ...

  9. Erueka注册源码分析

    在com.netfix.discovery包下有一个DiscoveryClient类中包含注册方法,DiscoveryClient实现了EurekaClient接口,并且是一个单例模式,而Eureka ...

  10. react文件分片上传

    参考文档: https://blog.csdn.net/weixin_39887846/article/details/113492372 https://juejin.cn/post/6844904 ...