Search code examples
c#gembox-spreadsheet

How to import specific excel range to datagridview


I want to import an excel file to datagridview using GemBox. Im fairly new to GemBox and I can't seem to figure out how. I only want to import from cell "A9" to cell "H32".

var workbook = ExcelFile.Load(openFileDialog.FileName);

                DataGridViewConverter.ExportToDataGridView(workbook.Worksheets.ActiveWorksheet, this.dgvMain, new ExportToDataGridViewOptions() { ColumnHeaders = true });

Thanks!


Solution

  • Here is how you can import specific cells:

    var workbook = ExcelFile.Load(openFileDialog.FileName);
    var worksheet = workbook.Worksheets.ActiveWorksheet;
    
    var options = new ExportToDataGridViewOptions();
    options.ColumnHeaders = true;
    options.StartRow = 8;        // Start from row 9, index 8.
    options.NumberOfRows = 24;   // End with row 32.
    options.StartColumn = 0;     // start with column A, index 0.
    options.NumberOfColumns = 8; // End with column H.
    
    DataGridViewConverter.ExportToDataGridView(worksheet, this.dgvMain, options);
    

    Also here is another way how you can specify the same, by using the properties from CellRange object:

    var workbook = ExcelFile.Load(openFileDialog.FileName);
    var worksheet = workbook.Worksheets.ActiveWorksheet;
    var range = worksheet.Cells.GetSubrange("A9:H32");
    
    var options = new ExportToDataGridViewOptions();
    options.ColumnHeaders = true;
    options.StartRow = range.FirstRowIndex;
    options.NumberOfRows = range.Height;
    options.StartColumn = range.FirstColumnIndex;
    options.NumberOfColumns = range.Width;
    
    DataGridViewConverter.ExportToDataGridView(worksheet, this.dgvMain, options);