将自定义数据存储在Excel AddIn C#中

时间:2016-07-07 09:00:37

标签: c# excel visual-studio add-in

我使用C#和Visual Studio 2015创建了一个Excel Addin。现在我想存储一些特定于工作表的数据。有没有办法将用户数据存储在将由xlsx文件中的Excel序列化的自定义Excel对象中?我不知道如何处理。

1 个答案:

答案 0 :(得分: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