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. YouComplete:vim自动补全插件

    在github上下载插件,按照README.md安装 1,ubuntu安装 vim插件管理:vundle插件安装同样按照 README.md 操作 2,user guide General Usage ...

  2. Nginx 变量漫谈(一)

    Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序.当然,是不是“图灵完全的”暂且不论,至少据我观察,它在设计上受 Perl 和 Bou ...

  3. MVC 后台DataTable 前台遍历

    /// <summary> /// 多级审批流展示 /// </summary> /// <returns></returns> public Acti ...

  4. 基于最大最小距离的分类数目上限K确定的聚类方法

    聚类是数据挖掘很重要的组成部分.而大多数聚类算法都需要事先确定分类数目K.而本文是在实际 情况下确定分类数目K的上限.进而对数据样本进行自动分类. 首先介绍下最大最小距离算法: 设样本集为X{x(1) ...

  5. flume【源码分析】分析Flume的拦截器

    h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; back ...

  6. 获取oracle sql语句中绑定变量值的方法

    在诊断 sql的性能问题时,我们有时候须要获取其绑定变量的实际值,然后将此实际值带入到sql语句其中,用原来的sql构成select语句(带where条件),实际的运行一下,看一下选择性怎样. 本文就 ...

  7. Angular初级入门

    1:jquery :库 -一般是封装了一些方法 -我们去调用他的这些方法分 2:angular:框架 -框架是提供了一些规则或者模式 -我们是根据这一种规则或者模式去写代码 -然后接下来就由angul ...

  8. Lucene的多线程访问原则和同步,锁机制

    本文介绍lucene多线程环境下的使用原则和commit.lock与write.lock实现的锁机制. 设计之初就是服务于多线程环境,大多数情况下索引会被不至一个线程访问.索引时一个关键资源.在对这样 ...

  9. 安卓开发之APK安装之后自动在桌面上创建快捷图标

    可以看到很多的APP在第一次运行之后就会弹出来一个Toast说什么快捷方式已创建,那么这个东西是怎么搞出来的呢 很简单就下面几句话,写在这儿以后好copy 先创建一个类 import android. ...

  10. VS2012JSON自动生成对应的类

    一.复制JSON数据如图 {Key:"aaaa",Value:"bbbb"} 二.点击以下操作