c# OpenXML WordprocessingDocumentType 在 TableCell 中插入 HTML 片段
c# OpenXML WordprocessingDocumentType Insert HTML fragment in 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”。
不,Word 不支持问题中描述的内容。
HTML 不是 Word 的本机格式 - 需要 转换器 才能将 HTML 合并到 Word 内容中。
在 UI 中,这是通过从文件中粘贴或插入来完成的。
在打开XML中可以在文档包中使用外国格式的altChunk
method到"embed"内容。当 Word 打开文档并遇到 altChunk
时,它会调用适当的转换器将其转换为本机 Word 内容(Word Open XML);在此过程中,原始嵌入内容将被删除。但是,不能保证结果将是本机环境(在 HTML 浏览器的情况下)returns.
搜索 "altChunk" 应该会出现大量讨论、博客文章等。
是否可以将 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”。
不,Word 不支持问题中描述的内容。
HTML 不是 Word 的本机格式 - 需要 转换器 才能将 HTML 合并到 Word 内容中。
在 UI 中,这是通过从文件中粘贴或插入来完成的。
在打开XML中可以在文档包中使用外国格式的altChunk
method到"embed"内容。当 Word 打开文档并遇到 altChunk
时,它会调用适当的转换器将其转换为本机 Word 内容(Word Open XML);在此过程中,原始嵌入内容将被删除。但是,不能保证结果将是本机环境(在 HTML 浏览器的情况下)returns.
搜索 "altChunk" 应该会出现大量讨论、博客文章等。