Libxl: llegir i escriure fitxers Excel
LibXL is a library for direct reading and writing Excel files.
Package contents:
-L <path_to_library> -lxl -Wl,-rpath,<path_to_library> <your_cpp_file>
Descarrego libxl-3.4.1.4 i descomprimeixo. Compilo els exemples (elegeixo C en comptes de C++)
$ cd /libxl-3.4.1.4/examples/c $ make
i es compilen els exemples i ja els puc executar, per exemple:
$ ./generate
que és un exemple senzill que genera un fitxer Excel
Si vull fer la compilació directa he de mirar les instruccions dins del Makefile. Per exemple,
$ gcc -o generate generate.c -I ../../include_c -L ../../lib -lxl -Wl,-rpath,../../lib
(utilitzar lib64 per a 64 bits)
i ara, si vull compilar aquest fitxer en la meva carpeta de treball /home/joan/jmining/generate_xls he de copiar la carpeta include_c/ i lib/ o lib64/, i ara ja puc començar a treballar per fer coses més interessants.
$ gcc -o generate generate.c -I ./include_c -L ./lib -lxl -Wl,-rpath,./lib $ ./generate
compila bé.
El codi generate.c és un codi mínim per crear un fitxer Excel i escriure alguna cosa. Fitxer generate.c:
#include <stdio.h> #include "libxl.h" int main() { BookHandle book = xlCreateBook(); if(book) { SheetHandle sheet = xlBookAddSheet(book, "Sheet1", 0); if(sheet) { FormatHandle dateFormat; xlSheetWriteStr(sheet, 2, 1, "Hello, World !", 0); xlSheetWriteNum(sheet, 3, 1, 1000, 0); dateFormat = xlBookAddFormat(book, 0); xlFormatSetNumFormat(dateFormat, NUMFORMAT_DATE); xlSheetWriteNum(sheet, 4, 1, xlBookDatePack(book, 2008, 4, 29, 0, 0, 0, 0), dateFormat); xlSheetSetCol(sheet, 1, 1, 12, 0, 0); } if(xlBookSave(book, "example.xls")) printf("File example.xls has been created.\n"); xlBookRelease(book); } return 0; }
que s'entén fàcilment.
creat per Joan Quintana Compte, febrer 2013