我们在基于 Java 的 Web 应用程序中使用Display 标签库。
除了使用显示标签库来显示列表之外,我们还使用它来将数据导出到工作正常的 Excel 表。
问题是数据被包裹在 Excel 工作表列中。
我需要单击单元格以展开单元格以查看完整数据。
有什么办法可以防止这种数据包装?Excel 工作表单元格可以根据其中数据的宽度自行调整吗?
我们在基于 Java 的 Web 应用程序中使用Display 标签库。
除了使用显示标签库来显示列表之外,我们还使用它来将数据导出到工作正常的 Excel 表。
问题是数据被包裹在 Excel 工作表列中。
我需要单击单元格以展开单元格以查看完整数据。
有什么办法可以防止这种数据包装?Excel 工作表单元格可以根据其中数据的宽度自行调整吗?
是的,如果您使用 POI 和 HSSF 来创建文档,则可以自动格式化单元格。如果不是,我建议您使用它,只需打开现有文档并自动调整您需要的列大小。
创建所有单元格后但在保存文档之前,您只需调用此方法来调整列的大小。例如,我在一张这样的表格上为我的所有列都这样做了:
//
// Create an instance of workbook and sheet
//
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
sheet.setAutobreaks(true);
.
.//code in which you create actual rows and cells HERE
.
//auto formating to fit the page
for(int i=0; i<repModel.getReportHeaders().length;i++){
sheet.autoSizeColumn((short) (i+1));
}
这里是使用 poi 启动的最佳链接: Busy Developers' Guide to HSSF and XSSF Features
看起来此博客条目讨论了 DisplayTag 的 excel 导出机制,并向您展示了如何修改 Excel 导出以绑定到自定义 HSSF 表编写器。
总结一下:
也就是说,我正在查看 DisplayTag 1.2 中的源代码,它似乎已经在扩展自动调整大小的列 (http://displaytag.sourceforge.net/1.2/displaytag-export-poi/xref/org/ displaytag/render/HssfTableWriter.html#347)。您使用的是 DisplayTag 1.2,还是使用的是早期版本?如果您使用的是早期版本,升级到 1.2 可能会解决您的问题。还是我误解了您所说的数据被“包装”的意思?
如果您使用 HSSF Poi 生成 excel 文档,那么您应该能够调整列宽: