编译xlnt开源库源码, 使用c++读写excel文件

编译xlnt开源库源码,在linux平台使用c++读写excel文件
下载xnlt源码
官方网站https://tfussell.gitbooks.io/xlnt/content/
下载地址https://github.com/tfussell/xlnt
下载libstudxml开源库源码
下载地址https://github.com/kamxgal/libstudxml

下载xnlt源码

官方网站https://tfussell.gitbooks.io/xlnt/content/

下载地址https://github.com/tfussell/xlnt
获取到xlnt-master.zip

下载libstudxml开源库源码
下载地址https://github.com/kamxgal/libstudxml
获取到libstudxml-master.zip

编译步骤

将libstudxml-master/libstudxml拷贝到xlnt-master/third-party/libstudxml

注意:是这个xlnt-master/third-party/libstudxml目录下,拷贝的结果是xlnt-master/third-party/libstudxml/libstudxml

4 在xlnt-master目录下创建build目录,创建命令:

mkdir build
5 在切换到build目录下,执行命令:

cd build
6 cmake -D STATIC=ON … (指定生成的为静态库)
7 cmake --build .
xlnt-master/build/source/libxlnt.a是生成的静态库,对应的头文件在xlnt-master/include/里面

注意: xlnt::workbook类的load(std::string path)在读取excel文件时,如果excel文件不存在直接抛出异常,程序退出。可能需要先用文件流先判断文件时候存在,demo如下,dest_filename为目标excel文件路径。

std::ifstream file_stream;
file_stream.open(dest_filename, std::ios::binary);
if (!file_stream.good())
{
std::clog << “ERROR ***************************************************” << std::endl;
return -1;
}
xlnt::workbook wb_read;
wb_read.load(“dest_filename”);
————————————————

    

3:cmake xlnt  ,命令如下

cd xlnt-master

mkdir build

cd build

二、构建、编译、运行

cmake -G “Visual Studio 12 2013 Win64” ..

cmake -G “Visual Studio 12 2013” ..

cmake ..

4.用vs打开xlnt-master\build\xlnt_all.sln,生成解决方案

5.在 xlnt-master\include中得到头文件,在xlnt-master\build\source\Debug中得到动态链接库

编译库文件

进入build文件夹,打开sln文件

选择模式Debug或者Release,点击运行。

输出显示到已生成dll文件,即生成完毕。

生成库的路径如下。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目启动端口被占用

项目启动端口被占用 Identify and stop the process that’s listening on port XXXX or configure this application to listen on another port. 1、查询占用端口的pid netstat -aon|findstr "端口号"2、终止进程 taskkill /pid 进程号 /f3、重启项目

宝宝早教电子图书 酷得电子方案

宝宝早教发声书是一种专为婴幼儿设计的图书&#xff0c;旨在通过有趣的图画和声音来吸引宝宝的注意力&#xff0c;帮助他们学习语言、认知和发展各种技能。这类书籍通常包括以下特点&#xff1a; 鲜艳的图画&#xff1a;发声书通常配有色彩鲜艳、形象生动的图画&#xff0c;以…

Ceph入门到精通-shell脚本读取指定文件,并按行使用rclone命令进行复制操作

要使用shell脚本读取指定文件,并按行使用rclone命令进行复制操作,您可以编写一个简单的脚本来实现这一功能。以下是一个示例脚本,它将读取指定文件的每一行,然后使用rclone copy命令将远程存储中的文件复制到本地目录。 首先,创建一个新的shell脚本文件,例如download_fi…

Java Matcher类方法深度剖析:查找和匹配、索引方法

1. 引言 在Java中,正则表达式是处理字符串的强大工具,而java.util.regex包中的Matcher类则是实现这一功能的核心。对于Java工程师而言,熟练掌握Matcher类的使用方法,无疑能够极大地提升字符串处理的效率和准确性。本文将对Matcher类的方法进行深度讲解,并按照查找和匹配方…

el-tree检查当前节点是否是传入节点的父级或祖先节点

实现的效果就是&#xff1a;树形结构选中一个目录后点击收起的时候需要知道当前收起的是不是选中目录的父节点或者是祖先节点 这就用到了递归&#xff0c;什么是递归呢&#xff1f;简单来说递归就是方法自己调用自己&#xff0c;每次调用时传入不同的变量。一直到程序执行到指定…

spring的bean定义和扫描规则

1、bean的基本定义 在Spring框架中&#xff0c;Bean是一个核心概念&#xff0c;它是Spring IoC&#xff08;Inverse of Control&#xff0c;控制反转&#xff09;容器管理的一个对象实例。简单来说&#xff0c;Bean就是由Spring容器初始化、配置和管理的对象。这些对象可以是J…

算法06 贪心算法【C++实现】

我们可以扮演一个贪心的人&#xff0c;在金子、银、铁中选择装入背包带走的话&#xff0c;作为一个贪心的人&#xff0c;肯定要把价值最大化&#xff0c;优先要选择装载价值较高的金子。 目录 什么是贪心算法 证明方法 常见题型 常见题型解法 训练&#xff1a;小木船过河 …

WARP 加速您的 AI 数据存储基础设施

你知道一些最好的人工智能模型的秘诀吗&#xff1f;这是他们可以访问的数据量&#xff0c;他们可以接受培训。对于 AI/ML 模型&#xff1a;快速访问数据为王。让我强调一下&#xff0c;这不仅仅是数据&#xff0c;而是快速访问的数据。如果有人可以构建更快、更强大的模型&…

骚操作:如何让一个网页一直处于空白情况?

&#x1f9d1;‍&#x1f4bb; 写在开头 点赞 收藏 学会&#x1f923;&#x1f923;&#x1f923; 如题&#xff0c;惯性思路很简单&#xff0c;就是直接撸上一个空内容的html。 注&#xff1a;以下都是在现代浏览器中执行&#xff0c;主要为**Chrome 版本 120.0.6099.217&…

在 The Sandbox 体验韩剧《碰撞搜查线》的刺激!

风靡全球的韩国电视剧《碰撞搜查线》现已登陆 The Sandbox 元宇宙&#xff01; ASTORY 的电视剧《碰撞搜查线》以充满动作喜剧色彩的方式&#xff0c;讲述了一个交通犯罪调查小组打击公路上的恶棍的故事。该剧迅速成为 Disney 最受欢迎的节目之一&#xff01; 在 The Sandbox体…

「动态规划」如何求最长递增子序列的长度?

300. 最长递增子序列https://leetcode.cn/problems/longest-increasing-subsequence/description/ 给你一个整数数组nums&#xff0c;找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其…

CAN通讯相关知识拆解报文格式过滤器数据交互

在嵌入式系统中使用CAN&#xff08;Controller Area Network&#xff09;通讯&#xff0c;需要掌握以下内容&#xff1a; CAN协议&#xff1a;了解CAN总线通讯的基本原理&#xff0c;包括帧格式、报文结构、消息ID等内容。CAN控制器&#xff1a;理解CAN控制器的工作原理以及如…

如何在Java中实现资源池管理?

如何在Java中实现资源池管理&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入讨论在Java中如何实现资源池管理的技术细节和最佳实践。…

java连接mysql报错

1.背景&#xff0c;直接升级操作系统从centos-》国产化操作系统&#xff0c;mysql也升级到5.7.44 2&#xff0c;报错 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconn…

品牌策划背后的秘密:我为何对此工作情有独钟?

你是否曾有过一个梦想&#xff0c;一份热爱&#xff0c;让你毫不犹豫地投身于一个行业&#xff1f; 我就是这样一个对品牌策划充满热情的人。 从选择职业到现在&#xff0c;我一直在广告行业里“混迹”&#xff0c;一路走来&#xff0c;也见证了许多对品牌策划一知半解的求职…

适用于Mac的免费外置硬盘数据恢复软件

“我有一个 1 TB 的外置硬盘&#xff0c;它被意外格式化了。我尝试从中恢复丢失的数据。我把它连接到我的Mac&#xff0c;但里面什么也没找到。我正在寻找适用于Mac的免费外置硬盘数据恢复软件&#xff0c;例如奇客数据恢复Mac版或其他Mac数据恢复免费软件来扫描它并恢复数据。…

人工ai智能写作,分享推荐三款好用软件!

在数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;而在内容创作领域&#xff0c;AI智能写作软件更是如雨后春笋般涌现。今天&#xff0c;就为大家分享三款备受好评的AI智能写作软件&#xff0c;让你轻松掌握高效写作的秘密…

企业级-PDF水印签字

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 一、介绍 根据关键字偏移量水印签字。 允许重复调用&#xff0c;文件安全性高&#xff0c;自动备份并…

win10系统管理员账号怎么切换

1、按住“windowsx”&#xff0c;选择“计算机管理” 2、在页面左侧&#xff0c;找到“计算机管理(本地)”&#xff0c;展开“系统工具”&#xff0c;点击“本地用户和组”下面的“用户”&#xff0c;在右侧找到“Administrator”&#xff0c;双击打开。 3、在打开页面选择常规…

Docker(六)-本地镜像发布到私有库

1.下载镜像Docker Registry 用于搭建私人版本Docker Hub docker pull registry2.运行私有库Registry 运行私有库Registry&#xff0c;相当于本地有个私有Docker hubdocker run -d -p hostPort:containerPort -v 【宿主机目录】:【容器目录】 --privilegedtrue 【私有库镜像】…