我有一个单词模板,它有多个相似的表格,一些段落与放在它们之前的那些表格相关联.根据数据量,我填充一些表,而其他表不是必需的,因此有段落.

我需要删除这些表和段落.正如您在图像中看到的,我需要删除表2及其段落Parahgraph
请帮我怎么做.我尝试使用document.removeBodyElement(pos),但它没有帮助.
int startIndex = 0;
int endIndex = 0;
startIndex = doc.getPosOfTable(doc.getTables().get(0));
startIndex++;
endIndex = doc.getPosOfTable(doc.getTables().get(1));
System.out.println("startIndex "+ startIndex);
System.out.println("endIndex "+ endIndex);
for(int i=startIndex; i<=endIndex; i++){
doc.removeBodyElement(i);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 Apache POI 处理 .docx 文件。
我有 .docx ,其中有1 行、1 列表。
XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
table.addRow(copiedRow);
Run Code Online (Sandbox Code Playgroud)
上面的代码成功复制了行,因此表现在有2 rows。
但是,我也想改变复制的行。
XWPFTable table = document.getTables().get(0);
XWPFTableRow copiedRow = table.getRow(0);
copiedRow.getTableCells().get(0).setText("SOME MODIFICATION HERE"); // <- setting some data
table.addRow(copiedRow);
Run Code Online (Sandbox Code Playgroud)
问题是......修改影响了两行。原来的第一个和刚刚添加的第二个都会受到影响。
我还尝试显式构造新行,如下所示:
copiedRow.getTableCells().get(0).setText("SOME MODIFICATION");
XWPFTableRow newRow = new XWPFTableRow(copiedRow.getCtRow(), table);
table.addRow(newRow);
Run Code Online (Sandbox Code Playgroud)
...但结果仍然相同:两行都被修改,而不仅仅是第二行。
我试图使示例尽可能简单。谢谢你的帮助!
我正在尝试POI将word文件转换为txt文件,但是当我使用org.apache.poi.xwpf.usermodel.XWPFDocument它时,它告诉我“无法解析xwpf”
我的pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>convert</groupId>
<artifactId>convertor</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.10-FINAL</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
当我跑步时,clean & package它给了我success。我该如何解决这个问题?
我在向 XWPFHeader(或页脚)添加一个新的、简单的 XWPFTable 时遇到了严重的问题。不幸的是,似乎只有一个人有同样的问题(https://bz.apache.org/bugzilla/show_bug.cgi?id=57366#c0)。
有没有人有办法实现这一目标?
XWPFDocument docx = (XWPFDocument) dockingObject;
CTSectPr sectPr = docx.getDocument().getBody().addNewSectPr();
XWPFHeaderFooterPolicy policy = new WPFHeaderFooterPolicy(docx, sectPr);
XWPFHeader header = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
// somthing like: header.createTable();
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
亲切的问候...
~丹尼尔
如何在 XWPFTable 中使用 Apache POI 将文本旋转 90 度?
我正在开发一个项目,我正在尝试创建一个自动报告生成器.我需要查明几个特定的段落,消除已经存在的表并插入一个新表.
到目前为止,一切都很完美.我甚至设法在我想要的地方插入一个示例文本,但是...尽管我做了什么,所有的表都放在文档的末尾.
public class InsertText {
public static void main(String[] args) throws FileNotFoundException, IOException,
InvalidFormatException {
try {
FileInputStream fis = new FileInputStream("c:\\Work\\current\\***.docx");
XWPFDocument document = new XWPFDocument(OPCPackage.open(fis));
fis.close();
System.out.println(document.getDocument().getBody().getPArray().length);
List<IBodyElement> elements = document.getBodyElements();
for (int n = 0; n < elements.size(); n++) {
IBodyElement element = elements.get(n);
if (element instanceof XWPFParagraph) {
XWPFParagraph p1 = (XWPFParagraph) element;
List<XWPFRun> runList = p1.getRuns();
StringBuilder sb = new StringBuilder();
for (XWPFRun run : runList)
sb.append(run.getText(0));
if (sb.toString().contains("????")) {
n++;
element = elements.get(n); …Run Code Online (Sandbox Code Playgroud) 我的 XWPFTableCell 需要一个边框,如下表所示。
**XXX Technologies**
Run Code Online (Sandbox Code Playgroud)
__________________
|姓名 |性别 |工资 |
__________________
拉吉女 24000
拉维男 06790