解决poi导出excel列宽自适应,autoSizeColumn(i)方法不支持中文、linux环境下报空指针的问题

您所在的位置:网站首页 invocationtargetexception空指针 解决poi导出excel列宽自适应,autoSizeColumn(i)方法不支持中文、linux环境下报空指针的问题

解决poi导出excel列宽自适应,autoSizeColumn(i)方法不支持中文、linux环境下报空指针的问题

2023-12-15 08:29| 来源: 网络整理| 查看: 265

前言

最近在用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.


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3