現在、C# を使用して、複数の Excel ファイルのカスタム属性を設定しています。Microsoft からインポートされた DSOFile として知られるライブラリを使用して、CustomProperties プロパティに書き込みます。私が直面している問題の 1 つは、Company や Year などのカスタム プロパティが既に書き込まれている Excel ファイルにコードが書き込もうとするたびに、COMException 例外がスローされ、ファイルのカスタム プロパティが既に存在することを示すことです。その名前のフィールド。正確なメッセージ: 「その名前のアイテムは既にコレクションに存在します」。ファイルに書き直すことができるように、コレクション内のそのアイテムを削除できるようにしたいと思います。たとえば、誤って間違った年をファイルの year 属性に追加した場合、そのフィールドをクリアして新しい値を書き込む機能が必要です。DSOFile クラスに、メタデータを削除するメソッドが見つかりませんでした。ファイルのプロパティウィンドウを使用せずに、ファイルからメタデータを「プログラムで」クリアする方法はありますか?
サンプルコード:
DSOFILE.OleDocumentProperties dso = new DSOFile.OleDocumentProperties();
dso.Open(@"c\temp\test.xls", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
//add metadata
dso.CustomProperties.Add("Company", "Sony");
dso.Save();
dso.Close(false);