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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2013, 10:14   #1
Tanzor69
Пользователь
 
Регистрация: 05.11.2011
Сообщений: 90
По умолчанию Выгрузка из DBGrid в excel

Вообщем есть DBgrid, подключенный к ADOTable из него надо данные выгрузить в Excel. Знаю, тема очень популярная.Нашел кое какое решение, но онон не работает, появляется ошибки
[Error] Unit1.pas(344): Unknown directive: 'ExcelApp';
[Error] Unit1.pas(350): Undeclared identifier: 'ExcelApp';
Вот сам код
Код:
procedure TForm1.N3Click(Sender: TObject);
//âûâîä â excel
ExcelApp : variant;
row :integer;
col:integer;
begin
dbgrid1.DataSource.DataSet.First;

ExcelApp:=CreateOLEObject('Excel.Application'); // ñîçäàåò îáúåêò
ExcelApp.WorkBooks.add; //íîâûé äîê
ExcelApp.visible:=true;  // ïîêàçûâàåò äîê

ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет'; // ïåðåèìåíîâûâàíèå ËÈÑÒÀ 1

for col :=0 to DBGrid1.Columns.Count-1 do
ExcelApp.WorkBooks[1].WorkSheets[1].cells[6,col+2].value:=dbgrid1.fields[col].displaylabel;

for row :=0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
for col :=0 to DBGrid1.Columns.Count-1 do
begin
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,col+2].value:=dbgrid1.DataSource.DataSet.Fields[col].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,1]:=row+1;
end;
DBGrid1.DataSource.DataSet.Next;
end;

ExcelApp.WorkBooks[1].WorkSheets[1].cells[1,1]:='Дата';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[1,2]:=datetostr(now);
ExcelApp.WorkBooks[1].WorkSheets[1].visible:=true;
ExcelApp.WorkBooks[1].WorkSheets[2].visible:=false;
ExcelApp.WorkBooks[1].WorkSheets[3].visible:=false;
end;
в uses добавил ExcelXP, comobj;

Я вот думаю, может это из за того что офис уже 2007.
Tanzor69 вне форума Ответить с цитированием
Старый 18.04.2013, 11:49   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

А я вот думаю, что из-за очевидно пропущенного слова var (секция локальных переменных должна начинаться с этого слова):
Код:
procedure TForm1.N3Click(Sender: TObject);
var
  ExcelApp : variant;
  row :integer;
  col:integer;
begin
...
Прик вне форума Ответить с цитированием
Старый 18.04.2013, 14:11   #3
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

А я вот думаю, что для подобного простого табличного отчета хватило бы и файла в формате CSV, благо он большинством редакторов электронных таблиц прекрасно открывается (ms excel в том числе).
astecenko вне форума Ответить с цитированием
Старый 18.04.2013, 14:16   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

Цитата:
ExcelApp.visible:=true;
тут сразу - конфискация
eval вне форума Ответить с цитированием
Старый 19.04.2013, 15:39   #5
astecenko
Homo Interneticus
Форумчанин
 
Аватар для astecenko
 
Регистрация: 04.03.2011
Сообщений: 611
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
тут сразу - конфискация
не конфискация, а медитация... завораживающе же...
к тому же пользователь видит - оно работает
astecenko вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка в Excel city32 Общие вопросы Delphi 2 18.10.2012 15:58
Выгрузка формул из 1С в Excel alexx2007 Microsoft Office Excel 7 18.10.2012 07:06
Выгрузка из БД в Excel fenetka Microsoft Office Excel 6 20.10.2011 09:06
Выгрузка из DBGrid в Excel Nika03 БД в Delphi 1 19.05.2010 22:06
Выгрузка данные из DBGrid-а в txt Angel86rus Общие вопросы Delphi 2 24.07.2009 13:26