Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Данные в Excel [D5, IB4.x, IB5.x, IB6.x, Paradox]


Виталий_ ©   (2003-06-22 15:35:00) 

Привет, всем.
Есть вопрос к знактокам, на который давно не могу найти ответ.

Суть такова. Есть таблица с данными. Эти данные необходимо сохранить в Excel. Все работает прекрасно, но вот только в таблице есть данные типа String "06589R". В Excel этот ноль исчезает. Как предварительно отформатировать столбик в Excel из Delphi в тип текст. Перепробовал немало вариантов, но сообщения об ошибке избежать не удалось. Это собственно первый вопрос.

А вот вотрой: данных в таблице много, то и дело смотреть как они сохраняются в Excel не охота, я переключаюсь на другое приложение, а при возврате в мою программу, некоторые элементы формы не перерисовываются. Как заставить их принудетльно перерисоваться?


Andriano   (2003-06-25 16:34:00) [1]

> kravchuk ©
Да я заметил, но только щас понял, что ты про COM. Попробую завтра. Спасибо.


kravchuk   (2003-06-25 16:30:00) [2]

> Andriano © (25.06.03 16:07)
как я уже говорил, удалось ускорить выгрузку, если бросать не по одной записи а сразу много, т.е. Вариант массив и целиком в region


Andriano   (2003-06-25 16:07:00) [3]

Можно заранее создать некий .xls файл, который можешь отформатировать как хочешь. Я вот к примеру нарисовал шапку, поставил всё в формат "текст" и даже автофильтр прямо на шапке включил. Пользуюсь OLE. Открываю этот файл, добавляю записи, "сохраняю как" в другой файл. Автофильтр распространяется на все добавленные данные.

У меня другая проблема - OLE работает медленно (1500 записей за 25с). Сносно, но хочется ускорить. И Microsoft Excel требуется.


bushmen   (2003-06-25 15:15:00) [4]

2 Соловьев ©:
Я к тому, что у него не должно быть проблемы с отбрасыванием нуля.


Соловьев   (2003-06-25 15:10:00) [5]


> bushmen © (25.06.03 14:54)

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


kravchuk   (2003-06-25 15:04:00) [6]

если работаешь через ОЛЕ, выдели весь лист, формат ячеек поставь текст,
Если экспорт делаешь в цикле то добавь Application.ProcessMessages, а вообще лучше бросать данные вариант массивом, за раз, быстро и ловко :)


bushmen   (2003-06-25 14:54:00) [7]

2 Соловьев ©:
Не, у него должна по умолчанию в текст форматиться ячейка - у него в строге буква проскакивает, а Excel нули отбрасывает по умолчанию токо когда может в число перевести


Соловьев   (2003-06-25 14:51:00) [8]

...
Range.NumberFormat := "@";//текст
...


bushmen   (2003-06-25 14:41:00) [9]

Если работаешь через com, то исчезает и 2 проблема - Excel можешь активировать только после завершения сброса данных


s_ser   (2003-06-25 14:10:00) [10]

Проше всего работать через COM технологию


sniknik   (2003-06-22 18:23:00) [11]


первое, а как ложш? через что? я вот положил для примера
INSERT INTO [Sheed1$] (Name) VALUES ("06589R")
и так
UPDATE [Sheed1$] SET Name = "06589R" WHERE Id = 4
все (и ноль тоже) остается на месте ("как" разгласил, но "через что" по твоему почину запартизаню :о)).

второе, вобще этого обычно не требуется, форма перерисовывается если была закрыта другим приложением, сама.
исключение может быть если ты сам рисуеш, а обработку OnPaint не делаеш. (обьяснил бы чего не пререрисовывается? поименно)
заставить форму перерисоватся насильно Repaint, не относится к тому что сам на канвасе формы рисуеш.
судя по тому что не перерисовываются "некоторые элементы формы", они у тебя самодельные. ???


Наверх

Титульная страница Поиск, карта сайта Написать письмо