倚栏听风倚栏听风

不积跬步
无以至千里

Java 使用 POI 类库读写 Excel

一、添加依赖

    <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
    </dependencies>

二、读

  1. 新建一个 spring boot 项目,然后新建一个类,实现 CommandLineRunner 接口,以在启动的时候执行方法。
  2. 读文件
Workbook workbook = new XSSFWorkbook(excelFileName);
Sheet sheet = workbook.getSheet("每日统计");
for (Row row : sheet) {
    if (StringUtils.isBlank(leaveTimeStr)) continue;
        for (Cell cell : row) {
            // 业务逻辑
        }    
}

二、写

// 创建文件
Workbook workbook = new XSSFWorkbook();
Sheet sheet1 = workbook.createSheet("平时加班填写表");
Sheet sheet2 = workbook.createSheet("节假日加班填写表");

FileOutputStream stream = new FileOutputStream("d:/test.xlsx");
workbook.write(stream);
stream.flush();

// 设置表头样式,加边框
CellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.THIN);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);

// 设置背景颜色
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

// 设置单元格自动宽度,这里 * 16 / 10,是因为如果不这么做,对中文的支持不好
sheet.autoSizeColumn(i);
sheet.setColumnWidth(i, sheet.getColumnWidth(i) * 16 / 10);
本原创文章未经允许不得转载 | 当前页面:倚栏听风 » Java 使用 POI 类库读写 Excel

评论