あなたが会社や著者のようなオフィスで使用されるデフォルトのプロパティを変更したい場合は、あなただけのSummaryProperties
オブジェクトを介してそれらを更新することができます
OleDocumentProperties dso = new DSOFile.OleDocumentProperties();
dso.Open(@"c:\temp\test.xls", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
//Update Company
dso.SummaryProperties.Company = "Hello World!";
dso.Save();
dso.Close(false);
。なお、 dboのCustomProperties
オブジェクトを介してSummaryProperties
オブジェクト経由でアクセスできるドキュメントの既定のプロパティを変更することはできません。 CustomProperties
は、Microsoft Officeによって導入されたプロパティではなく、ユーザーが使用する追加のプロパティを対象としています。カスタムプロパティを変更するには
、あなたはCustomProperties
あなたはforeachのを経由して反復処理することができ、コレクションであることを認識する必要があります。ですから、次の二つの方法を使用することができます:ここで
private static void DeleteProperty(CustomProperties properties, string propertyName)
{
foreach(CustomProperty property in properties)
{
if (string.Equals(property.Name, propertyName, StringComparison.InvariantCultureIgnoreCase))
{
property.Remove();
break;
}
}
}
private static void UpdateProperty(CustomProperties properties, string propertyName, string newValue)
{
bool propertyFound = false;
foreach (CustomProperty property in properties)
{
if (string.Equals(property.Name, propertyName, StringComparison.InvariantCultureIgnoreCase))
{
// Property found, change it
property.set_Value(newValue);
propertyFound = true;
break;
}
}
if(!propertyFound)
{
// The property with the given name was not found, so we have to add it
properties.Add(propertyName, newValue);
}
}
をUpdatePropertyの使用方法の一例です。
static void Main(string[] args)
{
OleDocumentProperties dso = new DSOFile.OleDocumentProperties();
dso.Open(@"c:\temp\test.xls", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
UpdateProperty(dso.CustomProperties, "Year", "2017");
dso.Save();
dso.Close(false);
}
は、既存のCustomPropertyの値を変更することが可能ですか? – StingyJack
この行を変更する 'dso.Open(" c \ temp \ test.xls "、false、DSOFile.dsoFileOpenOptions.dsoOptionDefault);'次へ 'dso.Open(@" c \ temp \ test.xls "、false 、DSOFile.dsoFileOpenOptions.dsoOptionDefault); ' – MethodMan
@StingyJackはい、それは私の質問です。 – Dwayne