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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2019, 14:28   #1
Rinat228
Новичок
Джуниор
 
Регистрация: 13.03.2019
Сообщений: 2
По умолчанию Как вывести из dbgrid в Excel, причем вывести в разные ячейки

Код:
procedure TForm4.Button6Click(Sender: TObject);
var
ExcelApp : variant;
row :integer;
col, index:integer;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'Сведения о Учениках[.xlsx');
ExcelApp.Visible := false;
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Лист 1';
Rinat228 вне форума Ответить с цитированием
Старый 13.03.2019, 15:02   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

на форуме это было.
например,

http://programmersforum.ru/showpost....40&postcount=3

http://programmersforum.ru/showpost....92&postcount=5

http://programmersforum.ru/showthread.php?t=314819

http://programmersforum.ru/showthread.php?t=300972
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2019, 16:23   #3
Rinat228
Новичок
Джуниор
 
Регистрация: 13.03.2019
Сообщений: 2
По умолчанию

Кто может расписать конкретнее (Заранее спасибо)
Rinat228 вне форума Ответить с цитированием
Старый 13.03.2019, 16:37   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Rinat228 Посмотреть сообщение
Кто может расписать конкретнее (Заранее спасибо)
так достаточно конкретно?
(правда совсем не универсально!)
Код:
procedure TForm4.Button6Click(Sender: TObject);
var
  ExcelApp, Sheet : variant;
  i, row, col, index :integer;
begin
     ExcelApp:=CreateOleObject('Excel.Application');
     ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'Сведения о Учениках[.xlsx');
     ExcelApp.Visible := false;
     ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Лист 1';


     Sheet:=ExcelApp.WorkBooks[1].WorkSheets[1];
     Sheet.Cells[1,3]:='Заключение хоздоговоров :    '+' ' +FormatDateTime('dd.mm.yyyy', Now);
     Sheet.Cells[1].RowHeight := 20; // высота ячейки ! Это для заголовки
//     Sheet.Cells[2].RowHeight := 60;
     Sheet.Cells[2,1]:='№ договора ';
     Sheet.Cells[2,2]:='Дата заключ. дог.';
     Sheet.Cells[2,3]:='Дата заверш. дог.';
     Sheet.Cells[2,4]:='Тема договора';
     Sheet.Cells[2,5]:='Наимен. организации';
     Sheet.Cells[2,6]:='Признак';
     Sheet.Cells[2,7]:='Стоимость дог.';

    //---------------------------------------------------------
    index :=3;
    qryXD.First;
    for i:=0 to qryXD.RecordCount-1  do
    begin
      //--------------  выравнивание Текст по центру 
       Sheet.Cells[index,1].HorizontalAlignment:=3;
       Sheet.Cells[index,2].HorizontalAlignment:=3;
       Sheet.Cells[index,3].HorizontalAlignment:=3;
       Sheet.Cells[index,4].HorizontalAlignment:=3;
       Sheet.Cells[index,5].HorizontalAlignment:=3;
       Sheet.Cells[index,6].HorizontalAlignment:=3;
       Sheet.Cells[index,7].HorizontalAlignment:=3;
      // ---------------------------------------------------------//
       Sheet.Cells[index,1]:=  qryXD.Fields[0].AsString;
       Sheet.Cells[index,2]:=  FormatDateTime('dd.mm.yyyy', qryXD.Fields[1].AsDateTime);
       Sheet.Cells[index,3]:=  FormatDateTime('dd.mm.yyyy', qryXD.Fields[2].AsDateTime);
       Sheet.Cells[index,4]:=   qryXD.Fields[3].AsString;
       Sheet.Cells[index,5]:=   qryXD.Fields[4].AsString;
       Sheet.Cells[index,6]:=   qryXD.Fields[5].AsString;
       Sheet.Cells[index,7]:=   qryXD.Fields[6].AsString;
       Inc(index);
       qryXD.Next;
   end;

  ExcelApp.WorkBooks[1].SaveAs(ExtractFilePath(ParamStr(0))+'Отчёт.xlsx');
  Sheet := Unassigned; 
  ExcelApp.Quit;
  ExcelApp := Unassigned;

end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[РЕШЕНО][C++] Вывести 100 первых натуральных чисел в столбик, если число делится нацело на 3 вывести вместо него fizz, если нацело на 5 — вывести bizz, если на 3 и на 5 — fizzbizz bylbyl9tor Помощь студентам 22 07.03.2019 21:37
как вывести содержимое Excel файла в DBGrid Оля2394 БД в Delphi 3 25.05.2015 07:55
Вывести из DBGrid значение anatoliy1992 Помощь студентам 8 01.04.2015 13:11
Delphi. Цикл While. Вывести целые числа от А до В, А вывести 1 раз, число А+1 вывести 2 раза и т.д. schibeki Помощь студентам 4 07.02.2014 09:17
составить программы на паскале: попадание точки в заданную область; вывести текст в разные места экрана Кашелот Помощь студентам 1 27.10.2011 23:24