LibXL库使用详解(篇一)

LibXL库使用详解(篇一)

LibXL可以不依赖EXCEL读取XLS和XLSX文件。包括设置对齐方式、字体、颜色等格式。支持C, C++, C#,Python等语言。并且支持多个平台windows、Linux、Mac等。下面仅介绍windows平台,C++语言的使用。详情可见官网介绍

1. 从官网下载libxl库

  • 打开压缩包后文件目录如下:

dir1
* 重要文件介绍

  1. bin 32位 动态链接库(需要将其放在可执行文件的目录)
  2. bin64 64位 动态链接库
  3. doc 函数说明的文档,用C++讲解的
  4. examples 一些使用的例子,用C,C++,C#,python等语言的
  5. include_c C的头文件
  6. include_cpp C++的头文件
  7. lib 32位微软Visual C++的库
  8. lib64 64位微软Visual C++的库
  9. net .NET使用的
  10. stdcall 使用stdcall调用约定的32位动态库

2. 环境配置

  • 包含相应的include和lib;

lib2

  • 在代码中需要#pragma comment(lib,”libxl.lib”),或者将lib添加到依赖项。

    Project -> Properties -> Linker -> Input -> Additional Dependencies

3.简单使用

3.1 创建操作execl的实例
  1. Book* xlCreateBook()

    创建一个二进制格式的XLS(Execl97-03)的实例,返回该实例的指针。函数的命名空间为libxl

  2. Book* xlCreateXMLBook()

    创建一个XML格式的XLSX格式( Execl2007以上)的实例,返回该实例的指针。

3.2 简单读写操作示例
#include <iostream>
#include "libxl.h"
#pragma comment(lib,"libxl.lib")
using namespace libxl;

int main()
{
    Book* book = xlCreateBook();//创建一个二进制格式的XLS(Execl97-03)的实例,在使用前必须先调用这个函数创建操作excel的对象
    //book->setKey(......);//如果购买了该库,则设置相应的key,若没有购买,则不用这行
    if (book)//是否创建实例成功
    {
        Sheet* sheet = book->addSheet(L"Sheet1");//添加一个工作表
        //一个excel文件既是一个工作簿,你可以把工作簿看作是一个本子,而本子是由一页一页的纸张装订在一起的,excel中的sheet就是这些纸张。
        if (sheet)
        {
            sheet->writeStr(1, 1, L"Hello, World !");//在第二行 第二列(B列)的表格中写入字符串"Hello, World !"。程序中从0开始计数。第0行就是execl的第1行
            sheet->writeNum(2, 1, 1000);//在第三行 第二列(B列)的表格中写入数字 "1000"。
            sheet->writeNum(3, 1, 2000);

            Font* font = book->addFont();//创建一个字体对象
            font->setColor(COLOR_RED);  //设置对象颜色
            font->setBold(true);        //设置粗体
            Format* boldFormat = book->addFormat();//设置字体格式指针
            boldFormat->setFont(font);             //应用上面设置的字体
            sheet->writeFormula(6, 1, L"SUM(B3:B4)", boldFormat); //用新的字体格式 在第七行 B列 写入 B3(第三行,第二列)+B4 的和

            Format* dateFormat = book->addFormat();
            dateFormat->setNumFormat(NUMFORMAT_DATE);//设置日期格式,依赖于你本机的设置
            sheet->writeNum(8, 1, book->datePack(2008, 4, 29), dateFormat);

            sheet->setCol(1, 1, 12);//设置列宽,格式等
        }

        if (book->save(L"example.xls"))//保存到example.xls
        {
            //.....
        }
        else
        {
            std::cout << book->errorMessage() << std::endl;
        }
        book->release();//释放对象!!!!!
    }
    return 0;
}

demo1

3.3 相应函数介绍
  • Sheet* addSheet(const wchar_t* name, Sheet* initSheet = 0)

    添加一个新的工作表到创建的execl对象,返回这个该工作表的指针。如果需要拷贝一个已经存在的工作表则设置initSheet 参数。需要主要的是 这个工作表必须是这个execl的工作表。如果失败则返回NULL,可以调用Book:errorMessage()查看错误信息。

  • bool writeStr(int row, int col, const wchar_t* value, Format* format = 0)

    将字符串写入指定格式的单元格中。如果格式等于0,则格式将被忽略。字符串是内部复制的,在调用此方法后可以被销毁。如果发生错误返回false。

  • const wchar_t* readStr(int row, int col, Format** format = 0)

    从单元格中读取字符串及其格式,存放该字符串的内存在释放刚execl对象后,将会被销毁。xls格式

    需要每次都从XML文件中获取。xlsx格式

  • bool writeNum(int row, int col, double value, Format* format = 0)

    将数字或日期/时间写入指定格式的单元格中。如果格式等于0,则格式将被忽略。使用Book::datePack()设置日期格式,如果发生错误返回false。

  • double readNum(int row, int col, Format format = 0) const**

    从单元格中读取数字或日期/时间及其格式,使用Book::dateUnpack()提取日期。如果格式= 0,则发生错误。

  • 34
    点赞
  • 184
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
libxl是一种用于操作Excel文件的开源,其具有简单易用、功能强大的特点。下面将详细介绍libxl使用方法。 首先,我们需要在项目中引入libxl的头文件,并链接相应的文件。然后,创建一个Workbook对象,用于表示一个Excel文件。可以使用createWorkbook函数创建一个新的空白Excel文件,也可以使用openWorkbook函数打开一个已有的Excel文件。 在创建或打开Excel文件后,可以通过各种函数来对文件进行操作。可以使用addSheet函数添加一个新的工作表,并使用setSheetName函数设置工作表的名称。可以使用write函数将数据写入指定的单元格。可以使用mergeCells函数合并单元格,并使用setColWidth和setRowHeight函数设置列宽和行高。 在写入数据后,可以通过save函数保存Excel文件,并使用release函数释放Workbook对象。还可以使用setCellFormat函数设置单元格的格式,如字体、对齐方式等。 除了写入数据,libxl还支持读取Excel文件的操作。可以使用read函数读取指定单元格的数据,使用sheetCount函数获取工作表数量,使用sheetName函数获取指定工作表的名称。 此外,libxl还提供了一些高级功能,如设置页眉页脚、设置打印区域、设置打印属性等。 总结一下,libxl是一个功能强大且易于使用的Excel文件操作。通过学习和掌握libxl使用方法,我们可以方便地对Excel文件进行创建、读取和写入操作,满足各种Excel处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值