Я читаю файл xls, используя этот код:
private static DataSet GetDataSetFromExcelFilePath(string filePath)
{
try
{
//Microsoft.Jet.OLEDB.4.0
using (OleDbConnection oleDbConnection = new
OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties=\"Excel 8.0;Persist Security Info=False;HDR=No;IMEX=1;\"", filePath)))
//OleDbConnection(string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}; Extended Properties=\"Excel 8.0;Persist Security Info=False;HDR=No;IMEX=1\"", filePath)))
// using (OleDbConnection oleDbConnection = new
// OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}; Extended Properties=\"Excel 8.0;Persist Security Info=False;HDR=No;IMEX=1\"", filePath)))
{
oleDbConnection.Open();
DataTable schema = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string sheetName = schema.Rows[0].Field<string>("TABLE_NAME");
var adapter = new OleDbDataAdapter(string.Format("SELECT * FROM [{0}]", sheetName), oleDbConnection);
var dataSet = new DataSet();
adapter.Fill(dataSet, Path.GetFileName(filePath));
return dataSet;
}
}
catch (Exception ex)
{
return null;
}
}
Обратите внимание, что в строке подключения установлен IMEX 1, поэтому он считывает все данные в виде строки, но у меня возникла странная проблема на компьютере моего клиента, гдеAM / PM или полный HH полностью игнорируются на время. Вот как набор данных заполняется приведенным выше кодом: https://gyazo.com/f45c29c42b5d1339ae1fe159be4caf76, где нет различий между AM и PM.
и вот как фактические данные находятся в Excel: https://gyazo.com/caf91c165eb08e3110fd2c3b7d4b8c51
Обратите внимание, что изменить формат или структуру Excel невозможно. Предпочтительно любые возможные изменения должны быть сделаны в коде.
Для справок, если кто-то хочет скачать файл Excel для тестирования здесь, это: https://www.dropbox.com/s/7824xh3ihlym9v9/test.xls?dl=0
Еще одна вещь, которую может решить проблемабудет реплицироваться при установке языка окна в Норвегии, как показано здесь: https://gyazo.com/d03b3056ed81e177076471a74058fdb7