Ubuntu下C程序使用xlslib2.3.4去写excel表格文件

来源:互联网 发布:网络违法犯罪举报app 编辑:程序博客网 时间:2024/06/10 06:31

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;}


原创粉丝点击