问题:当export="list" 时不能到全部导出.
解决方法:
修改TableTag.java
doExport()
在 boolean exportFullList = this.properties.getExportFullList();
后添加以下代码:
if (exportFullList) {
this.tableModel.setRowListPage(this.tableModel.getRowListFull());
}
出现乱码的地方有三个地方,当导出中文列表名,中文表格数据和导出文件名时,会产生乱码现象。
解决方法:
更改配置文件displaytag.properties,使用displaytag-export-poi.jar包。更改export.excel.class=org.displaytag.export.ExcelView 为 export.excel.class=org.displaytag.excel.ExcelHssfView,这样可以解决中文表格数据的问题。对于中文列表名乱码的问题,必须更改org.displaytag.excel.ExcelHssfView源代码。具体如下:
原来:
HSSFCell cell = xlsRow.createCell((short) colNum++);
cell.setCellValue(columnHeader);
cell.setCellStyle(headerStyle);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
改为:
HSSFCell cell = xlsRow.createCell((short) colNum++);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(columnHeader);
cell.setCellStyle(headerStyle);
导出文件名:
TableTag.java
原来:
if (StringUtils.isNotEmpty(filename))
{
response.setHeader("Content-Disposition", //$NON-NLS-1$
"attachment; filename=\"" + filename + "\""); //$NON-NLS-1$ //$NON-NLS-2$
}
改为:
if (StringUtils.isNotEmpty(filename)) {
response
.setHeader(
"Content-Disposition", //$NON-NLS-1$
"attachment; filename=" + new String(filename.getBytes("gb2312"), ("ISO8859-1"))); //$NON-NLS-1$ //$NON-NLS-2$
}