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);
}