1

いくつかのワードドキュメントを処理しようとしています

  1. それらとそれらをマージしますOpenXMLPowerTools.DocumentBuilder(WmlDocumentsを必要とし、出力します)
  2. 経由ですべてのコメントを削除OpenXMLRegex.Replace

これらの各ステップは、独立して正常に機能します。ただし、 をOpenXMLRegex必要とし、変更しIEnumerable<System.Xml.Linq.XElement>ます。問題は、この列挙型を にマッピングし直すときに発生しWmlDocumentます。

WmlDocument要素またはを設定することはできませんMainDocumentPartここに、a を変更する
例があります。ただし、それをいずれかにマップする方法が見つかりません。DocumentFormat.OpenXml.Packaging.WordProcessingDocumentWmlDocument

WmlDocument RemoveComments(WmlDocument doc)
{
    Regex regex = new Regex(@"/\*([^/\*])*\*/");
    string commentArtifact = "";

    List<XElement> matches = new List<XElement>();
    var docElements = doc.MainDocumentPart.Elements();
    OpenXmlRegex.Replace(docElements, regex, commentArtifact, null);

    //TODO: How to map back to WmlDocument
    return doc;
}

一貫性のあるさらなる処理のために、変更された WmlDocument を出力することを強くお勧めします。

OpenXmlPowerTools バージョン 4.5.3.2 を使用しています

4

0 に答える 0