2016-07-07 14 views
1

C#とVisual Studio 2015でExcel Addinを作成しました。今はいくつかのシート固有のデータを保存したいと思います。 Excelでxlsxファイルにシリアル化されるカスタムExcelオブジェクトにユーザーデータを格納する方法はありますか?私はそれをどう対処するか分かりません。Excelでカスタムデータを保存するAddIn C#

答えて

2

あなたはワークシートレベルでのキー/値のペアを格納するためのワークシートのカスタムプロパティを使用することができます。

ストアに:

MyExcelSheet.CustomProperties.Add("MyKey", "MyValue"); 

読み取りと更新するには:

foreach (CustomProperty cp in MyExcelSheet.CustomProperties) 
{ 
    if (cp.Name == "MyKey") 
    { 
     cp.Value = "MyNewValue" 
    } 
} 

削除するには:

foreach (CustomProperty cp in MyExcelSheet.CustomProperties) 
{ 
    if (cp.Name == "MyKey") 
    { 
     cp.Delete(); 
    } 
} 

カスタムプロパティはExcelファイルに保存されますが、それらを変更してもブックは「ダーティ」とマークされません。したがって、あなたが保存されていないとして、ブックをマークする必要があります削除/ /更新を追加した後:彼らはそれを閉じた場合

Workbook wb = MyExcelSheet.Parent as Workbook; 
wb.Saved = false; 

は、これを行う他の変更が行われていない場合でも、ユーザーがブックを保存するように求めるメッセージが表示されていることを確認します。

他のアドインとVBAコードもカスタムプロパティにデータを格納している可能性があるので、適切な一意のキーを使用するようにしてください。

出典: https://msdn.microsoft.com/en-us/library/office/ff197822.aspx

関連する問題