首先对于EasyExcel来说,目前并未提供直接的方法 在填充数据后自动调整行高,所以需要通过其他途径来实现、本文使用 Apache POI 来实现设置自适应行高
1、添加POI依赖(Maven项目)
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- 请使用最新版本 -->
</dependency>
使用 Gradle:
implementation 'org.apache.poi:poi-ooxml:5.2.3'
2、示例代码
String oldPath = "C:\Users\Think\Desktop\test.xlsx";//模板文件夹路径
String createFilePath = "C:\Users\Think\Desktop\test1.xlsx";//生成文件文件夹路径
// 第一步:使用 EasyExcel 填充数据,生成文件;
EasyExcel.write(createFilePath).withTemplate(oldPath).sheet().doFill(reaultList);
// 第二步:使用 Apache POI 打开填充后的文件并调整行高
setRowHeights(createFilePath);
/**
* 设置自适应行高
*
* @param filePath 生成文件路径
*/
public static void setRowHeights(String filePath) {
try (
InputStream is = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(is);
OutputStream os = new FileOutputStream(filePath)
) {
Sheet sheet = workbook.getSheetAt(0); //获取工作表
for (int i = 0; i <= sheet.getLastRowNum(); i++) {
Row row = sheet.getRow(i);
if (row != null) {
// 设置行高为自动
row.setHeight((short) -1); // -1 表示自动行高
}
}
workbook.write(os);
} catch (Exception e) {
e.printStackTrace();
}
}