openXLSX库的编译和使用

到https://github.com/troldal/OpenXLSX 下载master,而不是release下的那个旧版本。
在Linux中编译很容易

tar xf OpenXLSX-master.zip
cd OpenXLSX-master
mkdir build
cd build
cmake ..
make

自动生成了静态库和10个示例程序Demo1~Demo10,分别演示功能和性能,其中第5个生成8列1M行的全随机整数xlsx文件。
将它的读写时间与duckdb的excel插件比较

root@6ae32a5ffcde:/par# time OpenXLSX/build/output/Demo5
********************************************************************************
DEMO PROGRAM #05: Ranges and Iterators
********************************************************************************

Generating spreadsheet ...
Saving spreadsheet ...
Re-opening spreadsheet ...
Reading data from spreadsheet ...
Cell count: 8388608
Sum of cell values: 415382510

real    0m41.133s
user    0m37.401s
sys     0m2.524s



root@6ae32a5ffcde:/par# ./duckdb132
DuckDB v1.3.2 (Ossivalis) 0b83e5d2f6
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
D load excel;
D load rusty_sheet;
D .timer on

D copy (from 'Demo05.xlsx') to 'Duckdemo5.xlsx';
100% ▕████████████████████████████████████████████████████████████▏
Run Time (s): real 18.973 user 20.729818 sys 0.490200

D copy (from read_sheet('Demo05.xlsx',header=0)) to 'Duckdemo5a.xlsx';
100% ▕████████████████████████████████████████████████████████████▏
Run Time (s): real 13.960 user 12.441182 sys 0.611207

duckdb读写的速度大约是openXLSX库的两倍。生成的文件大小,Demo5.xlsx是34MB,Duckdemo5.xlsx是36MB。使用rusty_sheet插件读还能更快。

在 VS Code 中使用 C++ 调用 `openxlsx` ,可按以下方式操作: #### 准备工作 确保已经安装好 VS Code、CMake 插件、CMake Tools 插件以及高版本的 g++ 编译器。项目可用 CMake Tools 插件创建[^2]。 #### 配置项目相关设置 使用 Visual studio 2022 打开 `OpenXLSX.Library.sln` 解决方案,选择 `OpenXLSX` 项目,在“项目 -> 属性 -> C/C++ -> 语言-> C++语言标准”中,选“ISO C++17 标准 (/std:c++17)”。点击“生成”菜单,再点击“生成 OpenXLSX”选项,生成的文件 `OpenXLSXd.lib` 位于 `D:\mfc\OpenXLSX\build\Debug` 目录下待用[^1]。 #### 编写 CMakeLists.txt 在项目根目录下创建 `CMakeLists.txt` 文件,内容示例如下: ```cmake cmake_minimum_required(VERSION 3.10) # 设置项目名称 project(OpenXLSXExample) # 设置 C++ 标准 set(CMAKE_CXX_STANDARD 17) # 添加可执行文件 add_executable(OpenXLSXExample main.cpp) # 查找 OpenXLSX find_library(OPENXLSX_LIBRARY OpenXLSXd HINTS D:/mfc/OpenXLSX/build/Debug) # 包含 OpenXLSX 头文件目录 include_directories(path/to/OpenXLSX/include) # 链接 OpenXLSX target_link_libraries(OpenXLSXExample ${OPENXLSX_LIBRARY}) ``` 注意将 `path/to/OpenXLSX/include` 替换为实际的 `OpenXLSX` 头文件所在目录。 #### 编写 C++ 代码 在项目中创建 `main.cpp` 文件,示例代码如下: ```cpp #include <OpenXLSX/OpenXLSX.h> #include <iostream> int main() { // 创建一个新的工作簿 OpenXLSX::XLDocument doc; doc.create("example.xlsx"); auto wks = doc.workbook().addWorksheet("Sheet1"); // 写入数据 wks.cell("A1").value() = "Hello"; wks.cell("B1").value() = "World"; // 保存工作簿 doc.save(); doc.close(); return 0; } ``` #### 编译运行 在 VS Code 中使用 CMake Tools 插件进行配置构建,选择合适的构建工具链,构建项目后运行生成的可执行文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值