我正在获取一些数据,我正在生成一个自定义XML文件。我有一个带有RTF内容控件的Microsoft Office Word文档。我用这种方法将数据绑定到内容控件:
private void BindControl(WordprocessingDocument doc, string controlTitle, DocumentFormat.OpenXml.StringValue xPathValue)
{
DataBinding dataBinding = new DataBinding()
{
XPath = xPathValue,
StoreItemId = "{SomeID}"
};
SdtElement sdtElement = doc.MainDocumentPart.Document.Descendants<SdtElement>()
.Where(
element =>
element.SdtProperties.GetFirstChild<SdtAlias>() != null &&
element.SdtProperties.GetFirstChild<SdtAlias>().Val == controlTitle).FirstOrDefault();
if (sdtElement != null)
{
sdtElement.SdtProperties.Append(dataBinding);
}
}
但是,此方法仅插入文本而不进行格式化。
我想在输出文档Bold中创建一些thext,其他颜色不同,然后我必须创建超链接。
我尝试在XML文件中插入html格式,但结果却没有呈现,只是显示。
答案 0 :(得分:0)
您无法绑定富文本内容控件。
[MS-DOCX]修正了2.5.1.6 dataBinding:
如果父结构化文档标记不是富文本类型(如 在[ISO / IEC29500-1:2011]第17.5.2.26节)中规定 表现得像dataBinding(在[ISO / IEC29500-1:2011]中指定) 第17.5.2.6节)元素,否则数据存储在XML中 element将是一个由flattened组成的转义字符串 WordprocessingML文档表示格式化数据 结构化文档标记范围。
但是,您可以在纯文本控件的内容控件属性中包含运行属性(w:rPr)。