【前言】先贊一個,這種變態(tài)的需求。
【原文】http://www./
Direct reading and writing Excel filesLibXL 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
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 dependencyLibXL has C/C++ headers, Delphi unit and .NET assembly for including in your project. No OLE automation. Customizing the look and feelLibXL supports numerous formatting options: alignments, borders, colors, fill patterns, fonts, merging cells and so on. High performanceWriting 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 applicationOur 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"example.xls"); book->release(); } return 0; }
Code example: extract data from an existing spreadsheetBook* book = xlCreateBook(); if(book) { if(book->load(L"example.xls")) { 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 spreadsheetBook* book = xlCreateBook(); if(book) { if(book->load(L"example.xls")) { 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"example.xls"); } book->release(); } Code example: apply formatting optionsFont* 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"format.xls"); |
|