`

关于使用displaytag导出时的若干问题

阅读更多

问题:当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$
  }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics