2015-01-21 6 views
3

Мне нужно прочитать значения из Excel в DataSet с использованием OleDb Connection. Ниже мой код.Потеря точности при чтении значения из Excel

OleDbCommand excelCommand = new OleDbCommand(); 
OleDbDataAdapter excelDataAdapter = new OleDbDataAdapter(); 
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; 
Data Source=" + filelocation + @";Extended Properties=""Excel 8.0; IMEX=1;HDR=NO;"""; 
OleDbConnection excelConn = new OleDbConnection(connectionString); 
excelConn.Open(); 
excelCommand = new OleDbCommand("SELECT * FROM [Sheet1$]", excelConn); 
excelDataAdapter.SelectCommand = excelCommand; 
excelDataAdapter.Fill(ds); 

При чтении я теряю точность в своей камере.

т.д .: Excel Cell имеет значение -0.46256613817052

Мой DataSet имеет значение -0.4625661

Большинство моих клеток в листе Excel имеют тип Number.

Как это решить? Пожалуйста помоги.

+0

Какого типа столбца Excel? –

+0

В моем листе Excel есть все типы столбцов. Но большинство столбцов имеет тип Number. – Sarath

+0

Любое обновление по этому вопросу? – Sarath

ответ

1

В соответствии с этим ответом для Microsoft.Jet.OLEDB.4.0 rounding excel data?, если вам нужно получить точные значения, вам необходимо использовать визуальные студийные инструменты для офиса.

Я решил эту проблему с помощью Excel Data Reader/

Смежные вопросы