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