gpt4 book ai didi

java - 如何在特定书签中使用docx4j在word文档中创建表格而不覆盖word文档

转载 作者:行者123 更新时间:2023-11-30 04:16:24 26 4
gpt4 key购买 nike

我需要在特定书签的位置创建一个表。即我需要找到书签并插入表格。我怎样才能使用 docx4j 做到这一点提前致谢

<小时/>

抱歉 Jason,我是 Stackoverflow 的新手,所以我无法清楚地写出我的问题,这是我的情况和问题。

我按照您的建议和我的需要对该代码进行了更改,代码在这里

//loop through the bookmarks
for (CTBookmark bm : rt.getStarts()) {

// do we have data for this one?
String bmname =bm.getName();
// find the right bookmark (in this case i have only one bookmark so check if it is not null)
if (bmname!=null) {
String value = "some text for testing run";
//if (value==null) continue;

List<Object> theList = null;
//create bm list
theList = ((ContentAccessor)(bm.getParent())).getContent();

// I set the range as 1 (I assume this start range is to say where the start the table creating)
int rangeStart = 1;



WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage();

// create the table

Tbl table = factory.createTbl();

//add boards to the table
addBorders(table);

for(int rows = 0; rows<1;rows++)
{// create a row
Tr row = factory.createTr();
for(int colm = 0; colm<1;colm++)
{

// create a cell

Tc cell = factory.createTc();

// add the content to cell

cell.getContent().add(wordPackage.getMainDocumentPart()
.createParagraphOfText("cell"+colm));

// add the cell to row
row.getContent().add(cell);
}

// add the row to table

table.getContent().add(row);

// now add a run (to test whether run is working or not)
org.docx4j.wml.R run = factory.createR();
org.docx4j.wml.Text t = factory.createText();
run.getContent().add(t);
t.setValue(value);
//add table to list
theList.add(rangeStart, table);
//add run to list
//theList.add(rangeStart, run);
}

我不需要删除书签中的文本,所以我将其删除。我不知道出了什么问题,程序正在编译,但我无法打开单词 doc ,它显示“未知错误”。我测试写入一些字符串“值”,它在该书签和正在打开的文档中完美写入,但在表格的情况下则不然。请帮我提前致谢

最佳答案

您可以修改示例代码BookmarksReplaceWithText.java

就您而言:

  • 第 89 行:父级不会是 p,而是 body 或 tc。您可以删除该测试。
  • 第 128 行:您不想添加运行,而是插入表格

您可以使用TblFactory创建您的表,或 docx4j webapp to generate code来自示例 docx。

关于java - 如何在特定书签中使用docx4j在word文档中创建表格而不覆盖word文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18254279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com