Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.01.2017, 13:21
Максон Максон вне форума
Прохожий
 
Регистрация: 10.02.2011
Сообщения: 19
Репутация: 10
По умолчанию экспорт данных из access в ШАБЛОН excel

Доброго дня, уважаемые форумчане. Столкнулся с такой проблеммой:
имеется база данных, и по нажатию на кнопку она должна экспортироваться в шаблон эксель.
Код:
var
i,j, index: Integer;
ExcelApp,sheet: Variant;



begin

ExcelApp := CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0 ))+'reestr\reestrOB.xls');
ExcelApp.Visible := true;
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'реестр';
sheet:=ExcelApp.WorkBooks[1].WorkSheets['реестр'];
index:=11; //здесь выбираю номер строки в экселе с которой надо заполнять
for i:=1 to form6.DBGrid1.DataSource.DataSet.RecordCount do
begin

for j:=1 to form6.DBGrid1.FieldCount do
sheet.cells[index,8]:=form6.DBGrid1.fields[2].asstring;
sheet.cells[index,5]:=form6.DBGrid1.fields[0].asstring;
sheet.cells[index,2]:=form6.DBGrid1.fields[1].asstring;

form6.DBGrid1.DataSource.DataSet.Next;    //переход на следующую строку

//НУМЕРАЦИЯ СТРОК ИЗ БД
sheet.cells[index, 1]:=i;//проставляем в цикле в 1-ю колонку


inc(index);

end;
  

Вопрос как сделать чтобы при экспорте данных из БД добавлялась строка и в нее вносились данные.
В этом примере, в шаблон добавляются данные из БД, а строки не сдвигаются.
Заранее спасибо
Вложения
Тип файла: 7z шаблон и база.7z (10.9 Кбайт, 7 просмотров)
Ответить с цитированием
  #2  
Старый 23.01.2017, 20:07
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Учимся правильно использовать begin..end. У тебя в цикле исполняется только одна строка, которая идет после for. Надо как-то так:
Код:
for j:=1 to form6.DBGrid1.FieldCount do
begin
  sheet.cells[index,8]:=form6.DBGrid1.fields[2].asstring;
  sheet.cells[index,5]:=form6.DBGrid1.fields[0].asstring;
  sheet.cells[index,2]:=form6.DBGrid1.fields[1].asstring;
 
  form6.DBGrid1.DataSource.DataSet.Next;    //переход на следующую строку
 
  //НУМЕРАЦИЯ СТРОК ИЗ БД
  sheet.cells[index, 1]:=i;//проставляем в цикле в 1-ю колонку
 
  inc(index);
end;
Ответить с цитированием
  #3  
Старый 25.01.2017, 05:47
Максон Максон вне форума
Прохожий
 
Регистрация: 10.02.2011
Сообщения: 19
Репутация: 10
По умолчанию

Привел код в порядок, как сказал lmikle, но результат тот же строки не добавляются.
Ответить с цитированием
  #4  
Старый 26.01.2017, 01:39
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,003
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ой, я совсем плохой стал, невнимательно прочитал код.
Попробуй вот так:
Код:
index:=11; //здесь выбираю номер строки в экселе с которой надо заполнять
form6.DBGrid1.DataSource.DataSet.First;
While Not form6.DBGrid1.DataSource.DataSet.EoF Do
begin

  // Этль цикл не понятно зачем - от j ничего не зависит
  // for j:=1 to form6.DBGrid1.FieldCount do
  
  sheet.cells[index,8]:=form6.DBGrid1.fields[2].asstring;
  sheet.cells[index,5]:=form6.DBGrid1.fields[0].asstring;
  sheet.cells[index,2]:=form6.DBGrid1.fields[1].asstring;
 
  form6.DBGrid1.DataSource.DataSet.Next;    //переход на следующую строку
 
  //НУМЕРАЦИЯ СТРОК ИЗ БД
  sheet.cells[index, 1]:=i;//проставляем в цикле в 1-ю колонку
 
  inc(index);
end;
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter