C# 添加带有html标记的字符串以打开xml word
我正在尝试将html格式的文本添加到打开的xml文本中。 如何应用文本中已有的格式 我将案文适用如下:C# 添加带有html标记的字符串以打开xml word,c#,html,openxml,openxml-sdk,C#,Html,Openxml,Openxml Sdk,我正在尝试将html格式的文本添加到打开的xml文本中。 如何应用文本中已有的格式 我将案文适用如下: TextElement.Text = formattedString; <p>test<br/>test2<ul><li>item1</li><li>item2<li2></p> 其中FormattedString包含以下内容: TextElement.Text = formattedStrin
TextElement.Text = formattedString;
<p>test<br/>test2<ul><li>item1</li><li>item2<li2></p>
其中FormattedString包含以下内容:
TextElement.Text = formattedString;
<p>test<br/>test2<ul><li>item1</li><li>item2<li2></p>
测试
test2- 项目1
- 项目2
目前,它只是简单地将文本与标记一起插入word文档中。
如何告诉OpenXMLSDK以正确的格式添加字符串 您需要创建一个包含HTML的,然后需要向文档中添加一个,并为其提供AlternativeFormatImportPart
的id
下面的代码从头开始创建一个包含HTML的文件。请注意,HTML片段似乎不受支持,因此我在HTML片段中添加了
标记
using (var document = WordprocessingDocument.Create(filename, WordprocessingDocumentType.Document))
{
document.AddMainDocumentPart();
document.MainDocumentPart.Document = new Document();
document.MainDocumentPart.Document.Body = new Body();
//create a memory stream with the HTML required
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes("<html><p>test<br/>test2<ul><li>item1</li><li>item2<li2></p><html>"));
//Create an alternative format import part on the MainDocumentPart
AlternativeFormatImportPart altformatImportPart = document.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html);
//Add the HTML data into the alternative format import part
altformatImportPart.FeedData(ms);
//create a new altChunk and link it to the id of the AlternativeFormatImportPart
AltChunk altChunk = new AltChunk();
altChunk.Id = document.MainDocumentPart.GetIdOfPart(altformatImportPart);
// add the altChunk to the document
document.MainDocumentPart.Document.Body.Append(altChunk);
document.Save();
}
使用(var document=WordprocessingDocument.Create(filename,WordprocessingDocumentType.document))
{
document.AddMainDocumentPart();
document.MainDocumentPart.document=新文档();
document.MainDocumentPart.document.Body=新正文();
//使用所需的HTML创建内存流
MemoryStream ms=新的MemoryStream(Encoding.UTF8.GetBytes(“test
test2- item1
- item2”);
//在MainDocumentPart上创建替代格式的导入部件
AlternativeFormatImportPart AlternativeFormatImportPart=document.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.Html);
//将HTML数据添加到替代格式导入部分
altformatImportPart.FeedData(毫秒);
//创建一个新的altChunk并将其链接到AlternativeFormatImportPart的id
AltChunk AltChunk=新的AltChunk();
altChunk.Id=document.MainDocumentPart.GetIdOfPart(altformatImportPart);
//将altChunk添加到文档中
document.maincumentpart.document.Body.Append(altChunk);
document.Save();
}
这将产生以下输出:
猜测:XML对其进行编码(转换五个保留的XML字符(>),是否有方法将文本类型指定为“html”?请查看“TextElement”的属性以找到答案。请查看下面的链接是否有用: