CMake项目中使用libxlsxwriter库

引入libxlsxwriter库

1.在github上下载源码:https://github.com/jmcnamara/libxlsxwriter

2.解压后放入项目中

在这里插入图片描述

  1. 编写CMakeLists.txt
    file(GLOB SRC "*.cpp")
    message(STATUS "SRC: ${SRC}")
    
    set(TARGET exportXlsx)
    
    # 将libxlsxwriter库作为子文件夹引入项目
    add_subdirectory(libxlsxwriter)
    
    # 设置xlsx的导出目录
    set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EMS_ROOT}/xlsx)
    message(STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
    
    # 添加可执行文件
    add_executable(${TARGET} ${SRC})
    
    set(XLSX_INCLUDE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}/libxlsxwriter/include/")
    message(STATUS "XLSX_INCLUDE_DIRS: ${XLSX_INCLUDE_DIRS}")
    
    # 链接库头文件目录
    target_include_directories(${TARGET} PUBLIC ${XLSX_INCLUDE_DIRS})
    
    # 链接库
    target_link_libraries(${TARGET} PUBLIC xlsxwriter)
    

使用libxlsxwriter库

  1. 新建xlsx文件,并设置格式

    lxw_workbook* workbook = workbook_new("test.xlsx");
    lxw_worksheet* worksheet = workbook_add_worksheet(workbook, NULL);
    lxw_format* format = workbook_add_format(workbook);
    // 设置水平对齐方式为居中
    format_set_align(format, LXW_ALIGN_CENTER);
    // 设置垂直对齐方式为居中
    format_set_align(format, LXW_ALIGN_VERTICAL_CENTER);
    
  2. 设置单元格的宽度和格式

    // 设置 startCol-endCol 列的宽度和格式
    int startCol=1,endCol=10;
    worksheet_set_column(worksheet, startCol, endCol, 20, format);
    
  3. 将数据写入单元格

    // 写入string类型到第0行第0列单元格
    std::string str = "Hello";
    worksheet_write_string(worksheet, 0, 0, str.c_str(), NULL);
    
    // 将数字类型写入单元格,支持整型和浮点型
    worksheet_write_number(worksheet, 2, 0, 123,     NULL);
    worksheet_write_number(worksheet, 3, 0, 123.456, NULL);
    
    // 单元格里设置图片
    worksheet_insert_image(worksheet, 1, 2, "logo.png");
    
  4. 合并单元格

    // 合并第0行 col-col2 列的单元格,设置值为"哈哈"
    worksheet_merge_range(worksheet, 0, col1, 0, col2, "哈哈", format);
    
    // 合并第0列的 row1 ~ row2 行的单元格,设为日期
    worksheet_merge_range(worksheet, row1, 0, row2, 0, "日期", this->format);
    
  5. 关闭workbook

    // 使用完后需要关闭
    workbook_close(this->workbook);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MC皮蛋侠客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值