[CDR X5-X8] Excel данные ODBC в Corel теряют 0 после запятой

ginbbs

Участник
Топикстартер
Сообщения
5
Реакции
2
Приветствую! Не смог найти нигде решения данной проблемы, заранее приношу извинения, за то что позволяю себе отвлечь от дел насущных Великих мастеров данного многоуважаемого форума по такому пустячному поводу. Надеюсь на помощь.
При слиянии в Кореле отображаются данные в виде "0,2", а нужно, что бы было "0,20"

Скриншот 24-06-2021 170635.jpg


Есть данные в Эксель в виде ячеек числового значения с двумя знаками после запятой, например "7120,20"
В Корел при слиянии данные подставляются в виде "7120,2", то есть без нулей после запятой.
Похоже, что сам формат данных ODBC уже не имеет там нулей.
Корел данные втягивает в формате "Текст" и не дает возможность добавить регистров.
При втягивании в Word есть возможность указать разрядность через "####,00" нет ли такой фичи в Corel?
Бьюсь второй день, но все, что получилось сделать - это втянуть данные с нулями только в случае, если ячйка в Экслеле преобразована в текст и нули дописаны руками, если в ячейке результат вычислений по формуле (даже при исходных данных в формате "текст") это не работает.
 

AZ-597

👹
10 лет на форуме
Сообщения
578
Реакции
230
А принципиально именно Excel затаскивать?
Может просто экспортировать таблицу в .csv и затащить её в Corel?
В этом случае мы в .csv получает самый простейший текст и количество разрядов сохраняется.
При этом формулы в Excel сохранятся. Короче два отдельных файла у вас будет: "исходник" таблицы и версия под слияние.
.
 
Последнее редактирование:
  • Спасибо
Реакции: ginbbs

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
ну так гоните все данные текстом. В экселе есть функция Текст
К примеру
=Текст(Сегодня();"ГГММДД")
Все колонки можете отдельно заворачивать в кавычки чтобы не считались числами.
=""""&Текст(Сегодня();"ГГММДД")&""""
или предварять амперсандом
="'"&Текст(Сегодня();"ГГММДД")
вобщем развлекайтесь, или затяните в акцесс, там можно более вменяемо с типами данных играться.
Либо делайте первую строчку однозначно с текстовыми данными, не знаю какой подход у вас сработает.
 
  • Спасибо
Реакции: ginbbs

ginbbs

Участник
Топикстартер
Сообщения
5
Реакции
2
А принципиально именно Excel затаскивать?
Может просто экспортировать таблицу в .csv и затащить её в Corel?
В этом случае мы в .csv получает самый простейший текст и количество разрядов сохраняется.
При этом формулы в Excel сохранятся. Короче два отдельных файла у вас будет: "исходник" таблицы и версия под слияние.
.
Оставил данное решение на крайний случай, но похоже придется его и использовать (
 

ginbbs

Участник
Топикстартер
Сообщения
5
Реакции
2
ну так гоните все данные текстом. В экселе есть функция Текст
К примеру
=Текст(Сегодня();"ГГММДД")
Все колонки можете отдельно заворачивать в кавычки чтобы не считались числами.
=""""&Текст(Сегодня();"ГГММДД")&""""
или предварять амперсандом
="'"&Текст(Сегодня();"ГГММДД")
вобщем развлекайтесь, или затяните в акцесс, там можно более вменяемо с типами данных играться.
Либо делайте первую строчку однозначно с текстовыми данными, не знаю какой подход у вас сработает.
Никогда не работал с Access ) честно говоря надеялся, что есть простое решение или хотя бы костыль (на примере Вордовского) ведь достаточно часто приходится работать с данными, а они почему то не имеют настроек.
Может для разработчиков "0,0", "0,00", "0,0000" и "0" это одно и то же, но есть же стандарты. Камень разумеется в огород Экселя, Корел втягивает, что ему дают (хотя цифры в виде текста - тоже косяк)
 

AZ-597

👹
10 лет на форуме
Сообщения
578
Реакции
230
Камень разумеется в огород Экселя, Корел втягивает, что ему дают (хотя цифры в виде текста - тоже косяк)
Я предположу, что Корелу данные передаёт ODBC драйвер, выступая посредником с Экселем.
А в Экселе у вас всё верно. Я сейчас заметил, что в диспетчере как будто несколько драйверов для Excel (см. список на скрине).
Может быть они работают по-разному и какой-то умеет импортировать данные в неизменном виде?

Не по теме:
Я не могу проверить эту гипотезу ибо несоответствие архитектур — корел 64bit, ODBC 32bit. В общем вся эта штука не работает.
 

Вложения

  • 1624547659740.png
    1624547659740.png
    92.7 КБ · Просм.: 176
  • Спасибо
Реакции: ginbbs

Gadalka

R.I.P.
Сообщения
2 530
Реакции
869
вот это не поможет?

2021-06-24 18-21-51 Microsoft Excel - Книга2.png2021-06-24 18-19-00 Формат ячеек.png
 
  • Спасибо
Реакции: ginbbs и AZ-597

AZ-597

👹
10 лет на форуме
Сообщения
578
Реакции
230
вот тоже думал предложить вариант в колонке "C" с принуждением к нужному количеству знаков, но подумал что так всё в исходной таблице и есть)
а что за формула в колонке "D"?
 

ginbbs

Участник
Топикстартер
Сообщения
5
Реакции
2
Я предположу, что Корелу данные передаёт ODBC драйвер, выступая посредником с Экселем.
А в Экселе у вас всё верно. Я сейчас заметил, что в диспетчере как будто несколько драйверов для Excel (см. список на скрине).
Может быть они работают по-разному и какой-то умеет импортировать данные в неизменном виде?

Не по теме:
Я не могу проверить эту гипотезу ибо несоответствие архитектур — корел 64bit, ODBC 32bit. В общем вся эта штука не работает.
Сам драйвер все таки один, но пользовательских DNS на него можно выставить несколько, это удобно тем, что в Кореле будет сразу подхватываться нужная книга Экселя, экономит время.
Вполне возможно что обрезает нули сам кривой драйвер.

С установки ODBC 64bit и началась эта эпопея ))) а так бы наверное пользовался сохранением в txt, но нет решил все сделать "правильно" )))))
 
  • Спасибо
Реакции: AZ-597

splxgf

12 лет на форуме
Сообщения
7 744
Реакции
3 425
Может для разработчиков "0,0", "0,00", "0,0000" и "0" это одно и то же, но есть же стандарты.
да, стандарты есть, цифра это цифра, и не надо путать отображение в экселе "цифра + формат ячейки", с тем что передается драйверу odbc. Ему передается чистая цифра, а лишних нулей там нет.
 
  • Спасибо
Реакции: AZ-597

ginbbs

Участник
Топикстартер
Сообщения
5
Реакции
2
Благодарю всех за помощь! Проблема снята
Скриншот 24-06-2021 193257.jpg
Добавлен дополнительный лист в Экселе, с подстановкой значений из основного листа через функцию "ТЕКСТ", предложенную splxgf и Gadalka как оптимальное решение. Корел теперь берет правильные значения из этого доп. листа.
 
  • Спасибо
Реакции: AZ-597