好久没写博客了,最近是有点懒了。。。
最近项目遇到个问题,用poi导出excel,本地和测试服务器都没问题,线上所有的导出都不能用,排查过JKD版本和配置文件都没问题,百思不得其解,最终问了朋友考虑到可能是字体方面的问题,安装字体最终解决。
贴上报错
16:16:14 [http-nio-10003-exec-7] ERROR c.develop.common.utils.poi.ExcelUtil - 导出Excel异常0
java.lang.ArrayIndexOutOfBoundsException: 0at sun.font.CompositeFont.getSlotFont(CompositeFont.java:375)at sun.font.CompositeGlyphMapper.initMapper(CompositeGlyphMapper.java:81)at sun.font.CompositeGlyphMapper.<init>(CompositeGlyphMapper.java:62)at sun.font.CompositeFont.getMapper(CompositeFont.java:433)at sun.font.CompositeFont.canDisplay(CompositeFont.java:459)at java.awt.Font.canDisplayUpTo(Font.java:2063)at java.awt.font.TextLayout.singleFont(TextLayout.java:470)at java.awt.font.TextLayout.<init>(TextLayout.java:531)at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:273)at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:684)at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:676)at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:88)at com.develop.common.utils.poi.ExcelUtil.createSheet(ExcelUtil.java:835)at com.develop.common.utils.poi.ExcelUtil.exportExcel(ExcelUtil.java:281)at com.develop.common.utils.poi.ExcelUtil.exportExcel(ExcelUtil.java:256)
字体安装看这个链接,权限问题注意别忘记了 Linux安装字体