大家好,欢迎来到IT知识分享网。
目录
介绍
LibXl库不依赖Excel和NET框架可以读写Excel文件。 LibXl库可用于 C、C++、C#、PHP、Python等语言。支持 Excel 97-2003二进制格式(xls)、 Excel2007-2021 XML 格式(xlsx/xlsm),并且支持多个平台windows、Linux、Mac等。
功能
LibXl库支持表格的创建、读取、编辑,支持多种格式选项:对齐、边框、颜色、填充模式、字体、合并单元格等。支持向表格中插入图片。
性能
LibXl库可以轻松得将数据导入至Excel,或者从Excel中提取数据。性能相当可以,数字的写入速度约为每秒2100,000个单元,二进制xls格式的8字符随机字符串的写入速度约为每秒个单元。
下载
LibXL库官网地址:https://www.libxl.com/
LibXL库下载地址:http://www.libxl.com/download.html
LibXL库4.1.1下载地址: https://www.libxl.com/download/libxl-win-4.1.1.zip
(我们下载“Libxl for Windows 4.1.1”,并以c++为例介绍)
配置
手动将下图的libxl.dll,复制到生成的动态链接库(*.dll)或者程序文件(*.exe)相同的文件夹。
例子1: 生成工作表,并写入数据
代码
#include <iostream> #include <windows.h> #include "libxl.h" using namespace libxl; //新建的表格文件名称 const wchar_t* filename = L"custom.xlsx"; int main() { Book* book = xlCreateXMLBook(); //book->setKey(输入key,文章最后送大家Libxl最新库4.4.1 的 KEY) if(book) { int f[6]; f[0] = book->addCustomNumFormat(L"0.0"); f[1] = book->addCustomNumFormat(L"0.00"); f[2] = book->addCustomNumFormat(L"0.000"); f[3] = book->addCustomNumFormat(L"0.0000"); f[4] = book->addCustomNumFormat(L"#,.00 $"); f[5] = book->addCustomNumFormat(L"#,.00 $[Black][<1000];#,.00 $[Red][>=1000]"); Format* format[6]; for(int i = 0; i < 6; ++i) { format[i] = book->addFormat(); format[i]->setNumFormat(f[i]); //格式 } Sheet* sheet = book->addSheet(L"Custom formats"); //新建sheet if(sheet) { sheet->setCol(0, 0, 20); //设置第一列到第一列的宽度为20 sheet->writeNum(3, 0, 25.718, format[0]); //写入数据并设置格式 第3行第1列 sheet->writeNum(4, 0, 25.718, format[1]); //写入数据并设置格式 sheet->writeNum(5, 0, 25.718, format[2]); //写入数据并设置格式 sheet->writeNum(6, 0, 25.718, format[3]); //写入数据并设置格式v sheet->writeNum(8, 0, 1800.5, format[4]);//写入数据并设置格式 sheet->writeNum(10, 0, 500, format[5]); //写入数据并设置格式 sheet->writeNum(11, 0, 1600, format[5]); //写入数据并设置格式 sheet->writeStr(2, 0, L"王牌飞行员_里海");//写入字符串 第2行第1列 sheet->writeNum(2, 1, 1000);//写入数据 第2行第2列 } if(book->save(filename)) { //打开表格文件 ::ShellExecute(NULL, L"open", filename, NULL, NULL, SW_SHOW); } book->release(); } return 0; }
例子2: 读数据
代码
#include <iostream> #include "libxl.h" using namespace libxl; const wchar_t* filename = L"F:\\example.xlsx"; int main() { Book* book = xlCreateXMLBook(); //book->setKey(输入key,文章最后送大家Libxl最新库4.4.1 的 KEY) if(book) { if(book->load(filename)) { Sheet* sheet = book->getSheet(0); if(sheet) { const wchar_t* s = sheet->readStr(2, 1); if(s) std::wcout << s << std::endl << std::endl; std::cout << sheet->readNum(4, 1) << std::endl; std::cout << sheet->readNum(5, 1) << std::endl; const wchar_t* f = sheet->readFormula(6, 1); if(f) std::wcout << f << std::endl << std::endl; int year, month, day; book->dateUnpack(sheet->readNum(8, 1), &year, &month, &day); std::cout << year << "-" << month << "-" << day << std::endl; } } book->release(); } return 0; }
例子3: 插入图片
代码
#include <iostream> #include <windows.h> #include "libxl.h" using namespace libxl; //新建的表格文件名称 const wchar_t* filename = L"custom.xlsx"; int main() { Book* book = xlCreateXMLBook(); //book->setKey(输入key,文章最后送大家Libxl最新库4.4.1 的 KEY) if (book) { Sheet* sheet = book->addSheet(L"addPictureSheet_lihai"); //新建sheet if (sheet) { int picID = book->addPicture(L"F:\\图片.jpg"); sheet->setPicture(2, 1, picID); //设置位置为底3行,第2列 } if (book->save(filename)) { //打开表格文件 ::ShellExecute(NULL, L"open", filename, NULL, NULL, SW_SHOW); } book->release(); } return 0; }
获取许可证密钥
使用此库需要注册,否则如果是写表格,它将在每个电子表格的第一行写一个横幅广告。
如果是读表格,则它将只能读取300个单元格(第一行不可用)。使用许可证密钥,可以消除这个限制。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/112026.html











