Displaytag的ExcelView甚至有效吗?获取纯字符串的非 Excel 输出



根据Displaytag 1.2文档,ExportView用于输出Excel文件。

但实际上,源代码显示,整个ExcelModel结构只是一个由字符串组成的普通数据bean。使用ExcelView输出XLS的结果是以下纯文本输出(不是有效的XLS(,

"Agreement Category"    "Approving Official"    "Second Level Approving Official"   
"Regular"   "John Smith"    "Test"  

事实上,ExcelView模型包只是一组基于字符串的类,就像POJO bean、

org.displaytag.model.Column
org.displaytag.model.HeaderCell
...

我知道Displaytag还有一个完全不同的渲染器org.displaytag.export.excel.DefaultHssfExportView,它使用HSSF来编写XLS文件。该渲染器确实生成了一个有效的Excel文件。(它在JARdisplaytag-export-poi-1.2.JAR中。(

那么ExcelView的目的是什么呢?它是最终的渲染器,还是只是某种类型的界面渲染器?它是否假设有更多的实现?如果它实际上不输出Excel,只是一个字符串列表,为什么要称它为ExcelView?我们应该对所有Excel导出使用DefaultHssfExportView吗?

DisplayTag是一个糟糕且支持率很低的库,但以下是我所能找到的:

  1. 它误导性地称org.displaytag.export.ExcelView只是一个引号括起来的字符串渲染器(他们称之为"ascii格式,制表符分隔"(至少有一个用户认为它是CSV,但事实并非如此,因为没有逗号(CSV需要逗号——这里只有空格和引号:"test"、"test2"等(

  2. 要真正输出一个真正的Excel文件,您需要:

a(displaytag.properties中的export.excel.class=org.displaytag.export.excel.DefaultHssfExportView

b(带有:displaytag-eport-poi-1.2.jar(包含DefaultHssfExportView(,

c( 带有:poi-3.2-FINAL.jar这非常重要。您不能将更高的POI版本与DefaultHssfExportView一起使用。

这会输出一个好的Excel文件,但还有一个问题:仅限当前页面(而不是完整列表(。已经提出了各种想法来获得完整的列表,例如使用不同的名为org.displaytag.export.excel.ExcelHssfView的渲染器。这个其他的渲染器在display-export-poi-1.2.jar中也可用,但由于某种原因,我在上面得到了一个ClassDefNotFound,它无法使用。只有DefaultHssfExportView渲染器被找到、实例化并工作。

所以现在我得到了一个有效的Excel文件,但只有一个页面集,而不是完整集。渲染的XLS中没有完整集的解决方案。

我能够使用获得完整的二进制Excel导出

displaytag 1.2和displaytag导出poi 1.2

例如在build.gradle:中

implementation 'displaytag:displaytag:1.2'
implementation 'displaytag:displaytag-export-poi:1.2'

并在CCD_ 15中添加以下内容:

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

最新更新