:: Не фоксом единым
Excel округляет
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Есть программа на C#. С помощью OleDbConnection() данные считываются из Excel-евского файла в DataSet.


Затем из dtData извлекаются данные:

string summa = dtData.Rows[1].row[1].ToString();

В Excel-евом файле в ячейке установлено значение с четырьмя знаками после запятой. А в формате ячейки стоит два знака после запятой. Например, физически в ячейке 1.9998, а отображается 2.00. В summa попадает "2.00". Если зайти в файл, и указать в формате ячейки "четыре знака после запятой", то в summa попадает "1.9998". Файлы генерирует другая система, и нет возможности на неё повлиять. Надо сделать так, что бы программой скачивалось реальное значение, а не округлённое. Как можно сделать, что бы каждый раз не заходить в файл и не менять вручную формат ячейки?



[i]Исправлено 2 раз(а). Последнее : S-type, 23.04.18 15:30
Ratings: 0 negative/0 positive
Re: Excel округляет
Гулин Федор

Сообщений: 4633
Откуда: Минск
Дата регистрации: 24.10.2002
макрос посмотреть что делает - когда ставит 4 знака
и прописать этот же код в исходник
Ratings: 0 negative/0 positive
Re: Excel округляет
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Установка IMEX=1 для драйвера. С одной стороны, она позволяет считать значения разного типа из ячеек экселя (intermixed). С другой стороны, считывается не "значение" (value) ячейки, а текстовое "представление" (text) ячейки.
Либо отключать IMEX, либо использовать более другой способ чтения. Microsoft.Office.Interop.Excel?
Ratings: 0 negative/0 positive
Re: Excel округляет
S-type
Автор

Сообщений: 2969
Дата регистрации: 24.04.2004
Коллеги, спасибо за помощь.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 8 (Гостей: 8)

© 2000-2024 Fox Club 
Яндекс.Метрика