错误信息如下:java.lang.RuntimeException: java.io.IOException: 权限不够 at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:662) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:90) at com.alibaba.excel.util.WorkBookUtil.createSheet(WorkBookUtil.java:51) at com.alibaba.excel.context.WriteContext.currentSheet(WriteContext.java:112) at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:69) at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:78)

从异常栈中可以定位到是 SXSSFWorkbook.java 662 行抛出的异常

最粗暴的方式,

直接使用 chmod -R 777 /tmp/poifiles

或者是在服务启动的时候设置临时文件的路径为当前启动服务的账号有权限写入的路径,可以使用 System.setProperty(java.io.tmpdir, "xxxx") 来设置,也可以在启动时加 -Djava.io.tmpdir=xxxx来设置。