LibXL可以不依赖EXCEL读取XLS和XLSX文件。包括设置对齐方式、字体、颜色等格式。支持C, C++, C#,Python等语言。并且支持多个平台windows、Linux、Mac等。下面仅介绍windows平台,C++语言的使用。详情可见官网介绍
1. 从官网下载libxl库
- 打开压缩包后文件目录如下:
* 重要文件介绍
- bin 32位 动态链接库(需要将其放在可执行文件的目录)
- bin64 64位 动态链接库
- doc 函数说明的文档,用C++讲解的
- examples 一些使用的例子,用C,C++,C#,python等语言的
- include_c C的头文件
- include_cpp C++的头文件
- lib 32位微软Visual C++的库
- lib64 64位微软Visual C++的库
- net .NET使用的
- stdcall 使用stdcall调用约定的32位动态库
2. 环境配置
- 包含相应的include和lib;
-
在代码中需要#pragma comment(lib,”libxl.lib”),或者将lib添加到依赖项。
Project -> Properties -> Linker -> Input -> Additional Dependencies
3.简单使用
3.1 创建操作execl的实例
-
Book* xlCreateBook()
创建一个二进制格式的XLS(Execl97-03)的实例,返回该实例的指针。函数的命名空间为libxl
-
Book* xlCreateXMLBook()
创建一个XML格式的XLSX格式( Execl2007以上)的实例,返回该实例的指针。
3.2 简单读写操作示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
3.3 相应函数介绍
-
Sheet* addSheet(const wchar_t* name, Sheet* initSheet = 0)
添加一个新的工作表到创建的execl对象,返回这个该工作表的指针。如果需要拷贝一个已经存在的工作表则设置initSheet 参数。需要主要的是 这个工作表必须是这个execl的工作表。如果失败则返回NULL,可以调用Book:errorMessage()查看错误信息。
-
bool writeStr(int row, int col, const wchar_t* value, Format* format = 0)
将字符串写入指定格式的单元格中。如果格式等于0,则格式将被忽略。字符串是内部复制的,在调用此方法后可以被销毁。如果发生错误返回false。
-
const wchar_t* readStr(int row, int col, Format** format = 0)
从单元格中读取字符串及其格式,存放该字符串的内存在释放刚execl对象后,将会被销毁。xls格式
需要每次都从XML文件中获取。xlsx格式
-
bool writeNum(int row, int col, double value, Format* format = 0)
将数字或日期/时间写入指定格式的单元格中。如果格式等于0,则格式将被忽略。使用Book::datePack()设置日期格式,如果发生错误返回false。
-
double readNum(int row, int col, Format format = 0) const**
从单元格中读取数字或日期/时间及其格式,使用Book::dateUnpack()提取日期。如果格式= 0,则发生错误。