我正在创建一个程序,使用apache poi将信息写入excel文件。所有工作正常,直到我使用
sheet.autoSizeColumn(1);
添加此代码后。我正在获得例外
java.lang.Error: Probable fatal error:No fonts found
。
我研究了这个,发现它是因为没有fonts.if我评论上面的代码,每件事情都很好。我的问题是如何
sheet.autoSizeColumn
函数与字体有关。我还需要安装字体,我使用的是Ubuntu 12.04.2,tomcat 7和java-6-openjdk-amd64
任何帮助将不胜感激
答案 0 :(得分:4)
字符大小取决于所选的字体。例如,使用10pt Arial
和10pt Times New Roman
字体编写的相同短语的宽度是不同的。因此,要计算列的宽度,apache-poi应该知道您正在使用的字体。因此,您应该为要自动调整大小的每个单元格设置字体。这是一个例子:
CellStyle cellStyle = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeight(14.0);
//some additional font configuration
cellStyle.setFont(font);
//For each cell:
cell.setStyle(cellStyle)
请注意,您只需创建一次cellStyle
,然后将其应用于应具有此样式的每个单元格。
答案 1 :(得分:0)
在带有 zulu jdk 命令的 centos 上运行修复了我的问题。
yum install fontconfig -y