Caused by: java.lang.InternalError: Can't connect to X11 windows server using 'localhost:10.0' as the value of the DISPLAY variable
Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
Sheet sheet = workbook.getSheetAt(0);
sheet.autoSizeColumn(0); //调整第一列的宽度
sheet.autoSizeColumn(1); //调整第二列的宽度
请注意,sheet.autoSizeColumn()不计算公式单元格,公式单元格的宽度是根据缓存的公式结果计算的。如果您的工作簿有很多公式,那么在自动调整大小之前最好对它们进行评估。
警告
要计算列宽,Sheet.autoSizeColumn使用Java2D类,如果图形环境不可用,则该类将引发异常。如果没有图形环境,则必须告诉Java您正在以无头模式运行,并设置以下系统属性:java.awt.headless = true。您还应确保在工作簿中使用的字体可用于Java。
解决:
1. 注释sheet.autoSizeColumn()
2. 在tomcat的catalina.sh下添加JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
3. 在spring代码中设置系统属性java.awt.headless = true
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetObject" value="#{@systemProperties}" />
<property name="targetMethod" value="putAll" />
<property name="arguments">
<props>
<prop key="java.awt.headless">true</prop>
</props>
</property>
</bean>