`

DisplayTag POI支持——Excel文件导出中文乱码问题&包依赖问题-解决

 
阅读更多

DisplayTag,可能大部分人都用过,也知道他非常的方便。但也有人说,他有些臃肿,小问题很多。譬如今天遇到导出Excel文件内容的中文乱码问题,官方给出的方案是:

displaytag.properites文件中加入:

 

export.excel.class=org.displaytag.export.excel.ExcelHssfView

 

 同时加入依赖包:

 

  • displaytag-export-poi-1.2.jar
  • itext-asian-5.2.0.jar

 

貌似问题就这么解决了!

可是我还处理了Excel文件导入,尤其是Excel2007displaytag-export-poi-1.2.jar设计的时候,使用的poi-3.2-FINAL.jar。为了解决Excel2007,我用了poi-3.8.jar,这两版本的代码发生了微妙的变化:

poi-3.2-FINAL.jar

 

public class HSSFCell implements Cell {

 public void setCellValue(HSSFRichTextString value){

}

}
 

 

poi-3.8.jar

 

public class HSSFCell implements Cell {

 public void setCellValue(RichTextString value){

}

}
 

 

RichTextString是一个接口,最初的HSSFRichTextString并没有实现该接口,而后续的版本发生了这个变化。这就导致了displaytag-export-poi-1.2.jar在使用该方法时,找不到对应方法的问题。

 

解决这个问题,需要在依赖poi-3.8.jar重新编译该方法的调用:

 

public class ExcelHssfView implements BinaryExportView {
public void doExport(OutputStream out) throws JspException
    {
...
 cell.setCellValue(new HSSFRichTextString(columnHeader));
...
}
}

 就这么简单。用maven管理代码,对于这种高低版本的引用还是差了点,难免会遇到高版本不能向下兼容的问题。

附编译好的jar包,供需要的人使用。

 

4
0
分享到:
评论
1 楼 woshixushigang 2015-05-15  
正要找得解决方案,给力,

相关推荐

Global site tag (gtag.js) - Google Analytics