POI自动调整列宽错误
祈雨的笔记
·
2018-12-23
·
via 祈雨的笔记
描述
POI组装Excel时,使用autoSizeColumn进行自动调整列宽。在Windows环境下输出正常,但是在Linux环境下输出的Excel的列宽错乱,如下图:

原因
Linux环境下JAVA不支持中文字体,导致使用POI的autoSizeColumn方法计算列宽时中文的字体宽度计算错误,最终显示列宽错乱。
Apache POI autoSizeColumn Resizes Incorrectly
解决
设置Excel的字体为微软雅黑,并将字体安装到Java中:将字体的.tff文件复制到JAVA_HOME/jre/lib/fonts目录下并重新运行应用程序。
1 2 3 4 5 6 7 8 9 10 11 12
| Workbook workbook = new XSSFWorkbook();
Font font = workbook.createFont(); font.setFontName("微软雅黑"); CellStyle cellStyle = workbook.createCellStyle(); cellStyle.setFont(font);
Sheet sheet = workbook.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("中文字体"); cell.setCellStyle(cellStyle);
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。