"Внешняя таблица не находится в ожидаемом формате" показывает эту ошибку, когда я пытаюсь заполнить excel в datatable .please help me .thanks заранее
Я пытаюсь прочитать excel и вставить его в базу данных.
Мой код таков
public string GetGridData(string parameters) { string conn = string.Empty; DataTable dtexcel = new DataTable(); object[] parameterVal = GetParamarray(parameters); string fileName = parameterVal[0].ToString(); fileName = System.Web.HttpContext.Current.Server.MapPath("Manual\\" + fileName); string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;"; //connStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0;HDR=NO';"; //for above excel 2007 string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0 Xml; HDR = YES; IMEX = 1'"; using (OleDbConnection con = new OleDbConnection(connectionString)) { try { FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); OleDbDataAdapter oleAdpt = new OleDbDataAdapter("select * from [Sheet1$]", con); //here we read data from sheet1 oleAdpt.Fill(dtexcel); //fill excel data into dataTable } catch (Exception ex) { } } return "1"; }
Что я уже пробовал:
Я хочу прочитать excel и заполнить его в datatable. Сервер 2012 года
Я использую строку подключения
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0 Xml; HDR = YES; IMEX = 1'";
Richard MacCutchan
Почему вы также открыли файл в FileStream? Это может вызвать проблемы, так как файл уже открыт. Вы также создаете две слегка отличающиеся строки подключения.
Maciej Los
Хорошая мысль, Ричард!
Maciej Los
А в чем твоя проблема?