Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGrid -> Excel, Всё то же... 
:(
    Опции темы
Pakshin A. S.
  Дата 20.9.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



САБЖ.
PM   Вверх
<Spawn>
Дата 20.9.2004, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Примерно так:
Код
var
 Excel, Wb, Ws: Variant;
 i, j: integer;
begin
 i := 0;
 try
   Excel := CreateOleObject('Excel.Application');
   Wb := Excel.WorkBooks.Add(1);
   Ws := Wb.WorkSheets[1];
   Query.SQL.Text := 'SELECT * FROM SomeTable';
   Query.Open;
   Query.First;
   while not Query.Eof do
   begin
      for j := 0 to Query.FieldCount - 1 do
         Ws.Cells[i, j] := Query.Fields[j].AsVariant;
     Query.Next;
   end;
   Excel.Visible := True;
 finally
   Excel := Unassigned;
   Excel := nil;
 end;


Это сообщение отредактировал(а) <Spawn> - 20.9.2004, 16:29


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Pakshin A. S.
Дата 20.9.2004, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Sorry, но работает только так.
Код

var
Excel, Wb, Ws: Variant;
i, j: integer;
begin
try
Excel := CreateOleObject('Excel.Application');
Wb := Excel.WorkBooks.Add(1);
Ws := Wb.WorkSheets[1];
{Чуть-чуть под свою задачу сделал}
for i:=0 to StringGrid1.ColCount-1 do
 for j:=0 to StringGrid1.RowCount-1 do
   Ws.Cells[j+1{!}, i+1{!}] := StringGrid1.Cells[i,j];
Excel.Visible := True;
finally
Excel := Unassigned;
Excel := null; {!}
end;
end;

PM   Вверх
Pakshin A. S.
Дата 20.9.2004, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Немного усовершенствовал:
Код

uses ComObj, ActiveX;

...

var
Excel, Wb, Ws: Variant;
Unknown:IUnknown;
Result:HRESULT;
AppProgID:string;
i, j: integer;
begin
try
 AppProgID:='Excel.Application';
 Result:=GetActiveObject(ProgIdToClassId(AppProgID),nil,Unknown);
 if Result=MK_E_UNAVAILABLE
  then
   Excel:=CreateOleObject(AppProgId)
  else
   Excel:=GetActiveOleObject(AppProgId);
 Excel.Visible:=False;
 Wb := Excel.WorkBooks.Add(1);
 Ws := Wb.WorkSheets[1];
 for i:=0 to StringGrid1.ColCount-1 do
  for j:=0 to StringGrid1.RowCount-1 do
    Ws.Cells[j+1, i+1] := StringGrid1.Cells[i,j];
 Excel.Visible := True;
finally
 Excel := Unassigned;
 Excel := null;
end;
end;

PM   Вверх
Kesh
Дата 21.9.2004, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Блин, оно у тебя тормозить должно по-страшному... Или я не прав?.. Попробуй так экспортировать табличку записей эдак на 1000... biggrin.gif


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Pakshin A. S.
Дата 21.9.2004, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Проблема пользователя... Пусть мощнее кмп ставит. Тем более 1000 записей там не предполагается...
PM   Вверх
Kesh
Дата 21.9.2004, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Pakshin A. S. От мощности компа не сильно зависит... Дело в медленном обмене чере OLE-интерфейс... Где-то у меня статейка на эту тему была...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Pakshin A. S.
Дата 21.9.2004, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А черт с ними... Главное, при демонстрации хорошо работает.
PM   Вверх
Kesh
Дата 21.9.2004, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

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



Цитата(Pakshin @ 21.9.2004, 19:37)
Главное, при демонстрации хорошо работает.

Самому-то не стыдно за такие слова...


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Cashey
Дата 21.9.2004, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

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



Ну, развели флеймиловку на проф. гордость smile.gif

Я такие вещи рекомендую делать примерно по такой схеме, подогнать структуру таблицы под шаблон (т.е. временную таблицы сформировать, можно и массив, тогда работать еще быстрее будет, но памяти много жрать будет). И далее экспортом вилить в Excell и после программно подправить шабку шаблона. Работает очень эффективно, но со сложными шаблонами лучше не использовать - поправлять замучаетесь smile.gif


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Pakshin A. S.
Дата 21.9.2004, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Kesh @ 21.9.2004, 21:00)
Самому-то не стыдно за такие слова...

Не особо....
На таблице в 200 записей при 2000 офисе работает более-менее быстро. В XP немного тормозит. Прошу учесть, что у меня не мощный компьютер. А на предполагаемом месте обитания программы - очень мощьный!!!
Добавлено @ 21:22
Цитата(Cashey @ 21.9.2004, 21:09)
Я такие вещи рекомендую делать примерно по такой схеме, подогнать структуру таблицы под шаблон (т.е. временную таблицы сформировать, можно и массив, тогда работать еще быстрее будет, но памяти много жрать будет). И далее экспортом вилить в Excell и после программно подправить шабку шаблона. Работает очень эффективно, но со сложными шаблонами лучше не использовать - поправлять замучаетесь

sample.gif
А общение происходит так же?

Это сообщение отредактировал(а) Pakshin A. S. - 21.9.2004, 21:30
PM   Вверх
Cashey
Дата 22.9.2004, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

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



Это я, кстати, тормознул. Это я на фоксе так делаю. Не уверен, что из Дельфи экспорт сработает (база я пологаю парадоксовская). Блин, я раньше больше на Дельфи писал, на фоксе только по работе, а теперь вот уже путаю приемы работы smile.gif


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
gray_k
Дата 22.9.2004, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1015
Регистрация: 9.1.2003
Где: Москва

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



В факе есть работающий пример.


--------------------
С уважением.
Gray.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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