C# 从字符串数组创建docx段落
我在文档中有一些文本占位符。此文本由多个字符串组成,由“C# 从字符串数组创建docx段落,c#,openxml-sdk,docx,C#,Openxml Sdk,Docx,我在文档中有一些文本占位符。此文本由多个字符串组成,由“”分隔。我如何用一组段落来替换这段文字,每个段落只包含一个字符串 我找到了解决办法。只需断开字符串并为每个字符串创建一个带有格式的段落,否则元素将被创建为OpenXmlUnknowneElement XDocument customXml = GenerateXmlForReport(report); String customXmlId = AddCustomXml(document, customXml);
”分隔。我如何用一组段落来替换这段文字,每个段落只包含一个字符串
我找到了解决办法。只需断开字符串并为每个字符串创建一个带有格式的段落,否则元素将被创建为OpenXmlUnknowneElement
XDocument customXml = GenerateXmlForReport(report);
String customXmlId = AddCustomXml(document, customXml);
DataBind(document, customXml, customXmlId);
document.MainDocumentPart.Document.Body.GetFirstChild<SdtBlock>().RemoveAllChildren();
string[] lines = Regex.Split(report.ReportTextBody, "</line>");
foreach (var line in lines)
{
Paragraph p = new Paragraph();
ParagraphProperties paragraphProperties1 = new ParagraphProperties();
ParagraphStyleId paragraphStyleId1 = new ParagraphStyleId() { Val = "BodyText" };
ParagraphMarkRunProperties paragraphMarkRunProperties1 = new ParagraphMarkRunProperties();
RunFonts runFonts1 = new RunFonts() { Ascii = "Arial", HighAnsi = "Arial" };
paragraphMarkRunProperties1.Append(runFonts1);
paragraphProperties1.Append(paragraphStyleId1);
paragraphProperties1.Append(paragraphMarkRunProperties1);
RunProperties runProperties1 = new RunProperties();
RunStyle runStyle1 = new RunStyle() { Val = "PlaceholderText" };
runProperties1.Append(runStyle1);
Run run = new Run();
Text txt = new Text(line);
run.Append(txt);
p.Append(run);
document.MainDocumentPart.Document.Body.GetFirstChild<SdtBlock>().Append(p);
}
XDocument customXml=GenerateXmlForReport(报告);
字符串customXmlId=AddCustomXml(文档,customXml);
数据绑定(文档、customXml、customXmlId);
document.MainDocumentPart.document.Body.GetFirstChild().RemoveAllChildren();
string[]lines=Regex.Split(report.ReportTextBody,“”);
foreach(行中的var行)
{
第p段=新的第()段;
ParagraphProperties paragraphProperties1=新的ParagraphProperties();
ParagraphStyleId ParagraphStyleId=new ParagraphStyleId(){Val=“BodyText”};
ParagraphMarkRunProperties paragraphMarkRunProperties1=新的ParagraphMarkRunProperties();
RunFonts runFonts1=新的RunFonts(){Ascii=“Arial”,HighAnsi=“Arial”};
段落markrunproperties1.Append(runFonts1);
段落属性1.附加(段落样式ID1);
段落属性1.附加(段落MarkRunProperties 1);
RunProperties runProperties1=新的RunProperties();
RunStyle runStyle1=新的RunStyle(){Val=“Placeholder Text”};
追加(runStyle1);
运行=新运行();
Text txt=新文本(行);
run.Append(txt);
p、 追加(运行);
document.MainDocumentPart.document.Body.GetFirstChild().Append(p);
}
我找到了解决办法。只需断开字符串并为每个字符串创建一个带有格式的段落,否则元素将被创建为OpenXmlUnknowneElement
XDocument customXml = GenerateXmlForReport(report);
String customXmlId = AddCustomXml(document, customXml);
DataBind(document, customXml, customXmlId);
document.MainDocumentPart.Document.Body.GetFirstChild<SdtBlock>().RemoveAllChildren();
string[] lines = Regex.Split(report.ReportTextBody, "</line>");
foreach (var line in lines)
{
Paragraph p = new Paragraph();
ParagraphProperties paragraphProperties1 = new ParagraphProperties();
ParagraphStyleId paragraphStyleId1 = new ParagraphStyleId() { Val = "BodyText" };
ParagraphMarkRunProperties paragraphMarkRunProperties1 = new ParagraphMarkRunProperties();
RunFonts runFonts1 = new RunFonts() { Ascii = "Arial", HighAnsi = "Arial" };
paragraphMarkRunProperties1.Append(runFonts1);
paragraphProperties1.Append(paragraphStyleId1);
paragraphProperties1.Append(paragraphMarkRunProperties1);
RunProperties runProperties1 = new RunProperties();
RunStyle runStyle1 = new RunStyle() { Val = "PlaceholderText" };
runProperties1.Append(runStyle1);
Run run = new Run();
Text txt = new Text(line);
run.Append(txt);
p.Append(run);
document.MainDocumentPart.Document.Body.GetFirstChild<SdtBlock>().Append(p);
}
XDocument customXml=GenerateXmlForReport(报告);
字符串customXmlId=AddCustomXml(文档,customXml);
数据绑定(文档、customXml、customXmlId);
document.MainDocumentPart.document.Body.GetFirstChild().RemoveAllChildren();
string[]lines=Regex.Split(report.ReportTextBody,“”);
foreach(行中的var行)
{
第p段=新的第()段;
ParagraphProperties paragraphProperties1=新的ParagraphProperties();
ParagraphStyleId ParagraphStyleId=new ParagraphStyleId(){Val=“BodyText”};
ParagraphMarkRunProperties paragraphMarkRunProperties1=新的ParagraphMarkRunProperties();
RunFonts runFonts1=新的RunFonts(){Ascii=“Arial”,HighAnsi=“Arial”};
段落markrunproperties1.Append(runFonts1);
段落属性1.附加(段落样式ID1);
段落属性1.附加(段落MarkRunProperties 1);
RunProperties runProperties1=新的RunProperties();
RunStyle runStyle1=新的RunStyle(){Val=“Placeholder Text”};
追加(runStyle1);
运行=新运行();
Text txt=新文本(行);
run.Append(txt);
p、 追加(运行);
document.MainDocumentPart.document.Body.GetFirstChild().Append(p);
}