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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2011, 19:47   #1
SpyCrypt
 
Регистрация: 09.04.2011
Сообщений: 7
По умолчанию Экспорт DBGrid в Excel

Стоит такая задача. Экспортировать содержимое ДБГрида в ексель. Написал процедурку, все компилируется, при нажатии кнопки, программа виснет, и выкидывает ошибку адреса памяти.
Мой код:

procedure TForm1.Button6Click(Sender: TObject);
var
bm: TBookmark;
col, row: Integer;
sline: string;
mem: TMemo;
ExcelApp: Variant;
begin
DBGrid2.DataSource.DataSet.DisableC ontrols;
bm := DBGrid1.DataSource.DataSet.GetBookm ark;
DBGrid2.DataSource.DataSet.First;

ExcelApp := CreateOleObject('Excel.Application' );
ExcelApp.WorkBooks.Add(xlWBatWorkSh eet);
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Grid Data';


memo1.Clear;
sline := '';

for col := 0 to DBGrid2.FieldCount do
sline := sline + DBGrid2.Fields[col].DisplayLabel + #9;
memo1.Lines.Add(sline);
for row := 0 to DBGrid2.DataSource.DataSet.RecordCo unt-1 do
begin
sline := '';
for col := 0 to DBGrid2.FieldCount-1 do
sline := sline + DBGrid1.Fields[col].AsString + #9;
memo1.Lines.Add(sline);
DBGrid1.DataSource.DataSet.Next;
end;

ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste;
ExcelApp.Visible := true;


FreeAndNil(ExcelApp);
DBGrid2.DataSource.DataSet.GotoBook mark(bm);
DBGrid2.DataSource.DataSet.FreeBook mark(bm);
DBGrid2.DataSource.DataSet.EnableCo ntrols;

end;



Где я накосячил? Или можно по другому как тосделать?
SpyCrypt вне форума Ответить с цитированием
Старый 09.04.2011, 20:07   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Где правильно?
for col := 0 to DBGrid2.FieldCount do
for col := 0 to DBGrid2.FieldCount-1 do
Вы все данные переносите в TMemo - зачем?
Если есть ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste, то откуда данные берутся?
ReportCube вне форума Ответить с цитированием
Старый 09.04.2011, 20:16   #3
SpyCrypt
 
Регистрация: 09.04.2011
Сообщений: 7
По умолчанию

Спасибо, разобрался наконец то))))
SpyCrypt вне форума Ответить с цитированием
Старый 28.04.2011, 15:30   #4
Lady Meri
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 10
По умолчанию

а почему у меня ошибку выдает ExcelApp := CreateOleObject('Excel.Application' );
Lady Meri вне форума Ответить с цитированием
Старый 28.04.2011, 15:31   #5
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от Lady Meri Посмотреть сообщение
а почему у меня ошибку выдает ExcelApp := CreateOleObject('Excel.Application' );
В uses добавили ComObj?
OlegVE вне форума Ответить с цитированием
Старый 28.04.2011, 15:54   #6
Lady Meri
Пользователь
 
Регистрация: 30.11.2009
Сообщений: 10
По умолчанию

теперь есть *)
Lady Meri вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в Excel Gapro Общие вопросы Delphi 4 10.12.2009 10:29
Экспорт в Excel в БД kuzmich БД в Delphi 11 12.11.2009 11:27
Экспорт в Excel Hobbit_88 БД в Delphi 5 24.04.2009 10:15
экспорт из Excel в БД Tanuska___:) БД в Delphi 7 27.08.2008 15:31
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15