| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Глюк при передаче чисел в Excel из Delphi |
| Автор: demoniqus 12.7.2011, 09:41 | ||
Есть код программы в Дельфи
Данная программа открывает текстовый файл Tomilino.txt и форму для заполнения Tomilino.xls Текстовый файл является набором команд в следующем формате: [диапазон ячеек];[требуемое действие];[дополнительные параметры, типа вводимого цвета, задаваемого выравнивания и т.д.] Проблема возникает в командах value и value2. Команда H2;value;1,065 (а также команда H2;value2;1,065) приводит к тому, что в ячейке устанавливается значение 1065 (т.е. в 1000 раз больше), а не 1,065. Пробовал в исходной форме сразу задавать числовой формат ячейки, пробовал ставить в разные ячейки такое значение - не помогает. Зато значение 1,07 (т.е. всего с двумя знаками после запятой в те же ячейки ставит без проблем). Вариант H2;formulaLocal;=1,065 работает адекватно и в ячейке ставится правильное значение. Десятичные разделители и разделители разрядов проверял и в Excel'е и в системе - все в полном порядке. Так и не удалось установить, почему происходит такое преобразование, которое по-видимому касается лишь чисел, у которых более двух знаков после запятой (кстати, я пробовал сразу в ячейке дать бОльшее количество знаков после запятой в исходной форме - тоже не помогло). Пробовал прерывать выполнение программы без закрытия текущей рабочей книги Excel и вводить в те же самые ячейки значение 1,065 вручную - никаких проблем. Проверял получаемое значение из текстового файла и в момент его передачи из переменной в Excel - никаких багов. Подскажите, в чем может быть проблема? |
| Автор: 14SatanA88 12.7.2011, 11:19 | ||
| действительно, 1065 получалось... вот так попробуй. у меня сработало
здесь сначала устанавливается текстовый формат ячеек, затем числовой (когда значения уже внесены) |
| Автор: Данкинг 12.7.2011, 12:14 |
| А не проще на листе текстовый формат задавать сразу? Или же нужен именно числовой? ЗЫ: Томилино - заколдованное место вообще: как туда не приезжаешь - постоянно дождь идёт, хотя вокруг сухо. |
| Автор: 14SatanA88 12.7.2011, 13:27 | ||
ну это я в общем виде набросал. я же не знаю чего топикстартер добивается конкретно |
| Автор: Данкинг 12.7.2011, 14:16 |
| 14SatanA88, Excel:=Unassigned ещё забыл. |
| Автор: 14SatanA88 12.7.2011, 14:48 | ||
ну да. реально забыл. потом процессы убивал) |
| Автор: Akella 12.7.2011, 16:44 |
а что, нельзя выложить только кусок проблемного кода? |
| Автор: 14SatanA88 13.7.2011, 13:37 | ||
по всей видимости, там весь код проблемный а так ты прав, акелла, сразу хер поймешь, в чем дело. |