好的,所以我有一个SmartGWT网络应用程序,我在列表网格中运行一些报告。
我使用listgrid.exportclientdata()按照示例使用Smartgwt内置导出导出到excel;
问题在于:
- 在本地运行时,一切正常,我可以打开XLSX文件并查看所有数据。
- 从服务器运行时,包含数据的列将被隐藏!如果我在Excel中手动执行“取消隐藏”操作,我可以看到列......
我的本地环境是Mac OSX,Mountain Lion(也曾尝试过),运行Sun的Java。 prod服务器是运行OpenJDK的Debian。
不确定这是否与它有关,我不知道如何解决它...在两种环境中在Tomcat6上运行我的webapp。
答案 0 :(得分:2)
对于其他人,搜索stackoverflow void以获取黑暗中的谜语答案:
这是由于某些字体在OpenJDK中不可用,没有任何错误记录在任何地方......
我也在我的Debian上切换到Sun的JDK,Excel文件现在打开并正常显示。
答案 1 :(得分:1)
面对与this POI Bug相关的Java Bug时也会发生这种情况。
如果将Font更改为除Calibri之外的其他内容或使用高于7u21的jre,则应解决此问题。
您还可以通过使用此类代码来缓解问题并避免列完全崩溃
sheet.autoSizeColumn(x);
if (sheet.getColumnWidth(x) == 0) {
// autosize failed use MIN_WIDTH
sheet.setColumnWidth(x, MIN_WIDTH);
}