如果使用C或者C++编程语言,想要处理xlsx或者xls文件,可以使用下面这几个库。
库名 | .xlsx文件 | .xls文件 | 是否免费 |
---|---|---|---|
OpenXLSX | 可读/可写 | 无法读写 | 是 |
QXlsx(QT项目中可用) | 可读/可写 | 无法读写 | 是 |
libxls | 无法读写 | 只读 | 是 |
xlslib | 无法读写 | 只写 | 是 |
libxl | 可读/可写 | 可读/可写 | 否 |
综合下来,如果只想免费使用,那么可以使用OpenXLSX,libxls,xlslib,这3个第三方库。OpenXLSX负责处理.xlsx文件,libxls和xlslib负责处理.xls文件,一个负责读,一个负责写,可能需要自己编译源代码,来适配不同平台。如果想要方便一点的话,就可以使用libxl库,直接适配windows,linux,macos,ios。经过实测,QXlsx在多线程使用时容易出错,这个库慎用。
下面是libxl写入.xls文件的示例代码,个人感觉这个库用起来非常简单。
#include <libxl.h>
#include <iostream>
using namespace std;
using namespace libxl;
int main(int argc, char**argv)
{
Book* book=xlCreateXMLBook();
book->setKey("账号", "激活码");
book->setLocale("UTF-8"); //很重要,否则无法正确处理中文
Sheet* sheet=book->addSheet("Sheet1");
sheet->writeStr(2,1,"hello world!");
sheet->writeNum(4,1,1000);
book->save("模板.xlsx");
book->release();
}