Back to Devexpress

ExcelSchemaProvider Class

corelibraries-devexpress-dot-dataaccess-dot-excel-be2c1b76.md

latest4.0 KB
Original Source

ExcelSchemaProvider Class

A default implementation of the IExcelSchemaProvider service.

Namespace : DevExpress.DataAccess.Excel

Assembly : DevExpress.DataAccess.v25.2.dll

NuGet Package : DevExpress.DataAccess

Declaration

csharp
public class ExcelSchemaProvider :
    IExcelSchemaProvider
vb
Public Class ExcelSchemaProvider
    Implements IExcelSchemaProvider

Remarks

This service prepares schema for an ExcelDataSource using the following settings:

  • TestRowCount

  • ColumnBaseName

You can inherit from the ExcelSchemaProvider class to provide custom settings for Excel data source schema generation. The following code demonstrates how to do this:

csharp
public class CustomExcelSchemaProvider : DevExpress.DataAccess.Excel.ExcelSchemaProvider {
    public override int TestRowCount {
        get { return 5; }
    }
    public override int ColumnBaseName {
        get { return "MyColumn"; }
    }
}
vb
Public Class CustomExcelSchemaProvider
    Inherits DevExpress.DataAccess.Excel.ExcelSchemaProvider

    Public Overrides ReadOnly Property TestRowCount() As Integer
        Get
            Return 5
        End Get
    End Property
    Public Overrides ReadOnly Property ColumnBaseName() As Integer
        Get
            Return "MyColumn"
        End Get
    End Property
End Class

The following code demonstrates how to register a custom Excel schema provider:

csharp
using DevExpress.DataAccess.Excel;

private SqlDataSource BindToData() {
    var excelDataSource = new ExcelDataSource("Excel Data Source");
    excelDataSource.FileName = HostingEnvironment.MapPath(@"~/App_Data/ExcelDataSource.xlsx");
    var worksheetSettings = new ExcelWorksheetSettings("SalesPerson", "A1:L2000");
    excelDataSource.SourceOptions = new ExcelSourceOptions(worksheetSettings);

    var serviceContainer = (System.ComponentModel.Design.IServiceContainer)excelDataSource;
    serviceContainer.RemoveService(typeof(DevExpress.DataAccess.Excel.IExcelSchemaProvider));
    serviceContainer.AddService(typeof(DevExpress.DataAccess.Excel.IExcelSchemaProvider), new CustomExcelSchemaProvider());

    excelDataSource.Fill();
}
vb
Imports DevExpress.DataAccess.Excel

Private Function BindToData() As SqlDataSource
    Dim excelDataSource = New ExcelDataSource("Excel Data Source")
    excelDataSource.FileName = HostingEnvironment.MapPath("~/App_Data/ExcelDataSource.xlsx")
    Dim worksheetSettings = New ExcelWorksheetSettings("SalesPerson", "A1:L2000")
    excelDataSource.SourceOptions = New ExcelSourceOptions(worksheetSettings)

    Dim serviceContainer = DirectCast(excelDataSource, System.ComponentModel.Design.IServiceContainer)
    serviceContainer.RemoveService(GetType(DevExpress.DataAccess.Excel.IExcelSchemaProvider))
    serviceContainer.AddService(GetType(DevExpress.DataAccess.Excel.IExcelSchemaProvider), New CustomExcelSchemaProvider())

    excelDataSource.Fill()
End Function

Implements

IExcelSchemaProvider

Inheritance

Object ExcelSchemaProvider

See Also

ExcelSchemaProvider Members

IExcelSchemaProvider

DevExpress.DataAccess.Excel Namespace