【问题标题】:couldn't get/set checkbox value in Word document (.doc) with Apache POI无法使用 Apache POI 在 Word 文档 (.doc) 中获取/设置复选框值
【发布时间】:2016-01-22 15:51:12
【问题描述】:

我正在尝试使用 Apache POI 在 Word 文档 (.doc) 中获取/设置复选框值。

我在 poi.apache.org 上查看了 HWPFDocument API,但没有找到合适的... 也许有人有解决方案?

谢谢!

【问题讨论】:

    标签: java ms-word apache-poi


    【解决方案1】:

    很遗憾,目前 POI 不支持此功能。有效的是通过CharacterRun.getDropDownListValues()CharacterRun.getDropDownListDefaultItemIndex() 读出(未设置)下拉列表。

    不过,从技术上讲,这些下拉列表与复选框密切相关。因此,如果需要,将相应的功能添加到 POI 应该不会太难。您的入口点是一个NilPICFAndBinData 结构(由POI 中的this class 处理),它引导您到达一些FFData(映射到POI 中的this class)。在里面你会发现FFDataBits。这些最终包含一个iRes 值,该值编码该复选框的状态。 - 这与下拉列表的行为完全相同,只是 FFDataBits 的 iType 将是 iTypeChck 而不是 iTypeDrop 并且必须以稍微不同的方式解释.

    【讨论】:

    • 我们如何从 CharacterRun 对象中检索这个 NilPICFAndBinData,你能发布一个代码示例吗?
    • @teejay 以同样的方式,现有的两种下拉列表方法已经做到了。 IE。查看 POI 的来源。
    • OK 很容易发现这一点(在 CharacterRun.getDropDownListValues() 的源代码中)。现在您知道如何为较新的 .docx 格式执行类似的任务吗? FFData 在 xml 中仍然存在,但 Apache POI 似乎没有适合 XWPFDocument 的类。感谢您的意见。
    【解决方案2】:

    我遇到了同样的问题。必须编写一个 VBA 宏 来获取复选框的值,将其存储在可移植数据库中,然后从那里获取。

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 2015-07-25
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多