xlslib库使用简记

1 前言

最近需要使用C++结合xlslib库来生成Excel文件,但发现这个库的文档还真难找,找来找去发现唯一的线索是有一个test/目录里面的几个例子而已。

想到以后要不断的和这个库打交道,除非愿意用Python去重写,但吃力不讨好,还是做个笔记,以备不时之需。

2 安装使用

安装是三步:

$ ./configure
$ make
$ make install

源码里面自带的使用例子:

xlslib/xlslib/targets/test/formulas.cpp
xlslib/xlslib/targets/test/mainCPP.cpp

安装后:

  • 头文件目录:

    /usr/local/include/xlslib/
    /usr/local/include/xlslib/xlslib/
  • 库文件:
    /usr/local/lib/libxls.3.dylib
    /usr/local/lib/libxls.a
    /usr/local/lib/libxls.dylib
    /usr/local/lib/libxls.la

3 举例: 生成xls

helloxls.cpp:

#include <string.h>
#include <xlslib/xlslib.h>

using namespace xlslib_core;
using namespace std;

int main (int argc, char *argv[]) {

    workbook wb;

    xf_t* xf = wb.xformat();

    worksheet* ws;

    ws = wb.sheet("sheet1");

    string label = "Hello, World!";

    ws->label(1,2,label,xf);    // 从0开始数,第1行,第2列,即C3

    wb.Dump("workbook.xls");

    return 0;
}

编译运行:

$ g++ helloxls.cpp -lxls -I /usr/local/include/xlslib/ -I /usr/local/include/ -L /usr/local/lib/ -o helloxls
$ ./helloxls
$ ll workbook.xls

PS: 因为对API不熟悉,还是在IDE里面自动补全、提示比较方便。

4 举例: 设置颜色

xlscolor.cpp:

#include <string.h>
#include <xlslib/xlslib.h>

using namespace xlslib_core;
using namespace std;

void test() {

    workbook wb;

    font_t * _font = wb.font("Calibri");
    _font->SetBoldStyle(BOLDNESS_BOLD);  // 设置粗字体

    xf_t* xf = wb.xformat();

    xf->SetFont(_font);
    xf->SetFillBGColor(CLR_WHITE);
    xf->SetFillFGColor(CLR_RED);

    worksheet* ws;

    ws = wb.sheet("sheet1");

    cell_t * cell;

    cell = ws->label(1,2,"hello",xf);    // 从0开始数,第1行,第2列,即C3

    cell = ws->label(2,2,"world");

    cell->fillfgcolor(CLR_RED);
    cell->fillbgcolor(CLR_WHITE);

    range * _range;

    _range = ws->rangegroup(0,0,1500,100);   // 设置背景为白色
    _range->cellcolor(CLR_WHITE);

    _range = ws->rangegroup(1,2,2,2);
    _range->cellcolor(CLR_GOLD);

    wb.Dump("workbook.xls");
}

5 举例: 设置列宽

#include <string.h>
#include <xlslib/xlslib.h>

using namespace xlslib_core;
using namespace std;

void test() {

    workbook wb;
    worksheet* ws;

    ws = wb.sheet("sheet1");
    ws->defaultColwidth(256*10);
    ws->colwidth(2,256*30);

    cell_t * cell;

    cell = ws->label(1,2,"hello",xf);    // 从0开始数,第1行,第2列,即C3
    cell = ws->label(2,2,"world");

    wb.Dump("workbook.xls");
}
 

xlslib库使用简记的更多相关文章

  1. 对xlslib库与libxls库的简易封装

    一.简介 xlslib库是用来创建excel文件.libxls是用来读取excel文件的,在使用C++或者QT语言来设计对excel文件的读取.都需要事先下载这两个库编译成功后再进行程序设计的.之所以 ...

  2. 使用VS2015编译xlslib库

    环境: win7_x64,VS2015 开始: 一.下载xlslib库 xlslib-package-2.5.0.zip 解压到一个指定目录,如E:\library\xlslib-package-2. ...

  3. vs2008中xlslib与libxls库的编译及使用

    C++用来操作Excel的方法很多,但是涉及到跨平台,同时又要对Excel的读写操作兼顾,而且免费的库,那应该是要用xlslib和libxls了.由于技术比较菜,折腾这个折腾了一个星期了.最开始是使用 ...

  4. 又遇Release编译的一坑 -- 应用程序正常初始化(0xc000007b)失败。请单击“确定”,终止应用程序。

    项目中使用了xlslib库,以动态库形式编译,由于它没有生成链接库lib文件,所以官方提供的demo中有createDLL这个小程序用来生成lib文件.然而我又 no zuo no die了一次.   ...

  5. 开源的excel读取库libxls在windows下的编译,且支持中文,全网首发

    转载请注明出处:http://www.cnblogs.com/superbi/p/5482516.html 到目前为止,网络和官网上并没有关于libxls在windows下支持中文的教程,也没有现成的 ...

  6. make 要点简记

    make 要点简记 1.隐式推导 make可以自动推导文件及其文件依赖关系后面的命令,所以我们没有必要在每一个.o文件后面都写上类似的命令,因为make 会自动识别并且自动推导命令. objects ...

  7. 『Python CoolBook』C扩展库_其五_C语言层面Python库之间调用API

    点击进入项目 一.C层面模块添加API 我们仍然操作如下结构体, #include <math.h> typedef struct Point { double x,y; } Point; ...

  8. python面试题库——3数据库和缓存

    第三部分 数据库和缓存(46题) 列举常见的关系型数据库和非关系型都有那些? 关系型数据库: Oracle.DB2.Microsoft SQL Server.Microsoft Access.MySQ ...

  9. my14_mysql指定时间恢复之模拟从库

    场景 *********************************线上库数据误删除,存在几天前的一份全备数据,现需要恢复这些误删除的数据本例方案:在另外一台服务器上,恢复全备,搭建binlog ...

随机推荐

  1. php 数组 array_intersect_key() array_unique()移除重复

    <?php // array_unique($array) 去除重复 // array_unshif()向数组的顶部追加函数 // array_shif($a,"ss")向数 ...

  2. NGINX+PHP+MYSQL服务器环境搭建

    这条命令是配置vim的,请确保你能访问github wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh 说明有一些小问题, ...

  3. TypeError: 'QueryDict' object is not callable

    id = int(request.POST('id')) Error message: TypeError: 'QueryDict' object is not callable Error rese ...

  4. 初学swift笔记 方法(九)

    import Foundation /* 方法 */ //实例方法 一定需要依附于对象 class MyPoint { var x: Double = 0.0 var y: Double = 0.0 ...

  5. java学习:AWT组件和事件处理的笔记(1)--Frame

    1.java的抽象窗口工具包(AWT)中包含了许多类来支持GUI设计2.AWT由java的java.awt包提供3.再进行GUI编程时,要理解:容器类(Container),组件(component) ...

  6. interbase C++Builder 简单例子

    interbase C++Builder  的例子,网上找了半天也没找到合适的,下面是一般能搜索到的文章,现在整理下: 下面我以interbase―――C++Builder,介绍一个简单的例子(不过很 ...

  7. HDU 4082 Hou Yi's secret(暴力)

    直接6重循环就行了吧...判三角形相似直接从小到大枚举两向量夹角是否相等就行了.注意去重点跟三点共线就行了... #include<algorithm> #include<iostr ...

  8. Ubuntu下Eclipse搭建ARM开发环境

    第一步:安装JRE 和 Eclipse 详细步骤请参考:http://blog.csdn.net/ex_net/article/details/7251664 第二步:安装arm-linux-gcc ...

  9. http协言和web本质

    http协议和web本质 作为一个开发者,尤其是web开发人员,我想你有必要去了解这一系列的处理流程,在这期间,浏览器和服务器到底是如何打交道的?服务器又是如何处理的?浏览器又是如何将网页显示给用户的 ...

  10. uva10820 send a table (nlogn求1-n欧拉函数值模版

    //重点就是求1-n的欧拉函数啦,重点是nlogn求法的版 //大概过程类似于筛选法求素数 #include<cstdio> #include<iostream> #inclu ...