内容纲要

环境

  • Java
  • Spring框架
  • Gradle

概述

jxl是一个开源的Java Excel API,可以对Excel文档进行读写操作。比起POI来说功能弱一些,对图形和图标的支持非常有限。同时该API支持2003及之前版本的Excel,生成的Excel也是2000版本,较为适合处理旧版本Excel文档。

具体参考官方文档:https://jexcelapi.sourceforge.net/

准备

implementation 'net.sourceforge.jexcelapi:jxl:2.6'

使用示例

使用jxl写入并生成excel

@Test
void test_write_excel() throws IOException, WriteException {
  File file = new File("src/main/resources/test.xlsx");
  WritableWorkbook workbook = Workbook.createWorkbook(file);
  WritableSheet sheet = workbook.createSheet("测试表单", 0);
  List<String> title = List.of("序号", "姓名", "语文成绩", "数学成绩", "英语成绩");
  for (int i = 0; i < 5; i++) {
    sheet.addCell(new Label(i, 0, title.get(i)));
  }
  List<List<String>> data = List.of(
    List.of("1", "张三", "70", "95", "82"),
    List.of("2", "李四", "90", "85", "78"),
    List.of("3", "娜娜", "92", "88", "95")
  );
  for (int i = 1; i <= data.size(); i++) {
    for (int j = 0; j < 5; j ++) {
      sheet.addCell(new Label(j, i, data.get(i - 1).get(j)));
    }
  }
  workbook.write();
  workbook.close();
}

运行测试后,会生成一个text.xlsx的Excel文件,其中有一个名为【测试表单】的表单,里面就会有对应的数据。如下:

使用jxl解析Excel数据

@Test
void test_read_excel() throws IOException, BiffException {
  File file = new File("src/main/resources/test.xlsx");
  Workbook workbook = Workbook.getWorkbook(file);
  Sheet sheet = workbook.getSheet(0);
  int rowNumber = sheet.getRows();
  for (int i = 1; i < rowNumber; i++) {
    Cell[] cells = sheet.getRow(i);
    System.out.printf("%s同学的语文成绩为%s,数学成绩为%s,英语成绩为%s%n",
                      cells[1].getContents(),
                      cells[2].getContents(),
                      cells[3].getContents(),
                      cells[4].getContents());
  }
}

使用上述示例中生成的text.xlsx文件进行解析,输出每一行的数据,结果如下:

最后修改日期: 2024年1月21日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。