c# OpenXML WordprocessingDocumentType 在 TableCell

是否可以将 HTML 片段插入到使用 OpenXML 创建的 WordProcessingDocument 的 TableCell 中?


例如,当我使用:


public void WriteWordFile()

{

    var fileName = HttpContext.Current.Request.PhysicalApplicationPath + "/temp/" + HttpContext.Current.Session.SessionID + ".docx";

    using (var wordDocument = WordprocessingDocument.Create(fileName, WordprocessingDocumentType.Document, true))

    {

        var mainPart = wordDocument.AddMainDocumentPart();

        mainPart.Document = new Document();

        var body = mainPart.Document.AppendChild(new Body());

        var table = new Table();

        var tr = new TableRow();

        var tc = new TableCell();

        tc.Append(new Paragraph(new Run(new Text("1"))));

        tr.Append(tc);

        table.Append(tr);

        body.Append(table);

    }

Word 文档打印一个简单的“1”,没有预期的格式。


然而,我想做的是写:


public void WriteWordFile()

{

    var fileName = HttpContext.Current.Request.PhysicalApplicationPath + "/temp/" + HttpContext.Current.Session.SessionID + ".docx";

    using (var wordDocument = WordprocessingDocument.Create(fileName, WordprocessingDocumentType.Document, true))

    {

        var mainPart = wordDocument.AddMainDocumentPart();

        mainPart.Document = new Document();

        var body = mainPart.Document.AppendChild(new Body());

        var table = new Table();

        var tr = new TableRow();

        var tc = new TableCell();

        tc.Append(new Paragraph(new Run(new Text("<span style=\"bold\">1</span>"))));

        tr.Append(tc);

        table.Append(tr);

        body.Append(table);

    }

}

Word 文档打印 HTML 标记“ <span style="bold">1</span>”而不是粗体“ 1 ”。


米脂
浏览 114回答 1
1回答

潇潇雨雨

不,Word 不支持问题中所描述的内容。HTML 不是 Word 的本机格式 -需要转换器才能将 HTML 合并到 Word 内容中。在 UI 中,这是通过从文件粘贴或插入来完成的。在 Open XML 中,可以使用该altChunk方法将外部格式的内容“嵌入”到文档包中。当 Word 打开文档并遇到一个文件时,altChunk它会调用适当的转换器将其转换为本机 Word 内容 (Word Open XML);在此过程中,原始嵌入内容将被删除。但是,不能保证结果就是本机环境(在浏览器的 HTML 情况下)返回的结果。搜索“altChunk”应该会出现大量讨论、博客文章等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5