Author: fanningpj
Date: Fri Aug 18 08:48:18 2023
New Revision: 1911749
URL: http://svn.apache.org/viewvc?rev=1911749&view=rev
Log:
[bug-66988] Fully replace content of XWPFTableCell on setText. Thanks to Anton
Oellerer. This closes #503
Added:
poi/trunk/test-data/document/Bug66988.docx (with props)
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java?rev=1911749&r1=1911748&r2=1911749&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xwpf/usermodel/XWPFTableCell.java
Fri Aug 18 08:48:18 2023
@@ -421,8 +421,29 @@ public class XWPFTableCell implements IB
return text.toString();
}
+ /**
+ * Set the text of the cell to the passed string, replacing previous
content. Up until POI 5.2.3, this method appended the text, which is now done
+ * by {@link XWPFTableCell#appendText(String)}.
+ *
+ * @param text The text to replace the cell content with
+ */
public void setText(String text) {
XWPFParagraph par = paragraphs.isEmpty() ? addParagraph() :
paragraphs.get(0);
+ while (!par.runsIsEmpty()) {
+ par.removeRun(0);
+ }
+ par.createRun().setText(text);
+ }
+
+ /**
+ * Append the passed string to the cell content.
+ * This was the behaviour of {@link XWPFTableCell#setText(String)} before
POI 5.2.4
+ *
+ * @param text The text to append to the cells content.
+ * @since POI 5.2.4
+ */
+ public void appendText(String text) {
+ XWPFParagraph par = paragraphs.isEmpty() ? addParagraph() :
paragraphs.get(0);
par.createRun().setText(text);
}
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java?rev=1911749&r1=1911748&r2=1911749&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xwpf/usermodel/TestXWPFBugs.java
Fri Aug 18 08:48:18 2023
@@ -329,6 +329,17 @@ class TestXWPFBugs {
}
}
+ @Test
+ void bug66988() throws IOException {
+ try (XWPFDocument document =
XWPFTestDataSamples.openSampleDocument("Bug66988.docx")) {
+ XWPFTableCell cell =
document.getTableArray(0).getRow(0).getCell(0);
+ cell.appendText("World");
+ assertEquals("HelloWorld", cell.getText());
+ cell.setText("FooBar");
+ assertEquals("FooBar", cell.getText());
+ }
+ }
+
private static void addNumberingWithAbstractId(XWPFNumbering
documentNumbering, int id){
// create a numbering scheme
CTAbstractNum cTAbstractNum = CTAbstractNum.Factory.newInstance();
Added: poi/trunk/test-data/document/Bug66988.docx
URL:
http://svn.apache.org/viewvc/poi/trunk/test-data/document/Bug66988.docx?rev=1911749&view=auto
==============================================================================
Binary file - no diff available.
Propchange: poi/trunk/test-data/document/Bug66988.docx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Fri Aug 18 08:48:18 2023
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.wordprocessingml.document
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]