2011-08-22 4 views
1

일부 텍스트가있는 문서 자리 표시 자에 있습니다. 이 텍스트는 "<line>"으로 분리 된 여러 문자열로 구성됩니다. 이 텍스트를 각각 하나의 문자열 만 포함하는 단락 모음으로 대체하려면 어떻게해야합니까?문자열 배열에서 docx 단락 만들기


+0

문제 해결 =) – a1exis

답변

1

해결책을 찾았습니다. 문자열을 분리하고 각 문자열에 대해 서식이있는 단락을 만들면됩니다. 그렇지 않으면 요소가 OpenXmlUnknownElement로 만들어집니다.

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

      }     
관련 문제