@[TOC]C++操作表格xlnt库简介
xlnt库简介
xlnt是一个开源库,背景介绍请移步github:[link](https://github.com/tfussell/xlnt) ;
使用xlnt库可以便捷的对xlsx格式的表格进行创建、读写等操作,在使用C++实现的数据科学项目中,可以用来方便地将实验结果记录成表格。
安装
从源码安装(win10+cmake+VS2017)
a. 使用cmake打开 源码文件夹
b. 选择编译方式为 Release win64 (要匹配目标工程的配置) 和 本地VS版本
c. 设置输出工程目录
d. 配置-生成
e. 去输出目录打开 VS 工程
f. 编译 得到 source/Release 下的库文件 和 dll 文件
g. 将dll脚本文件复制到 C:\Windows\System32
h. 配置工程属性 或 使用的属性表(工程属性要设置继承属性表)
i. 设置包含目录 和 库目录
ii. 编译器-》输入-》附加依赖项 添加 xlnt.lib
使用简介
xlsx表格与xlnt库对象对应表
xlsx对象 | 含义 | xlnt对象 | 属性 |
---|---|---|---|
表格文件 | 对应一个 xlsx文件 | xlnt::workbook | 可以有多个表格页 |
表格 | 对应一个表格页 | Xlnt::worksheet | 表格标题在下边栏 |
行row | 从1开始的横行 | row_t | 包含行属性 |
列column | 从A开始的竖列 | column_t | 包含列属性 |
单元cell | 单元格 | Xlnt::cell | 内容和字体等属性 |
打开/创建 xlsx表格对象:
xlnt::workbook wb; //创建一个空的表格对象
wh.load(filepathname); // 加载一个表格文件到这个对象
创建sheet:
xlnt::worksheet ws = wb.active_sheet(); // 在表格对象中创建一个新的sheet对象,如果表格文件中本来就有一个没有命名的对象,会直接加载这个对象
给sheet命名
ws.title(sheetname);
打开sheet:
wb.sheet_by_title(sheetname); // sheet_by_index // sheet_by_id
实际进行读写操作主要操作的就是单元格cell
cell操作步骤:
○ 定位cell
§ ws.cell(xlnt::cell_reference(1, 1)); // 坐标定位
§ ws.(column_t column, row_t row); // 坐标定位
§ ws.cell("C3");// cell字符串名定位
○ 读/写cell
§ cell.value(); //写入cell
§ cell.to_string(); // 读出字符串
○ 给cell设置属性(字体属性)
§ xlnt::font note_font; //定义属性
□ .color(xlnt::color::red()); //设置颜色
□ .name("SimSun"); // 设置字体
□ .bold(true);//加粗
□ .size(13);//字体大小
§ cell.font(note_font);//设置字体属性配置
操作行列属性:
○ 行高
○ 列宽
§ xlnt::column_properties& mySetting = ws.column_properties(i);//获取原来的列属性
§ mySetting.width = value;// 设置列宽
小节
以上操作足以满足基本的表格操作需求🍻