内容纲要
环境
- 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文件进行解析,输出每一行的数据,结果如下:
留言