标签: xwpf

如何使用apache poi从java中删除包含docx数据的表和段落

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

my_img

我需要删除这些表和段落.正如您在图像中看到的,我需要删除表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)

docx paragraphs apache-poi xwpf

2
推荐指数
1
解决办法
3499
查看次数

复制和更改 .docx 表中的行

我正在使用 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)

...但结果仍然相同:两行都被修改,而不仅仅是第二行。

我试图使示例尽可能简单。谢谢你的帮助!

java docx apache-poi xwpf

2
推荐指数
1
解决办法
1441
查看次数

无法解决xwpf

我正在尝试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。我该如何解决这个问题?

java apache-poi maven xwpf

1
推荐指数
1
解决办法
4595
查看次数

如何将表格添加到页眉或页脚?

我在向 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)

任何帮助将不胜感激!

亲切的问候...

~丹尼尔

java apache-poi xwpf

1
推荐指数
1
解决办法
2849
查看次数

XWPFTable 中的文本方向

如何在 XWPFTable 中使用 Apache POI 将文本旋转 90 度?

所以它看起来像这样

java apache apache-poi xwpf

1
推荐指数
1
解决办法
668
查看次数

使用apache poi将表插入特定位置的word文档

我正在开发一个项目,我正在尝试创建一个自动报告生成器.我需要查明几个特定的​​段落,消除已经存在的表并插入一个新表.

到目前为止,一切都很完美.我甚至设法在我想要的地方插入一个示例文本,但是...尽管我做了什么,所有的表都放在文档的末尾.

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)

java ms-word apache-poi xwpf

0
推荐指数
1
解决办法
1万
查看次数

是否可以在 Apache POI XWPF 中设置默认表格样式?

除了一个单元格之外,还有什么方法可以设置整个表格的样式吗?

(前任)

在 Word 中,如图所示进行设置。我想知道是否有一种方法可以像单词表一样指定基本样式。

谢谢!

java apache-poi xwpf

0
推荐指数
1
解决办法
2689
查看次数

如何为 XWPFTableCell 添加边框

我的 XWPFTableCell 需要一个边框,如下表所示。

        **XXX Technologies**
Run Code Online (Sandbox Code Playgroud)

__________________
|姓名 |性别 |工资 |
__________________
拉吉女 24000
拉维男 06790

java docx apache-poi xwpf

-4
推荐指数
1
解决办法
5296
查看次数

标签 统计

apache-poi ×8

xwpf ×8

java ×7

docx ×3

apache ×1

maven ×1

ms-word ×1

paragraphs ×1