前言
最近在用poi导出excel表格时出现一个比较奇怪的问题,在windows环境下,中文无法自适应,还有一个问题,在window环境下可以正常导出,但是部署在linux环境下,autoSizeColumn(i)方法会抛出异常,导致文件无法导出,在部署的时候把 sheet.autoSizeColumn(i);注释掉就可以正常下载,只是不能做到列宽自适应。
环境
springboot1.5.9 poi 3.8 windows环境 本文主要是针对windows环境下,支持列宽中文自适应,linux环境下不支持
解决方案
/**
* windows环境下支持中文自适应,linux环境下还未解决
*
* @param request
* @param response
* @return
* @throws ResException
* @throws IOException
*/
public String export(HttpServletRequest request, HttpServletResponse response) throws ResException, IOException {
if (!PrincipalAware.getRelatedType().equals(OrganizationType.FIRM.getValue())) {
throw new ResException("当前账户没有此权限");
}
List companies;
if (ClientType.SYSTEM.getValue().equals(PrincipalAware.getClientId())) {
//后台管理
companies = companyRepository.findAll();
} else {
List firmCompanyList = firmCompanyRepository.getByFirmId(PrincipalAware.getRelatedId());
List companyIds = firmCompanyList.stream().map(FirmCompany::getCompanyId).collect(Collectors.toList());
companies = companyRepository.findAllByIdInAndIsDeletedFalse(companyIds);
}
HSSFWorkbook wb = new HSSFWorkbook();//创建Excel文件
HSSFSheet sheet = wb.createSheet("企业信息表");
String sheetName = sheet.getSheetName();
wb.setSheetName(0, sheetName);
sheet.setDefaultRowHeight((short) (20 * 20));
CellStyle style = wb.createCellStyle();
HSSFFont font = wb.createFont();
font.
|