Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с заданием строкового формата ячейки 
:(
    Опции темы
Pavelvp
Дата 6.2.2015, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.6.2013

Репутация: нет
Всего: нет



Доброго.
 Delphi XE2, Excel 2007.
 Коллеги бьюсь второй день и ничего понять не могу. Задача: экспортировать данные и чтобы эксель их автоматом в даты не преобразовывал решил ставить формат ячеек при экспорте в текстовый. Пишу так:

Код

    ExcelApp := CreateOleObject('Excel.Application');
    ExcelApp.WorkBooks.Add;
    ExcelApp.Workbooks[1].Sheets.Item[1].Cells[1,1].NumberFormat := '@';//вот так
    ExcelApp.Workbooks[1].Sheets.Item[1].Cells[1,1].NumberFormat :=  #64;//и так один результат



Формат ячейки при этом не меняется, в качестве формата у ячейки появляется просто число 64 и получается тип формата: все форматы. 
 При том если попробовать сделать числовой формат, всё нормально:
Код

    ExcelApp.Workbooks[1].Sheets.Item[1].Cells[1,1].NumberFormat := '0,00';//всё нормально, числовой формат


Не могу сообразить в чем дело, почему в качестве формата передаётся просто код собаки, а именно число "64"? Куда копать, как ещё проверять? Если выполнять код через макросы самого экселя, то всё нормально - формат ячейки меняется на текстовый.
PM MAIL   Вверх
Pavelvp
Дата 6.2.2015, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.6.2013

Репутация: нет
Всего: нет



Бывает ведь, только написал и всё решилось само собой.

Вот так работает:
Код

s1 := '@';
ExcelApp.Workbooks[1].Sheets.Item[1].Cells[1,1].NumberFormat := s1;


Пришёл к этому после ряда запросов к экселю, но блин не понимаю почему?? По факту ничего вообще не изменилось.
PM MAIL   Вверх
Albinos_x
Дата 13.2.2015, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 15
Всего: 108



если заносите число и хотите, чтоб excel воспринимал это как текстовую ячейку - перед цифрой ставьте символ апострофа - excel не покажет апостроф - распозная, что пришедшее число является тектом, например:
Код

i: integer;
...
i:=5
ExcelApp.Workbooks[1].Sheets.Item[1].Cells[1,1].Value2 := ''''+i;
...



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Pavelvp
Дата 3.3.2015, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.6.2013

Репутация: нет
Всего: нет



Я заношу набор чисел, а Excel воспринимает их как дату. Переношу данные используя Memo и CopyToClipboard. Пробовал ставить апострофы, не получалось. Возможно именно потому, что процесс вставки выглядит так:    ExcelApp.Workbooks[1].Sheets.Item[1].Paste;



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.1069 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.