docx4j / xlsx4j:创建简单的电子表格

时间:2017-03-03 17:32:19

标签: java excel docx xlsx docx4j

我想在docx4j / xlsx4j中创建一个简单的电子表格。它只包含字符串,不需要公式。该porpuse基本上是从CSV切换到XLSX 因此我在这里尝试了这个例子:https://github.com/plutext/docx4j/blob/master/src/samples/xlsx4j/org/xlsx4j/samples/CreateSimpleSpreadsheet.java 不幸的是它没有用。即使删除了已弃用的部分(http://pastebin.com/bUnJWmFD)。

Excel报告不可读的内容并建议修复。之后我收到错误:“EntfernteDatensnsätze:Zellinformationen von /xl/worksheets/sheet1.xml-Part”。它意味着“删除数据集:/xl/worksheets/sheet1.xml-Part中的Cellinformation”。

在第58行调用createCell时出现此错误(请参阅.Github,而不是pastebin)或使用cell.setV调用"Hello World"而不是"1234"

1 个答案:

答案 0 :(得分:2)

我认为你在这里提出两个问题:

  1. 生成的XLSX需要修复:这是cell2.setR中的拼写错误的结果,修复为https://github.com/plutext/docx4j/commit/7d04a65057ad61f5197fb9a98168fc654220f61f
  2. 用“Hello World”调用setV,你不应该这样做。每http://webapp.docx4java.org/OnlineDemo/ecma376/SpreadsheetML/v.html
  3.   

    此元素表示单元格中包含的值。如果是细胞   包含一个字符串,然后该值是共享字符串的索引   表,指向实际的字符串值。否则,值   细胞直接在这个元素中表达。 ..对于应用程序   不希望实现共享字符串表,'内联字符串'   可以用< is>表示。 < c>下的元素(代替   < V> < c>)下的元素,与字符串相同   在共享字符串表中表示。

    虽然我猜我们的setV方法可以检测到滥用行为并抛出异常或者做其他事情。

    现有的CreateSimpleSpreadsheet示例向您展示了如何设置内联字符串,因此您只需要测试输入是否为数字。