2

docDOCX ファイルから変数を削除しようとしています。ここに私が使用しているコードがありますが、何も削除されません...

これは完全なコードです:

class Program
    {
        static void Main(string[] args)
        {
            string filePath = "C:\\..\\..sample.docx";
            Remove removedocvars = new Remove();
            removedocvars.RemoveDocVariables(filePath);

        }
    }

//method to remove doc vars
  public void RemoveDocVariables(string fileName)
        {
            using (WordprocessingDocument doc = WordprocessingDocument.Open(fileName, true))
            {

                List<DocumentVariables> DocVarsToDelete = doc.MainDocumentPart.RootElement.Descendants<DocumentVariables>().ToList();
                foreach (DocumentVariables dc in DocVarsToDelete)
                {
                    dc.Remove();
                }
                doc.MainDocumentPart.Document.Save();
            }
        }
4

3 に答える 3

1

変数は settings.xml ファイルにあるため、MainDocumentPart.DocumentSettingsPart.Settings.Descendants<>() を使用する必要があります。

public void RemoveDocVariables(string fileName)
{
    using (var doc = WordprocessingDocument.Open(fileName, true))
    {
        doc.MainDocumentPart.DocumentSettingsPart.Settings.RemoveAllChildren<DocumentVariables>();
    }
}
于 2011-08-10T22:18:46.420 に答える
0

これがコードの範囲である場合、save メソッドの呼び出しが不足していませんか?

何かのようなもの:

    foreach (DocumentVariable dc in DocVarsToDelete)
    {
        dc.Remove();
    } 
    document.Save();
于 2010-12-02T21:43:59.160 に答える