Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2012, 10:27   #1
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию Преобразовать текстовый столбец exсel в числовой

Программа записывает десятичные дроби и простые числа в таблицу exсel. Когда в ячейку попадает простое число, то и отображается оно как надо, в числовом формате. А если десятичное, то он его определяет как текст, а не число. Как принудительно ячейкам задать числовой формат?
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 28.02.2012, 10:30   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

пишите в ячейки тип Variant, в него можно вообще все запихать.

И что мешает IntToStr & StrToInt использовать?
Человек_Борща вне форума Ответить с цитированием
Старый 28.02.2012, 10:41   #3
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
пишите в ячейки тип Variant, в него можно вообще все запихать.

И что мешает IntToStr & StrToInt использовать?
Вы верно меня не поняли, цифры перед выгрузкой в excel хранятся TStringList, и так как они выгружаются в текстовые ячейки, то эти ячейки потом не получается сложить между собой и получить сумму. Я сейчас почитаю о типе Variant, но я сомневаюсь, что ячейки этого типа можно будет сложить. Почему к примеру такое число - 23,2 определяется как текст?
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 28.02.2012, 11:46   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте перед записью в ячейку принудительно установить формат ячейки как числовой.

p.s. вы не показали свой код, которым вы пишете в ячейки.
поэтому чисто абстрактный пример:
Код:
XLApp.WorkBooks[1].WorkSheets[1].Columns[n].NumberFormat := '0,00';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.02.2012, 12:31   #5
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
попробуйте перед записью в ячейку принудительно установить формат ячейки как числовой.

p.s. вы не показали свой код, которым вы пишете в ячейки.
поэтому чисто абстрактный пример:
Код:
XLApp.WorkBooks[1].WorkSheets[1].Columns[n].NumberFormat := '0,00';
Как я понимаю n:='A1:B1';? Сейчас попробую, записываю обычным методом по номеру ячейки.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 01.03.2012, 09:18   #6
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Пробовал вот так:
Код:
excel.WorkBooks[1].WorkSheets[1].Columns[12].NumberFormat := '000000,0';
И вот так пробовал:
Код:
excel.WorkBooks[1].WorkSheets[1].Cells[3, 12].NumberFormat := '000000,0';
Не получается, всё равно как текст. Может есть ещё какие варианты для решения данной проблемы?ё какие варианты для решения данной проблемы?
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Старый 01.03.2012, 09:47   #7
Tip.the.besT
------------------
Пользователь
 
Регистрация: 15.08.2011
Сообщений: 78
По умолчанию

Разобрался, всем кто столкнётся с такой проблемой, знайте:

Весь геморой заключался в том, что данные изначально вводятся в ручную и вводятся они следующим видом - 2222,2, но у делфи разделителем целых и десятых используется точка, а не запятая! Соответственно после того как он записывает это всё в ексель, он передаёт ему, что - это текст, а не число. После того как поправил файл где хранятся данные, и поменял все запятые на точки всё стало нормально.
C YBA}|{EH|/|EM Tip.the.besT
Tip.the.besT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо преобразовать текстовый файл в двоичный, Си klopa Помощь студентам 0 05.10.2011 20:51
преобразовать столбец maxillion Microsoft Office Excel 1 12.05.2010 16:33
Преобразовать текстовый файл в двоичный (C++) Ханако Сейсин Помощь студентам 2 02.04.2010 14:32
столбец преобразовать в строку 0mega Microsoft Office Excel 6 03.02.2010 07:29
Преобразовать текст в числовой olimpus Microsoft Office Excel 17 12.11.2008 07:58