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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.05.2015, 20:40   #1
fr0z3n
 
Регистрация: 12.12.2009
Сообщений: 4
По умолчанию Из DBGrid в Excel

Решил сделать экспорт данных DBGrid'а в Excel, код написал, работает, но почему-то не отображается название последнего столбца, а если поколдовать с кодом, название последнего вывести можно, но тогда пропадает название первого, в чем косяк?

Код:
procedure TForm1.Button13Click(Sender: TObject);
begin
ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.Visible := true;
ExcelApp.WorkBooks.Add(-4167);
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Report';
sheet:=ExcelApp.WorkBooks[1].WorkSheets['Report'];
index:=2;
//Здесь я пробовал изменять все что можно, получал ошибку OLE error 800a03ec или Argument out of range
for i := 1 to ADOQuery1.FieldCount-1 do
sheet.cells[1, i]:= ADOQuery1.Fields[i-1].DisplayName; // Если здесь в ADOQuery1.Fields[i-1].DisplayName 
//поставить просто i, то он будет выводить название последнего столбца, но уже не будет выводить 
//название первого.
ADOQuery1.First;
for i:=1 to ADOQuery1.RecordCount do
begin
for j:=1 to ADOQuery1.FieldCount do
sheet.cells[index,j]:=ADOQuery1.fields[j-1].asstring;
inc(index);
ADOQuery1.Next;
end;
end;
fr0z3n вне форума
Старый 14.05.2015, 20:45   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Последний цикл по полям правильно, почему предыдущий по полям не так сделан?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума
Старый 14.05.2015, 20:58   #3
fr0z3n
 
Регистрация: 12.12.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Последний цикл по полям правильно, почему предыдущий по полям не так сделан?
ради одной строки?(с названиями столбцов) или я что-то не врубаюсь...

PS: я Вас понял, спасибо за помощь! работает!

Последний раз редактировалось fr0z3n; 14.05.2015 в 21:12.
fr0z3n вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузка из DBGrid в excel Tanzor69 БД в Delphi 4 19.04.2013 15:39
Excel - экспорт выбранной ячейки из DBGrid в Excel. wymkent Помощь студентам 0 16.05.2012 02:10
Экспорт из DBGrid в Excel Oleg Romanchuk БД в Delphi 2 23.07.2011 09:46
DBGrid и Excel Freimaks Общие вопросы Delphi 8 25.04.2011 20:07
DBGrid->EXCEL Neba БД в Delphi 7 03.11.2010 05:23