xlslib库使用简记

news/2024/7/4 11:55:37

xlslib库使用简记

1 前言

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

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

2 安装使用

  • 官网: http://xlslib.sourceforge.net/
  • 下载: http://sourceforge.net/projects/xlslib/
  • 文档: https://github.com/LeslieZhu/books/blob/master/share/xlslibRefGuide.pdf

安装是三步:

$ ./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"); }

 

 

http://www.niftyadmin.cn/n/4446338.html

相关文章

数据库内核月报 - 2015 / 10-MySQL · 特性分析 · 跟踪Metadata lock

背景 MySQL 从5.5.3版本&#xff0c;对Metadata lock进行了调整&#xff0c;主要是MDL锁持有的周期从语句变成了事务&#xff0c; 其原因主要是解决两个问题&#xff1a; 问题1: 破坏事务隔离级别 在repeatable read的隔离级别下&#xff0c;多次的select语句执行过程中&#x…

深度强化学习——Dueling-DDQN(转)

https://blog.csdn.net/u013236946/article/details/73161586

DDOS学习笔记(《破坏之王-DDOS攻击与防范深度剖析》)

最近花了点时间把《破坏之王-DDOS攻击与防范深度剖析》看了一遍&#xff0c;坦白来说&#xff0c;这本书比较浅显&#xff0c;可以说是入门书&#xff0c;当然对于我这种对DDOS一知半解的人来说&#xff0c;也是一本不错的书&#xff0c;起码我学到了一些东西。DDOS是分布式拒绝…

Rainbow:整合DQN六种改进的深度强化学习方法!(转)

https://blog.csdn.net/weixin_34291004/article/details/87167379

Tensorflow 填坑日记(转)

https://blog.csdn.net/chenluliang/article/details/78813270

开发者必备:软件功能规格书的重要性

2019独角兽企业重金招聘Python工程师标准>>> 为什么要写软件功能规格书&#xff1f; 1&#xff0c;提高研发效率&#xff1a;能够在开始研发之前设计好软件&#xff0c;在设计的时候就暴露所有可能的逻辑问题可用性问题从而调整&#xff0c;而不是在研发的时候&…

Tensorflow 同时载入多个模型(转)

https://blog.csdn.net/jmh1996/article/details/78793650 https://blog.csdn.net/lc013/article/details/84202901 &#xff08;最后面的四个链接&#xff09;