本主题介绍电子表格文档 API 中数据绑定的主要概念。您可以将工作表中的特定单元格区域绑定到数据源,或者将单元格区域用作任何 DevExpress 或第三方数据感知控件(数据网格、图表控件等)的数据源。默认情况下,数据绑定是双向的。
工作表数据绑定是存储在 WorksheetDataBindingCollection 集合中的 WorksheetDataBinding 对象,可以使用 Worksheet.DataBindings 属性访问该对象。
SpreadSheet API 提供 WorksheetDataBindingCollection.BindToDataSource 方法重载,允许您将工作表中的特定单元格区域绑定到数据源。可以使用以下数据源类型:
重要
电子表格不支持分层数据源,即在对象列表之间设置了主从关系的数据源。
绑定对象应具有默认构造函数。否则,绑定的数据源将被视为只读数据源。如果工作表区域绑定到只读数据源,则该区域本身也是只读的,并且无法更新其数据。如果工作表区域绑定到允许更改通知的数据源(如具有 IBindingList 接口的数据源),则工作表区域的行数与数据记录数同步。当数据源插入或删除其记录时,工作表会自动插入或删除行。在绑定范围内插入或删除行时,将在数据源中插入或删除数据记录。
ExternalDataSourceOptions 类实例传递给 WorksheetDataBindingCollection.BindToDataSource 方法,并包含各种选项,这些选项允许您控制如何从外部数据源检索数据。
选择 | 描述 |
DataSourceOptionsBase.CellValueConverter |
允许您指定将数据转换为单元格值并返回的转换器。 |
ExternalDataSourceOptions.ImportHeaders |
检索数据字段名称,并将其显示在指定工作表区域的第一行中。 |
DataSourceOptionsBase.SkipHiddenColumns |
允许您在从数据源导入数据时跳过隐藏列。 |
DataSourceOptionsBase.SkipHiddenRows |
允许您在从数据源导入数据时跳过隐藏行。 |
若要创建绑定到数据源的工作表表,请使用 WorksheetDataBindingCollection.BindTableToDataSource 方法。它返回绑定到指定数据源的新创建的工作表表。该方法还创建一个 WorksheetTableDataBinding 对象,并将其添加到 Worksheet.DataBindings 集合中。
WorksheetDataBindingCollection.BindTableToDataSource 方法将本文档前面所述的 WorksheetDataBindingCollection.BindToDataSource 方法扩展到工作表表。它使用相同的参数,并返回一个对象,该对象是 WorksheetDataBinding 类的后代。
删除数据绑定后,该表将保留在充满数据的工作表中。删除表时,数据绑定也会被删除。
若要将单元格区域用作数据感知控件的数据源,请使用 WorksheetDataBindingCollection.CreateDataSource 方法或等效的 CellRange.GetDataSource 方法从所需的单元格区域创建数据源对象。创建的数据源对象实现 IBindingList、ITypedList 、ICancelAddNew 和 IDisposable 接口,可用于向/从支持上述接口的任何数据感知控件发送/接收数据。
如果 RangeDataSourceOptions.UseFirstRowAsHeader 为 false,且未指定 RangeDataSourceOptions.DataSourceColumnTypeDetector,则自动生成字段名称(创建的数据源中每个字段默认名称为“Column 0”、“Column 1”等),并根据数据源范围内对应列的第一个现有单元格的值和数字格式自动确定字段类型。
RangeDataSourceOptions 类继承自 DataSourceOptionsBase,并提供不同的选项,允许您控制如何从工作表中提取数据。
选择 | 描述 |
DataSourceOptionsBase.CellValueConverter | 允许您指定将单元格值转换为自定义对象的转换器,反之亦然。 |
DataSourceOptionsBase.SkipHiddenColumns | 允许您指定是否将隐藏列包含在生成的数据源中。 |
DataSourceOptionsBase.SkipHiddenRows | 允许您指定是否将隐藏行包含在生成的数据源中。 |
RangeDataSourceOptions.PreserveFormulas | 允许您限制数据源范围内的编辑公式。 |
RangeDataSourceOptions.EditingOptions | 允许您指定生成的数据源的编辑选项。 |
RangeDataSourceOptions.UseFirstRowAsHeader | 指定是否将数据源范围的第一行单元格中包含的文本用作列标题。 |
RangeDataSourceOptions.DataSourceColumnTypeDetector | 允许您显式指定生成的数据源中每一列的名称和类型。 |
RangeDataSourceOptions.CellValueComparer | 允许您指定用于对数据源列中的单元格值进行排序的比较器。 |
若要将工作表表用作数据感知控件的数据源,请使用 Table.GetDataSource 方法从所需的单元格区域创建数据源对象。
该方法及其参数类似于本文档前面所述的 CellRange.GetDataSource 方法。
以下示例说明了电子表格文档 API 的数据绑定功能。
如何:使用工作表表作为数据源
另见
如何:将数据导入工作表
如何:使用工作表表作为数据源