using FastExcel; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExcelNet { public class ExcelReader { public List Get_ExcelSheets(string filename) { Worksheet sheet = new Worksheet(); var inputFile = new FileInfo(filename); FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(inputFile, true); var worksheets = new List(); for (int i = 0; i < fastExcel.Worksheets.Count(); i++) { worksheets.Add(fastExcel.Worksheets[i].Name); } return worksheets; } public void Excel_To_Datatabable(string filename, string sheet, bool includinheaders, ref System.Data.DataTable data) { Worksheet worksheet = null; data.Rows.Clear(); data.Columns.Clear(); var inputFile = new FileInfo(filename); using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(inputFile, true)) { // Read the rows using worksheet name // worksheet = fastExcel.Read(sheet); // Read the rows using the worksheet index // Worksheet indexes are start at 1 not 0 // This method is slightly faster to find the underlying file (so slight you probably wouldn't notice) worksheet = fastExcel.Read(sheet); try { var rows = worksheet.Rows.ToArray(); var cells = rows[0].Cells.ToArray(); if (includinheaders) { for (int j = 0; j < cells.Length; j++) { data.Columns.Add(cells[j].Value.ToString()); } } for (int i = 1; i < rows.Length; i++) { cells = rows[i].Cells.ToArray(); DataRow dr = data.NewRow(); for (int j = 0; j < cells.Length; j++) { dr[j] = cells[j].Value.ToString(); } data.Rows.Add(dr); } } catch { } } } } }