剛開始學習VBA的時候,保存自定義資料用的隱藏作業表;后來學了VSTO,把自定義資料保存到XML檔案中;最近繼續深入學習,發現可以直接在xlsx檔案中保存自定義資料,這里就列出使用方法,
除了以上幾種保存方式,還可以保存為JSON格式,或者直接在xlsx檔案中寫入xml,各種方式都有適合的應用場景,應該根據應用場景選擇合適的技術,
直接存盤到檔案使用的是CustomDocumentProperties屬性,Excel參考檔案鏈接:https://docs.microsoft.com/zh-cn/office/vba/api/excel.workbook.customdocumentproperties
以下是C# 代碼
/// <summary>
/// 寫入自定義字串
/// </summary>
/// <param name="WBK">作業簿</param>
/// <param name="ValueStr">對應值</param>
/// <param name="NameStr">名稱</param>
public void WriteDocumentProperties(Excel.Workbook WBK,string ValueStr,string NameStr)
{
Microsoft.Office.Core.DocumentProperties properties;
properties = (Microsoft.Office.Core.DocumentProperties)WBK.CustomDocumentProperties;
if (ReadDocumentProperty(WBK,NameStr) != null)
{
properties[NameStr].Delete();
}
properties.Add(NameStr, false,Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString,ValueStr);
}
/// <summary>
/// 讀取自定義字串
/// </summary>
/// <param name="WBK">作業簿</param>
/// <param name="NameStr">名稱</param>
/// <returns>讀取不到時回傳null</returns>
public string ReadDocumentProperty(Excel.Workbook WBK,string NameStr)
{
Microsoft.Office.Core.DocumentProperties properties;
properties = (Microsoft.Office.Core.DocumentProperties)WBK.CustomDocumentProperties;
foreach (Microsoft.Office.Core.DocumentProperty prop in properties)
{
if (prop.Name == NameStr)
{
return prop.Value.ToString();
}
}
return null;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/13504.html
標籤:C#
