簡體   English   中英

Word 無法使用表格打開 DOCX 文件

[英]Word cannot open DOCX file with a table

我正在嘗試使用 Open XML API 對 DOCX 文件運行郵件合並 - 只需用表格替換<w:t>元素(見下文)。 即使是使用以下代碼創建的最簡單的表格也會在打開文件時導致 Word 出錯。

如果我擺脫了該行(這樣我只有<w:tbl> / <w:tblGrid> / <w:GridCol> )。 沒有錯誤,但是我當然不能有任何數據。

誰能看到我做錯了什么?

Table table = new Table(new TableGrid(new GridColumn() { Width = "2000"}),
                        new TableRow(new TableCell(new Paragraph(new Run(new Text("test")))))
                                      );
TextNode.Parent.ReplaceChild<Text>(table, TextNode);

在此處輸入圖像描述

在此處輸入圖像描述

您不能將<w:t>替換為<w:tbl> 表格是一個塊級元素,因此您可以將其放置在您擁有段落 (<w:p>) 的相同位置。

換句話說,您可以將其作為以下之一的子元素放置:body、comment、customXml、docPartBody、endnote、footnote、ftr、hdr、sdtContent、tc 和 txbxContent。

所以,試試這樣的事情:

// TextNode (Text) -> Parent (Run) -> Parent (Paragraph)
var paragraph = TextNode.Parent.Parent as Paragraph;
paragraph.Parent.ReplaceChild(table, paragraph);

編輯:

如果父元素是<w:tc> ,則應在其末尾添加一個空段落:

// TextNode (Text) -> Parent (Run) -> Parent (Paragraph)
var paragraph = TextNode.Parent.Parent as Paragraph;

var parent = paragraph.Parent;
parent.ReplaceChild(table, paragraph);

if (parent is TableCell)
    parent.InsertAfter(new Paragraph(), table);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM