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包,供需要的人使用。

猜你喜欢

转载自snowolf.iteye.com/blog/1688591