iOS使用libxlsxwriter导出excel文件

使用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, 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");

单元格写入数据:

/*第一个参数是工作表
 第二个参数是行数(索引从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(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);

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uniapp 是一款跨平台的前端开发框架,可用于开发 Web、iOS 和 Android 应用。而 easyexcel 是一款基于 Java 的开源 Excel 处理框架,可用于读写 Excel 文件。因此,如果你想在 Uniapp 中导出 Excel 文件,可以通过调用后端 Java 代码来实现。 具体实现步骤如下: 1. 在 Uniapp 中编写前端页面,包括需要导出的数据和相应的导出按钮。 2. 在后端编写 Java 代码,使用 easyexcel 实现对数据的读写和导出。 3. 前端调用后端接口,将需要导出的数据传递给后端。 4. 后端将数据写入 Excel 文件,并将文件返回给前端。 以下是一个简单的示例: 前端代码: ```html <template> <div> <button @click="exportExcel">导出 Excel</button> </div> </template> <script> export default { methods: { exportExcel() { // 调用后端接口导出 Excel this.$axios.get('/exportExcel').then((response) => { // 下载 Excel 文件 const blob = new Blob([response.data], { type: 'application/vnd.ms-excel' }) const link = document.createElement('a') link.href = window.URL.createObjectURL(blob) link.download = 'data.xlsx' link.click() }) } } } </script> ``` 后端代码: ```java @RestController public class ExcelController { @GetMapping("/exportExcel") public ResponseEntity<byte[]> exportExcel() throws IOException { // 从数据库中获取需要导出的数据 List<User> userList = userService.getUserList(); // 写入 Excel 文件 ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); ExcelWriter excelWriter = EasyExcel.write(outputStream, User.class).build(); WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").build(); excelWriter.write(userList, writeSheet); excelWriter.finish(); // 返回 Excel 文件 HttpHeaders headers = new HttpHeaders(); headers.setContentDispositionFormData("attachment", "data.xlsx"); return new ResponseEntity<>(outputStream.toByteArray(), headers, HttpStatus.OK); } } ``` 这是一个简单的示例,你可以根据自己的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值