(超级新手自己弄的xLnt库配置方法(也算自己备忘))

准备工作

1、下载cmake,请下载64位版本链接:link
2、下载xlnt库,链接:link
3、安装cmake,选择默认安装即可。

本人使用的是vs2017,请到微软官网自行下载需要的版本
接下来编译库工作
1、将下载的xlnt库压缩包解压到硬盘,我这里是解压到了D盘下,xlnt-master文件夹内

2、打开安装好的cmake,按照图片上的数字顺序操作,步骤1是选择xlnt-master库的位置,步骤2是选择编译后的存放位置

步骤3选择自己电脑上安装的VS版本,请选择win64,选择好之后请点击步骤4,最后点击步骤5打开VS,直接点击本地调试等待VS编译完成,编译完成之后会显示成功生成5个,弹出的错误提示不用理会。

至此我们的准备工作基本上完成了,接下来开始给项目配置xlnt库

1、打开VS新建一个空项目

2、对项目点击右键打开菜单选择属性

3、要配置两个地方,但在配置前请将VS本地调试选择X64,否则项目会出错
第一步是VC++目录下的包含目录,添加一个 ( S o l u t i o n D i r ) 然 后 确 定 , 这 个 语 句 的 意 义 是 添 加 项 目 解 决 方 案 文 件 夹 下 的 包 含 的 头 文 件 注 : 该 处 图 片 无 法 显 示 第 二 步 则 是 在 链 接 器 选 项 下 的 输 入 这 里 加 入 这 句 话 (SolutionDir)然后确定,这个语句的意义是添加项目解决方案文件夹下的包含的头文件 注:该处图片无法显示 第二步则是在链接器选项下的输入这里加入这句话 (SolutionDir)然后确定,这个语句的意义是添加项目解决方案文件夹下的包含的头文件注:该处图片无法显示第二步则是在链接器选项下的输入这里加入这句话(SolutionDir)lib\xlntd.lib将项目解决方案中的lib文件夹下的xlntd.lib库添加到项目中去

第三步就是将刚才解压的xlnt库的头文件复制到我们新建的项目根目录下,我解压出来的头文件路径是D:\Code\CppCode\xlnt-master\include,xlnt文件夹即是我们需要的头文件文件夹

第四步在项目根目录下新建一个lib文件夹,将cmake编译好的xlnt库文件夹打开,找到xlntd.lib文件,我电脑上的路径如下,将该文件复制到项目根目录下的lib文件夹

第五步将xlntd.lib同一个文件夹下的xlntd.dll复制到项目的文件夹内,我的电脑上路径是

所有准备工作完成,现在可以开始编码测试

下面用xlnt官网上的一个示例来测试

#include <iostream>
#include <vector>
#include <string>
#include "xlnt/xlnt.hpp"int main()
{//Creating a 2 dimensional vector which we will write values tostd::vector< std::vector<std::string> > wholeWorksheet;//Looping through each row (100 rows as per the second argument in the for loop)for (int outer = 0; outer < 100; outer++){//Creating a fresh vector for a fresh rowstd::vector<std::string> singleRow;//Looping through each of the columns (100 as per the second argument in the for loop) in this particular rowfor (int inner = 0; inner < 100; inner++){//Adding a single value in each cell of the row std::string val = std::to_string(inner + 1);singleRow.push_back(val);}//Adding the single row to the 2 dimensional vectorwholeWorksheet.push_back(singleRow);std::clog << "Writing to row " << outer << " in the vector " << std::endl;}//Writing to the spread sheet//Creating the output workbook std::clog << "Creating workbook" << std::endl;xlnt::workbook wbOut;//Setting the destination output file namestd::string dest_filename = "output.xlsx";//Creating the output worksheetxlnt::worksheet wsOut = wbOut.active_sheet();//Giving the output worksheet a title/namewsOut.title("data");//We will now be looping through the 2 dimensional vector which we created above//In this case we have two iterators one for the outer loop (row) and one for the inner loop (column)std::clog << "Looping through vector and writing to spread sheet" << std::endl;for (int fOut = 0; fOut < wholeWorksheet.size(); fOut++){std::clog << "Row" << fOut << std::endl;for (int fIn = 0; fIn < wholeWorksheet.at(fOut).size(); fIn++){//Take notice of the difference between accessing the vector and accessing the work sheet//As you may already know Excel spread sheets start at row 1 and column 1 (not row 0 and column 0 like you would expect from a C++ vector) //In short the xlnt cell reference starts at column 1 row 1 (hence the + 1s below) and the vector reference starts at row 0 and column 0wsOut.cell(xlnt::cell_reference(fIn + 1, fOut + 1)).value(wholeWorksheet.at(fOut).at(fIn));//Further clarification to avoid confusion//Cell reference arguments are (column number, row number); e.g. cell_reference(fIn + 1, fOut + 1)//Vector arguments are (row number, column number); e.g. wholeWorksheet.at(fOut).at(fIn)}}std::clog << "Finished writing spread sheet" << std::endl;wbOut.save(dest_filename);return 0;
}

编译成功通过并执行,打开项目目录,发现输出的excel文件
打开之后如下图

至此结束

因本人也是新手因工作需要原因不得不学习编程来处理excel数据提高工作效率,为什么要选择C++纯属个人爱好,我一直认为C++是很强的语言。本来按理来说处理excel其他语言,如C#,java,VB更容易上手,操作起来更方便,但是个人就是偏爱C++。这篇文章作备忘用,我会继续学习慢慢提高之后,一点一点的分享我的学习历程。

超级新手自己弄的xLnt库配置方法相关推荐

  1. Solidworks GB型材库配置方法以及配置文件

    Solidworks GB型材库配置方法以及配置文件 GB型材库 主要用于SolidWorks 焊件中生成结构件特征是调用. 配置GB型材库,默认是ISO和ansi标准的型材. 单独配置GB型材方法 ...

  2. mysql主从库配置方法

    2019独角兽企业重金招聘Python工程师标准>>> 一.mysql主从备份(复制)的基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务 ...

  3. 这一次彻底弄明白Gradle相关配置

    这一次彻底弄明白Gradle相关配置 鸿洋 鸿洋 微信号 hongyangAndroid 功能介绍 你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识.点击历史消息,查看所有已推送 ...

  4. 【C++】使用VS2022和GCC编译Xlnt库读取EXCEL

    目的 因为有需求需要在PC上读取Excel文件,而且得要用C++来实现,故在Github上寻找了下好使的库,于是乎找到了Xlnt库 https://github.com/tfussell/xlnt 我 ...

  5. STM32F4系列HAL库配置定时器实验——输入捕获

    STM32F4系列HAL库配置定时器实验--输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率.我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数 ...

  6. 记录一下vlfeat视觉库配置

    vlfeat视觉库有两种配置方式,就像opencv一样,可以直接下载使用,也可以源码编译,下面记录一下直接下载并配置的方式 vlfeat库的GitHub地址: GitHub - vlfeat/vlfe ...

  7. 【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )

    文章目录 一.FFMPEG 源码下载 解压 二.交叉编译工具 三.configure 脚本及帮助命令 四.配置 configure 脚本 五.输出目录配置 六.函数库配置 七.程序配置选项 八.组件配 ...

  8. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  9. Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置

    Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...

最新文章

  1. 5分钟 NLP系列—— 11 个词嵌入模型总结
  2. log4j配置文件及nutch中的日志配置
  3. html怎么让表格竖排,表格里的文字怎么竖排
  4. 论文浅尝 | SMBOP: Semi-autoregressive Bottom-up Semantic Parsing
  5. STM32之JScope调试
  6. web安全之XSS基础-常见编码科普
  7. HTML打开网页拒绝访问,WindowsApps无法访问怎么解决?
  8. git整合分支的两种方式 merge 和 rebase
  9. Jquery 1.4.2 animate的BUG
  10. python网络编程(进程与多线程)
  11. (一)LINGO入门---软件安装
  12. 弘辽科技:拼多多运营做好竞品分析。
  13. 【熵系列-3】相对熵(或者 KL散度)
  14. mac重装系统时显示未能与服务器,mac出现您的磁盘未能分区怎么办-bootcamp磁盘未能分区解决方法 - 河东软件园...
  15. 树莓派与win10主机传输文件方式(未完,占坑)
  16. 2021-2027全球与中国物联网基础设施市场现状及未来发展趋势
  17. selenium模拟浏览器-----爬取马蜂窝地区全部景点
  18. 【JD1-100漏电继电器】
  19. javascript的一点点学习记录
  20. msysGit和TortoiseGit

热门文章

  1. SQL Server 服务器对象之链接服务器
  2. 【Linux】内存分配小结--malloc、brk、mmap
  3. JAVA:IOC原理
  4. 史上最全的SGU题目分类
  5. R中随机森林模型的学习曲线怎么画
  6. Heartbeat 安装教程
  7. allocator类
  8. 百度网盘下载太慢?不限速的阿里云盘来了
  9. vivo X80 Pro和vivo X Note哪个值得买 两者配置对比
  10. 51nod1526 分配笔名 trie+贪心