Ms word JavaApachePOI将新行添加到现有表中。Word文档
我正在尝试向MS Word文档中的现有表添加新行。我使用POI 3.10,hwpf库。但在执行此程序后,文件崩溃,MS Word会发出警告消息。所有内容看起来都很奇怪,而且没有格式化 样本如下:Ms word JavaApachePOI将新行添加到现有表中。Word文档,ms-word,apache-poi,hwpf,Ms Word,Apache Poi,Hwpf,我正在尝试向MS Word文档中的现有表添加新行。我使用POI 3.10,hwpf库。但在执行此程序后,文件崩溃,MS Word会发出警告消息。所有内容看起来都很奇怪,而且没有格式化 样本如下: InputStream fin = new FileInputStream(args[0]); POIFSFileSystem fs = new POIFSFileSystem(fin); HWPFDocument doc = new HWPFDocument(fs); Ran
InputStream fin = new FileInputStream(args[0]);
POIFSFileSystem fs = new POIFSFileSystem(fin);
HWPFDocument doc = new HWPFDocument(fs);
Range range = doc.getRange();
range.getParagraph(269).insertAfter("TEST");
doc.write(new FileOutputStream("SOME PATH"));
也许应该更新一些附加内容(例如SI、DSI),因为添加了新的CharacterRun?Word97/2000格式的文档文件仅在HWPF的简单变体中受支持。表已经很重要了。如果Word拒绝了您使用库创建/修改的文件,那么您可能运气不好 不久前,我为一位客户开发了一个基于Apache的HWPF代码库的定制库。该自定义库增加了对许多功能的支持,可以可靠地编写Word文件。把所有这些事情做好是一项艰巨的工作。因此,仅仅解决一些小问题是不可能的。你得花几个月的时间 您是否可以选择在Word中创建空行并用HWPF填充它们 编辑:可能的功能解决方案: 用标记预先填充表格:
+--------+-------------+------------------------------------+
| Rev 1 | 2014-01-01 | Created document |
+--------+-------------+------------------------------------+
| Rev 2 | 2014-01-02 | Corrected flow chart |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
确保标记足够长。(在HWPF中添加文本,以便表格中段落地址的更改可能会导致问题。)
要填充行,请执行以下操作:
如果您需要更多详细信息,请告诉我。发出的警告消息是什么?您好,消息听起来像:“此文档中的一个表已损坏。”感谢Rainer提供信息。这个程序的目的是更新现有文档中的修订历史,修订历史章节是一个表格。我需要用新信息更新这个表格。你有什么建议吗?嗨@Rainer,好主意,我需要和一位客户协商,这样对他合适吗。还有一个问题,有没有可能用这种方式来解决这个问题:嗨@Rainer,好主意,我需要和一位客户协商,他觉得可以吗。还有一个问题,有没有可能用这种方式来解决这个问题:1。创建空的.doc文件。2创建HPWFdocument实例,空文件作为输入。3.创建段落实例,从文件(源文件)复制文本和属性,直到到达插入新文本后的行。4.使用一些新文本和属性创建新段落实例。继续创建新实例和处理属性,直到到达文件末尾。6.使用内部方法“write(OutputStream)”保存HPWFdocument实例。有可能吗,你怎么想?感谢您的帮助:)我尝试了此解决方案,但在保存后,文档仍然崩溃。。。我使用character.replace()方法将标记替换为新文本。当我试图用MS Word打开此文件时,我收到这样的消息:“此错误消息可能因多种原因出现。文档可能已损坏或损坏。请使用“恢复文本转换器”或“打开并修复”功能。这两种功能均可从“打开”对话框中获得。”