我在 Excel 中有一行,我想将其转换为 C# 中的 ObserveableCollection 以用于绑定(bind)/事件目的,因此所有访问器类都知道它们正在从源 Excel 表获取最新数据。这将如何完成?
澄清:我使用的是 Excel 加载项项目,而不是工作簿项目,因此不确定 XMLMappedRange 控件是否是一个选项。
最佳答案
使用 VSTO,您有以下几种选择:
- 来自 Excel.Worksheet 类,您可以访问Worksheet.Change事件。
- 来自 NamedRange类,您可以访问NamedRange.Change事件(它使用您在另一条评论中提到的 Microsoft.Office.Interop.Excel.DocEvents_ChangeEventHandler 委托(delegate))。
- NamedRange 类还支持通过 DataBindings 进行简单的单向数据绑定(bind)。属性,其示例见讨论 How do I bind an array to a NamedRange 。
- 另一种可能性是 XmlMappedRange控件,它还支持数据绑定(bind)。
关于使用 NamedRange 和 XmlMappedRange 的良好入门可以在这里找到:The VSTO Programming Model 。使用 NamedRange 的不错的演练可以在 Visual Studio Tools for Office (VSTO) 2005 Guided Tour 中找到。 .
我希望这会有所帮助...
迈克
关于c# - 使用 C#/VSTO 监视 excel 2007 内的一系列单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1830726/