当前位置:   article > 正文

CMake项目中使用libxlsxwriter库_如何安装libxlsxwriter库

如何安装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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

使用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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  2. 设置单元格的宽度和格式

    // 设置 startCol-endCol 列的宽度和格式
    int startCol=1,endCol=10;
    worksheet_set_column(worksheet, startCol, endCol, 20, format);
    
    • 1
    • 2
    • 3
  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");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
  5. 关闭workbook

    // 使用完后需要关闭
    workbook_close(this->workbook);
    
    • 1
    • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/423316
推荐阅读
相关标签
  

闽ICP备14008679号