【问题标题】:Export excel with more than 256 columns with primefaces导出超过 256 列和 primefaces 的 excel
【发布时间】:2018-08-07 12:52:05
【问题描述】:

我正在使用名为dataExporterprimefaces 组件将数据导出到xls 文件中。我的问题是导出的 excel 中的列不能超过 256 列,因为我收到此错误:

java.lang.IllegalArgumentException: Invalid column index (256).  Allowable column range for BIFF8 is (0..255) or ('A'..'IV')

我调查了一下,发现this - 所以看来我的错误来自dataExporter 可能使用org.apache.poi.hssf.usermodel 而不是较新的org.apache.poi.xssf.usermodel。我可以告诉这个primefaces 组件使用不同的实现吗?或者也许我可以使用不同的primefaces 组件?有什么想法吗?

【问题讨论】:

  • 所以看来我的错误来自 dataExporter 可能使用 org.apache.poi.hssf.usermodel 而不是较新的 org.apache.poi.xssf.usermodel 的事实 - 正确,HSSF 导出 XLS,最多支持 256 列。你检查this了吗?查看接受的答案及其评论
  • 更正你想使用 XLSX 而不是旧的 XLS 来拥有超过 65000 个单元格。自 6.0 以来,它一直在 PF 中,已使用此票修复:github.com/primefaces/primefaces/issues/1192

标签: java excel jsf primefaces apache-poi


【解决方案1】:

我的问题的解决方案确实如@BackSlash 和@Melloware 在他们的 cmets 中所建议的那样

  1. 将我的primefaces 版本升级到6.0
  2. 为导出器使用xlsxstream 类型

    <p:dataExporter type="xlsxstream" target="my-table" fileName="my-file" />

稍后编辑:xlsx 类型可能也是一个不错的选择,请参阅 this question 以了解 xlsxxlsxstream 之间的比较

【讨论】:

  • 他们说它是从 6.0 开始修复的,而不是升级到 6.0。所以你有点没有做出最好的选择...升级到 6.2...
  • 你是对的@Kukeltje,这不是最好的选择。长话短说,我目前的项目正在使用一个非常旧版本的 primefaces,甚至升级到 6.0 也导致其他一些行为不正常。我会尽快升级到 6.2
  • @AndreiRS 您还应该将此标记为“已接受”答案stackoverflow.com/help/accepted-answer
  • @Melloware 我会尽快这样做,但根据您的链接“您必须等待 48 小时才能接受您自己的答案”
  • 明白我忘记了 48 小时规则!
猜你喜欢
  • 2017-03-28
  • 2012-08-03
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多