|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Здравствуйте, Подскажите пожалуйста, сталкивался ли кто с проблемой форматов чисел при вставке в Эксель. Пробелама вот в чём: Пытаюсь вставить данные из DataTable. Вроде ничего сложного нет. Сначала привожу данные к типу object, потом вставляю данные с помощью функции m_objRange.set_Value(m_objOpt, objData); самое интересное что число 987,50637379 превращается в 9 875 063 737 900,000 Думал что накосячил где то с форматами, вроде нормально. Смотрел везде. Потом пробовал задавать формат при приведении к object - не помогло Пробовал задавать формат в самом Экселе перед вставкой - не помогло Но странным образом помогло следующее извращение: Перед вставкой к каждой цифре прибавляю какую-нибудь приставку например "ssss-" после вставки в эксель полной заменой убираю "ssss-" и все числа нормально выглядят. Но это извращение отнимает время, если таблица большая, то становиться очень чувствительно. Помогите пожалуйста разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2018, 10:17 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Смотрите деятичный разделитель и прочие региональные настройки. Просто из буфера вставляется нормально? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2018, 13:21 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
BlackEricСмотрите деятичный разделитель и прочие региональные настройки. Просто из буфера вставляется нормально? нормально. В экселе стоит галка использовать системный разделитель. Системный разделитель целой и дробной части - запятая Системный разделитель групп разрядов - пробел Смотрю что отображается значением в datatable рисует запятая. Или где то ещё есть засада? Т.е надо руками что-то прописывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2018, 16:49 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
saley, Если региональные настройки наши то в них должен быть разделитель дробной части - точка , по моему так . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2018, 17:54 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Excel не всегда и не везде использует текущие настройки. Один метод "русского" excel поймёт формулу СУММ, а другому подавай только всякие sum, if,... Непонятно в итоге число записывается как упакованный float/double/... или же как строка в системной локали? Формат ячейки правильно Excel'ем проставляется или там что-то специфическое и если выставить числовым, то будет правильное число? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.01.2018, 18:08 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Pu4koffExcel не всегда и не везде использует текущие настройки. Один метод "русского" excel поймёт формулу СУММ, а другому подавай только всякие sum, if,... Непонятно в итоге число записывается как упакованный float/double/... или же как строка в системной локали? Формат ячейки правильно Excel'ем проставляется или там что-то специфическое и если выставить числовым, то будет правильное число? формат ячейки выдаёт правильный "# ##0,000", числовой. Посмотрел как упаковывает эксель - тип double. пробовал принудительно перед загрузкой задавать числу формат double не получилось. эксель почему то из числа убирает запятую и переносит её в конец. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2018, 08:24 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
saleyСначала привожу данные к типу object, потом вставляю данные с помощью функции m_objRange.set_Value(m_objOpt, objData);приведи к double ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2018, 10:34 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
А, ты это и сделал в последнем сообщении.... Можешь тестовый проектик кинуть? - поэкспериментирую ... |
|||
:
Нравится:
Не нравится:
|
|||
19.01.2018, 11:20 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Shocker.Pro, вот набросал тестовый проект. у меня эксель 2013(разницы нет какая версия, будет работать криво на любой). Но кажется я понял в чём моя проблема. запутался с типами данных. Когда создаю datatable, все поля по умолчанию string(типа varchar нет). Даже если ради примера делаю так dt.Rows[0][0] = Convert.ToDouble(dGV[0, 0].Value); всё равно тип string и когда потом вставляю в эксель через object obj[0] = dt.Rows[0][0]; эксель начинает чудить если задавать в таблице жёстко тип поля Double, то пропадает текст. Тогда следующий вопрос, а можно без цикла получить массив значений Value типа object из DataGridView ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 09:41 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
если цель сделать аудит процессов, то для этого уже всё есть https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc775520(v=ws.10) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 12:13 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Roman Mejtesесли цель сделать аудит процессов, то для этого уже всё есть https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc775520(v=ws.10) Это наверное в предыдущий пост. У меня проблема с другим процессом. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 12:56 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
saleyRoman Mejtesесли цель сделать аудит процессов, то для этого уже всё есть https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc775520(v=ws.10) Это наверное в предыдущий пост. У меня проблема с другим процессом. сори, промахнулся темой =) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 13:51 |
|
Криво вставляет в EXCEL из DataTable
|
|||
---|---|---|---|
#18+
Как-то всё сложно Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
У меня 2017 офис. при исходном варианте первое число вставлялось нормально, а второе как строка. Код: c# 1. 2. 3.
ЗЫ. Если не планируются никакие специфические экселевские формулы и т.д. и т.п., лучше пользуйте ClosedXml или подобное, чтобы просто работали с файлом, без всех этих Interop штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.01.2018, 14:23 |
|
|
start [/forum/topic.php?fid=20&fpage=34&tid=1399524]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 136ms |
0 / 0 |