嘗試:在linux下解析excel資料
【前言】先贊一個,這種變態的需求。
Direct reading and writing Excel files
LibXL is a library that can read and write Excel files. It doesn't require Microsoft Excel and combines an easy to use and powerful features. Library can be used to
- Generate a new spreadsheet from scratch
- Extract data from an existing spreadsheet
- Edit an existing spreadsheet
LibXL can help your applications in exporting and extracting data to/from Excel files with minimum effort. Also it can be used ever as report engine. Library can be used in C, C++, C#, Delphi, Fortran and other languages. Supports Excel 97-2003 binary formats (xls) and Excel 2007/2010 xml formats (xlsx). Supports Unicode and 64-bit platforms. There are a wrapper for .NET developers and separate Mac and Linux edition.
Simple interoperate, no more Excel dependency
LibXL has C/C++ headers, Delphi unit and .NET assembly for including in your project. No OLE automation.
Customizing the look and feel
LibXL supports numerous formatting options: alignments, borders, colors, fill patterns, fonts, merging cells and so on.
High performance
Writing speed is about 2 100 000 cells per second for numbers and 240 000 cells per second for 8-character random strings in binary format (CPU 3.2 GHz).
Royalty-free distribution with your application
Our customers can use this library in theirs commercial applications without any fees.
Code example: generate a new spreadsheet from scratch
#include "libxl.h" using namespace libxl; int main() { Book* book = xlCreateBook(); if(book) { Sheet* sheet = book->addSheet(L"Sheet1"); if(sheet) { sheet->writeStr(2, 1, L"Hello, World !"); sheet->writeNum(3, 1, 1000); } book->save(L); book->release(); } return 0; }
Code example: extract data from an existing spreadsheet
Book* book = xlCreateBook(); if(book) { if(book->load(L)) { Sheet* sheet = book->getSheet(0); if(sheet) { const wchar_t* s = sheet->readStr(2, 1); if(s) wcout << s << endl; double d = sheet->readNum(3, 1); cout << d << endl; } } book->release(); }
Code example: edit an existing spreadsheet
Book* book = xlCreateBook(); if(book) { if(book->load(L)) { Sheet* sheet = book->getSheet(0); if(sheet) { double d = sheet->readNum(3, 1); sheet->writeNum(3, 1, d * 2); sheet->writeStr(4, 1, L"new string"); } book->save(L); } book->release(); }
Code example: apply formatting options
Font* font = book->addFont(); font->setName(L"Impact"); font->setSize(36); Format* format = book->addFormat(); format->setAlignH(ALIGNH_CENTER); format->setBorder(BORDERSTYLE_MEDIUMDASHDOTDOT); format->setBorderColor(COLOR_RED); format->setFont(font); Sheet* sheet = book->addSheet(L"Custom"); if(sheet) { sheet->writeStr(2, 1, L"Format", format); sheet->setCol(1, 1, 25); } book->save(L);