iOS使用libxlsxwriter导出excel文件
2023-09-11 14:14:25 时间
使用cocoapods
导入libxlsxwriter
,导入头文件:
pod libxlsxwriter
生成xlsx
创建表格workbook
,和工作表worksheet
:
lxw_workbook *workbook = workbook_new([path UTF8String]);// 创建新xlsx文件,路径需要转成c字符串
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);// 创建sheet
保存生成文件:
workbook_close(workbook);
设置列宽:
// 设置列宽
/* 五个参数分别是:
worksheet Pointer to a lxw_worksheet instance to be updated.
first_col The zero indexed first column.
last_col The zero indexed last column.
width The width of the column(s).
format A pointer to a Format instance or NULL.
从第first_col到last_col的列的宽度为width,索引从0开始 */
worksheet_set_column(worksheet, 0, 2, 20, NULL);
worksheet_set_column(worksheet, COLS("Name:Type"), 5, NULL);
单元格属性设置:
设置单元格格式使用lxw_format
,可以设置字体、颜色、对齐方式、边框等等所有属性。具体属性可阅读参考格式文档。
- 新建单元格格式对象:
lxw_format *format = workbook_add_format(workbook);
- 字体设置:
format_set_bold(format);// 加粗
format_set_font_color(format, LXW_COLOR_RED);//颜色
- 设置对齐方式,所有对齐参数设置参阅:format_set_align
format_set_align(format, LXW_ALIGN_CENTER);// 水平居中
format_set_align(format, LXW_ALIGN_VERTICAL_CENTER);//垂直居中
- 设置边框,所有边框设置参阅:format_set_border
format_set_border(format, LXW_BORDER_MEDIUM);// 边框(四周):中宽边框
format_set_right(format, LXW_BORDER_DOUBLE);// 右边框:双线边框
- 设置数字格式,所有数字格式设置参阅:format_set_num_format
format_set_num_format(format, "¥#,##0.00");
单元格写入数据:
/*第一个参数是工作表
第二个参数是行数(索引从0开始)
第三个参数是列数(索引从0开始)
第四个参数是写入的内容
第五个参数是单元格样式,可为NULL。*/
// 写入文字
worksheet_write_string(worksheet, 1, 0, "Hello", format);
worksheet_write_string(worksheet, 1, 1, "World", NULL);
// 写入数字
worksheet_write_number(worksheet, 2, 0, 123.456, format);
worksheet_write_number(worksheet, 3, 0, 123.456, NULL);
- 数学公式,具体使用参阅:worksheet_write_formula
在(4,0)位置即A5上输出A3和A4的和:
worksheet_write_formula(worksheet, 4, 0, "=SUM(A3:A4)", format);
- 标题栏固定
worksheet_freeze_panes(worksheet, 1, 2);// 标题栏:前1行、前2列固定
完整代码:
lxw_workbook *workbook = workbook_new([path UTF8String]);// 创建新xlsx文件,路径需要转成c字符串
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);// 创建sheet
// 添加格式
lxw_format *format = workbook_add_format(workbook);
//设置格式
format_set_bold(format);
format_set_font_color(format, LXW_COLOR_RED);
format_set_align(format, LXW_ALIGN_CENTER);// 水平居中
format_set_align(format, LXW_ALIGN_VERTICAL_CENTER);//垂直居中
format_set_border(format, LXW_BORDER_MEDIUM);// 边框(四周):中宽边框
format_set_right(format, LXW_BORDER_DOUBLE);// 右边框:双线边框
format_set_num_format(format, "¥#,##0.00");
// 设置列宽
/* 五个参数分别是:
worksheet Pointer to a lxw_worksheet instance to be updated.
first_col The zero indexed first column.
last_col The zero indexed last column.
width The width of the column(s).
format A pointer to a Format instance or NULL.
从第first_col到last_col的列的宽度为width,索引从0开始 */
worksheet_set_column(worksheet, 0, 2, 20, NULL);
worksheet_set_column(worksheet, 3, 4, 30, format);
//写入数据
/*第一个参数是工作表
第二个参数是行数(索引从0开始)
第三个参数是列数(索引从0开始)
第四个参数是写入的内容
第五个参数是单元格样式,可为NULL。*/
worksheet_write_string(worksheet, 0, 0, "Name", NULL);
worksheet_write_string(worksheet, 0, 1, "Type", NULL);
worksheet_write_string(worksheet, 0, 2, "City", NULL);
worksheet_write_string(worksheet, 0, 3, "Address", NULL);
worksheet_write_string(worksheet, 0, 4, "Mobile", NULL);
for (int i = 0; i < models.count; i ++) {
PoiResultModel *model = models[i];
worksheet_write_string(worksheet, i+1, 0, model.name.UTF8String, NULL);
worksheet_write_string(worksheet, i+1, 1, model.type.UTF8String, NULL);
worksheet_write_string(worksheet, i+1, 2, model.city.UTF8String, NULL);
worksheet_write_string(worksheet, i+1, 3, model.address.UTF8String, NULL);
worksheet_write_string(worksheet, i+1, 4, model.tel.UTF8String, NULL);
}
//关闭,保存文件
workbook_close(workbook);
相关文章
- Objc将数据写入iOS真机的plist文件中
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十)
- iOS工程中的info.plist文件的完整研究
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- IOS开发之支付功能概述
- iOS开发之网络编程--小文件下载
- iOS开发UI篇—ios应用数据存储方式(归档)
- iOS宏(自己使用,持续更新)
- 一步步教你上架iOS APP
- ios-deploy was not found
- 【学习总结】IOS系统和Android系统的区别
- 100个iOS开发面试题汇总
- excel怎么设置密码保护?Excel文件添加密码保护教程
- 在Windows电脑上调试安装在iOS设备上的SAP UI5应用
- uniapp小程序 安卓和ios时间兼容性问题解决方案demo(整理)
- iOS 网络 再学习
- ios swift 打印当前线程
- iOS wifi(socket)通讯
- ios 多线程
- 〖Python自动化办公篇⑫〗- Excel 文件自动化 - 读取 excel 数据
- iOS拉取SRS流媒体服务器的Rtc流
- (素材源代码) 猫猫学iOS 之UIDynamic重力、弹性碰撞吸附等现象牛逼Demo
- R语言批量读取写入Excel数据 r导出输出写入excel多个sheet 导出excel 导入 excel 读入excel 表格
- 浅谈iOS学习之路(转)
- iOS 内存管理