歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

  1. #include <stdio.h>   
  2. #include <string.h>   
  3. #include <wchar.h>   
  4. #include <stdbool.h>   
  5. #include <errno.h>   
  6.   
  7. #include <xlslib/xlslib.h>   
  8.   
  9. int main (int argc, char *argv[]) {  
  10.     workbook *wb;  
  11.     worksheet* ws;  
  12.       
  13.     wb = xlsNewWorkbook();  
  14.     ws = xlsWorkbookSheet(wb, "sheet1");  
  15.       
  16.     xlsWorksheetLabel(ws, 0, 1, "name", NULL);  
  17.     xlsWorksheetLabel(ws, 0, 2, "US", NULL);  
  18.     xlsWorksheetLabel(ws, 0, 3, "CN", NULL);  
  19.     xlsWorksheetLabel(ws, 0, 4, "TR", NULL);  
  20.       
  21.     int err = xlsWorkbookDump(wb, "blank.xls");  
  22.       
  23.     xlsDeleteWorkbook(wb);  
  24.   
  25.     if (err != 0)  
  26.     {  
  27.         fprintf(stderr, "Dump xls file failed: I/O failure %d.\n", err);  
  28.         return -1;  
  29.     }  
  30.   
  31.     return 0;  
  32. }  
Copyright © Linux教程網 All Rights Reserved