到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插件读还能更快。

2252

被折叠的 条评论
为什么被折叠?



