private void GenerateSheets(string sheetName, ExcelColumn[] columnsToExcel, List <T> dataList, string[] headerNames) { if (_sheets != null) { foreach (var sheet in _sheets) { using (IXLWorksheet worksheet = _workbook.Worksheets.Add(sheet.Name)) { AddRegions(worksheet, sheet); } } } else { _sheets = new List <ExcelSheet>(); var excelSheet = new ExcelSheet(); var regions = new List <ExcelDataRegion>(); var region = new ExcelDataRegion(); region.ColumnsToExcel = columnsToExcel; region.HeaderNames = headerNames; region.DataList = new List <object>(); region.DataList.AddRange(dataList); region.Coordinates = new ExcelCoordinates(); region.Coordinates.DataColumnInitial = 1; region.Coordinates.DataRowInitial = 2; region.Coordinates.HeaderColumnInitial = 1; region.Coordinates.HeaderRowInitial = 1; regions.Add(region); excelSheet.Name = sheetName; excelSheet.Regions = regions; using (IXLWorksheet worksheet = _workbook.Worksheets.Add(sheetName)) { AddRegions(worksheet, excelSheet); } } }