libxls 读写
时间: 2023-07-29 21:05:58 浏览: 97
libxls库可以读取和写入Excel文件。下面分别介绍如何使用libxls库进行读写操作。
读取Excel文件:
```c
#include <stdio.h>
#include <stdlib.h>
#include "libxls/xls.h"
int main(int argc, char *argv[])
{
xlsWorkBook *pWB;
xlsWorkSheet *pWS;
xlsCell *pCell;
int i, j;
pWB = xls_open("test.xls", "UTF-8");
pWS = xls_getWorkSheet(pWB, 0);
for (i = 0; i <= pWS->rows.lastrow; i++) {
for (j = 0; j <= pWS->rows.lastcol; j++) {
pCell = xls_cell(pWS, i, j);
if (pCell != NULL) {
if (pCell->id == XLS_RECORD_RK || pCell->id == XLS_RECORD_MULRK) {
printf("%g\t", xlsConvertRKtoNumber(pCell->d, pWB->is5ver));
} else if (pCell->id == XLS_RECORD_BLANK) {
printf("\t");
} else {
printf("%s\t", xls_getCellValue(pCell, pWB));
}
} else {
printf("\t");
}
}
printf("\n");
}
xls_close(pWB);
return 0;
}
```
这个示例代码打开名为test.xls的Excel文件,并读取其中第一个工作表的所有单元格数据。在读取单元格数据时,根据单元格类型进行不同的处理,如果是数值类型则调用xlsConvertRKtoNumber函数将RK值转换成具体数值,如果是空单元格则输出一个制表符,否则调用xls_getCellValue函数获取单元格的字符串值。最后关闭工作簿。
写入Excel文件:
```c
#include <stdio.h>
#include <stdlib.h>
#include "libxls/xls.h"
int main(int argc, char *argv[])
{
xlsWorkBook *pWB;
xlsWorkSheet *pWS;
int i, j;
pWB = xlsNewWorkbook();
pWS = xlsAddWorksheet(pWB, "Sheet1");
for (i = 0; i < 10; i++) {
for (j = 0; j < 5; j++) {
xlsWriteNumber(pWS, i, j, i*j);
}
}
xlsSave(pWB, "test.xls");
xlsDeleteWorkbook(pWB);
return 0;
}
```
这个示例代码创建了一个新的xls工作簿,并在第一个工作表上写入了一些数字数据,最后将工作簿保存到名为test.xls的文件中。要使用该示例,需要先下载和安装libxls库,并在编译时包含相关的头文件和库文件。