使用EasyExcel导出数据时表头是竖的,可以通过以下方法解决:设置纵向表头属性: EasyExcel.write(file, Excel.class).head(竖向表头数据).build();使用自定义导出格式转换器ValueConverter,将水平表头值转换为竖向表头值: .registerConverter(new VerticalHeaderValueConverter())设置单元格旋转角度,将表头单元格旋转为90度: cellStyle.setRotation((short)

EasyExcel动态表头导出:表头是竖的解决办法
问题:使用EasyExcel导出数据时,表头是竖的,如何解决?
解决办法:
- 设置纵向表头属性
<code class="java">EasyExcel.write(file, Excel.class).head(竖向表头数据).build();</code>
- 使用ValueConverter自定义导出格式
<code class="java">import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.alibaba.excel.util.StyleUtil;
import org.apache.poi.ss.usermodel.*;
public class VerticalHeaderValueConverter implements Converter<String> {
@Override
public CellDataTypeEnum supportExcelType() {
return CellDataTypeEnum.STRING;
}
@Override
public String convertToExcelValue(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
// 将水平表头值转换为竖向表头值
return value.replaceAll(",", "\n");
}
@Override
public String convertFromExcelValue(String value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) {
return value;
}
}
</code>然后在导出代码中应用自定义转换器:
<code class="java">EasyExcel.write(file, Excel.class).head(竖向表头数据)
.registerConverter(new VerticalHeaderValueConverter())
.build();</code>- 设置单元格旋转角度
<code class="java">Workbook workbook = EasyExcel.write(file).build(); Sheet sheet = workbook.getSheetAt(0); // 设置第一列表头单元格旋转角度为90度 Cell cell = sheet.getRow(0).getCell(0); CellStyle cellStyle = cell.getCellStyle(); cellStyle.setRotation((short) 90); cell.setCellStyle(cellStyle);</code>
- 使用自定义模板
创建 Excel 模板,将表头设置成竖向,然后使用 EasyExcel 的模板导出功能:
<code class="java">EasyExcel.write(file, Excel.class).withTemplate("模板文件路径").build();</code>通过以上方法,即可解决 EasyExcel 动态表头导出时表头是竖的问题。











