web-applications - Displaytag 1.2 导出到 Excel:JAR 冲突:java.lang.NoSuchMethodError:'void org.apache.poi.hssf.usermodel.HSSFCell.setCellValue'
问题描述
在我的 Struts2 应用程序中,我使用Displaytag 1.2来导出Excel XLSX文件,使用提供的org.displaytag.export.excel.DefaultHssfExportView
实现。
我得到的错误是:
Caused by: java.lang.NoSuchMethodError: 'void org.apache.poi.hssf.usermodel.HSSFCell.setCellValue(org.apache.poi.hssf.usermodel.HSSFRichTextString)'
at org.displaytag.render.HssfTableWriter.writeHeaderFooter(HssfTableWriter.java:324)
at org.displaytag.render.HssfTableWriter.writeTableHeader(HssfTableWriter.java:151)
at org.displaytag.render.TableWriterTemplate.writeTable(TableWriterTemplate.java:125)
at org.displaytag.export.excel.DefaultHssfExportView.doExport(DefaultHssfExportView.java:49)
这是某种图书馆冲突setCellValue(HSSFRichTextString)
。详情如下:
displaytag.properties(注意我们正在导出 Excel)
export.xml=false
export.excel=true
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.csv=false
export.pdf=false
export.excel.filename=ets.xls
export.decorated=false
export.banner=<div id="export_banner"><b><i>Export options:</i></b> {0}</div>
export.banner.placement=both
Java App 中的库列表
关于 Displaytag
displaytag-1.2.jar
displaytag-export-poi-1.2.jar
poi-3.16.jar
sfl4j-api-1.7.12.jar
sfl4j-nop-1.6.1.jar
Struts、Spring、Commons等
commons-io-2.2.jar
commons-lang-2.4.jar
commons-lang3-3.2.jar
commons-logging-1.1.3.jar
commons-logging-api-1.1.jar
log4j-1.2.9.jar
org.springframework.aop-3.0.5.RELEASE.jar (+ asm, aspects, beans, context, core, web, web.struts)
struts2-core-2.3.37.jar (+ dojo, jquery, spring-plugin, tiles-plugin)
velocity-1.6.4.jar
tiles-api-2.2.2.jar (+ core, el, jsp, ognl, servlet)
解决方案
这个问题的解决方案是使用POI 3.2(文件:poi-3.2-FINAL.jar)。我使用的是 3.16,不得不降级。
这是另一个关于必须使用这个特定的旧 POI 版本的线程: https ://stackoverflow.com/a/23538224/1005607
推荐阅读
- ios - 应用程序的文件在模拟器的“文件”应用程序中可见,但在设备上不可见
- java - 为什么基类的实例选择执行父构造函数的基方法?
- python - Selenium Web Scraping find_element_by_xpath 错误
- c# - HtmlAgilityPack - 如何将数据添加到数组?
- javascript - 如何触发对表单中所有字段的聚焦
- javascript - 使用nodejs修改现有的json文件
- python - 你能把一个exe和一个python脚本一起编译吗?
- c++ - 为每个循环在不同的内存位置创建一个数组
- python - 用没有辅助 C 函数的 python 回调替换共享库中的现有函数指针
- python-3.x - 如何在函数中使用 vars() 来访问 Python 中的全局变量