Как получить числовые значения из Excel, где формат ячейки Текст через OleDB в C # - PullRequest
0 голосов
/ 14 февраля 2019

Я читаю файл Excel в C # с помощью приведенного ниже кода:

DataTable retVal = new DataTable();
try
{
     DataTable excelDataTable = new DataTable();
     OleDbCommand command = new OleDbCommand(string.Format("SELECT {0} FROM [{1}]",
                columnNames,
                _sheetName), _fileConnection);

     //CommandText is like: "select col1,col2,col3,val1,val2,val3 from Excel2017w$"

     OleDbDataAdapter da = new OleDbDataAdapter(command);
     da.Fill(retVal);
}
catch(Exception ex) {...}

Это работает хорошо, за исключением одного случая: значения Value1 и Value2 остаются пустыми только для Row1, потому что форматконечная пользователь по какой-то причине для ячейки устанавливает значение «Текст» (возможно, проблема копирования и вставки), а для других - «Общее».Некоторые конечные пользователи не знают, как изменить тип формата ячейки.Вот почему я ищу способ получить числовые значения, где формат ячейки не будет иметь значения.

enter image description here

Буду признателен за любую помощь или совет.

Provider=Microsoft.ACE.OLEDB.12.0
...