Ubuntu下C程序使用xlslib2.3.4去写excel表格文件
Ubuntu下C程序使用xlslib2.3.4去写excel表格文件
xlslib是一个跨平台的excel表格写类库。也就是说可以在linux下面在C跟C++里调用它来输出excel表格文件。
先去下载源码,解压,然后编译,安装。
源码下载地址:http://sourceforge.net/projects/xlslib/files/
在终端执行命令:
./configre
make
make check
make install
其中最后 一步make install需要切换到root用户,才有权限把头文件跟库文件写入到/usr。
这一步之后,默认安装的库文件保存位置在/usr/local/lib,不在系统默认的lib路径里,需要手动把它们拷贝过去
sudo cp /usr/local/lib/libxls* /usr/lib
在写源代码的时候,一定要记得包含下面两个头文件,不然会编译出错!
#include <wchar.h>
#include <stdbool.h>
关于怎么使用的例子,2.3.4好像改动比较多,按照网上搜索到的源码大多不能使用的,,
大家可以在源码目录下面的targets/test/文件夹查看,
mainC.c是C里面调用xlslib的例子,mainCPP.CPP是C++调用xlslib的例子。
下面是一个简单的例子:wb.c
编译的时候添加xls库就可以了。
gcc wb.c -o wb -lxls
- #include <stdio.h>
- #include <string.h>
- #include <wchar.h>
- #include <stdbool.h>
- #include <errno.h>
- #include <xlslib/xlslib.h>
- int main (int argc, char *argv[]) {
- workbook *wb;
- worksheet* ws;
- wb = xlsNewWorkbook();
- ws = xlsWorkbookSheet(wb, "sheet1");
- xlsWorksheetLabel(ws, 0, 1, "name", NULL);
- xlsWorksheetLabel(ws, 0, 2, "US", NULL);
- xlsWorksheetLabel(ws, 0, 3, "CN", NULL);
- xlsWorksheetLabel(ws, 0, 4, "TR", NULL);
- int err = xlsWorkbookDump(wb, "blank.xls");
- xlsDeleteWorkbook(wb);
- if (err != 0)
- {
- fprintf(stderr, "Dump xls file failed: I/O failure %d.\n", err);
- return -1;
- }
- return 0;
- }
评论暂时关闭