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

docx4j / xlsx4j : create simple spreadsheet

我想在 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 报告不可读内容并建议修复。之后我得到错误:"Entfernte Datensätze: Zellinformationen von /xl/worksheets/sheet1.xml-Part"。意思是 "removed datasets: Cellinformation at /xl/worksheets/sheet1.xml-Part".

当在第 58 行调用 createCell(参见 Github,而不是 pastebin)或使用 "Hello World" 而不是 [=13] 调用 cell.setV 时,会发生此错误=]

我认为你在这里提出了 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

This element expresses the value contained in a cell. If the cell contains a string, then this value is an index into the shared string table, pointing to the actual string value. Otherwise, the value of the cell is expressed directly in this element. .. For applications not wanting to implement the shared string table, an 'inline string' may be expressed in an <is> element under <c> (instead of a <v> element under <c>),in the same way a string would be expressed in the shared string table.

尽管我猜想我们的 setV 方法可以检测到误用并抛出异常或执行其他操作之一。

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