Страницы: 1
RSS
Выгрузка данных в Excel из внешней программы, Excek не правильно распознает тип данных в ячейки
 
Здравствуйте господа.
Есть dll написанная на Delphi (исходников у меня нет) которая открывает шаблон (обычный файл excel) и копирует туда данные. Схема примерно такая Delphi через Ole конектится к Excel 2000 (именно 2000 другая не подходит) и вставляет данные в ячейки. Проблема в том, что ячейки в которых находятся числа с плавающей запятой не распознаются как числа. Из-за этого не работают функции Excel (например СЧЕТЕСЛИ), которые ссылаются на эти ячейки. Причем эта самая dll на других машинах работает нормально. Там Excel правильно распознает числа. Я думал может дело в разделителях дробной и целой части но везде стоит запятая. Все настройки на других машинах одинаковы. Файл я открываю в Excel 2013 и Excel 2003 везде результат одинаков.
Может быть в ячейках присутствуют невидимые ссылки? Кто силен в этих вещах посмотрите пожалуйста. Файл прилагаю

На листе Data1 ячейка (R5C10) не распозналась Excel как число. Если ее перебить руками как число то все нормально. Сразу распознается правильно. И так со всеми ячейками с дробными числами.

С уважением, Андрей
Изменено: adz - 22.04.2015 18:35:09
 
Смотрите десятичный разделитель точка или запятая. Все буржуйские разработки десятичным знаком считают точку.
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest
Разделители я первым делом посмотрел. У меня есть текстовый файл который потом этой dll запихивается в Excel там запятая стоит. В настройках сиcтемы запятая стоит. Везде запятая. Однако Excel пофиг.
 
Тут скорее DLL пофиг, а не Excel.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, у меня тоже там строки, хотя десятичный разделитель и совпадает с моим. Но строки только там, где дробные числа.
 
Hugo
Дык я о том же. Я чего не понимаю. Функции ДЛСТР() возвращает длину сроки равную количество десятичных знаков + "запятая". Т.е как бы лишних символов нет (или ДЛСТР() не считает невидимые символы). Запятая стоит явно. Что за хрень происходит непонятно.
 
Умножьте на 1 через спец. вставку. Там даже число перебивать не надо, если дважды щелкнуть на ячейку и нажать ентер сразу распознается, как число, соответственно вряд ли там какие-либо лишние скрытые символы.
Изменено: Margarita - 22.04.2015 23:37:38
 
Ваша программа выгружает в ячейку не число, а строку. И так оно там и сидит.
Страницы: 1
Наверх