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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2016, 14:39   #1
AndreiCHS
 
Регистрация: 16.03.2016
Сообщений: 6
По умолчанию Вывод в excel

Исправьте код или дайте совет.

Нужно в начале чтоб в начале было Отчет по товарам + дата текущая + название таблицы. ( Но у меня их 16 штук, как дать одно имя таблицы)

Выравнивание названий столбца и содержимое были все по центру, и нарисовать границы всей таблице как это все приписать

код вывода по кнопки
var
XLApp,Sheet,Colum:Variant;
index,i:Integer;
begin
XLApp:= CreateOleObject('Excel.Application' );
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчет по товарам';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчет по товарам'].Columns;
Colum.Columns[1].ColumnWidth:=20;
Colum.Columns[2].ColumnWidth:=20;
Colum.Columns[3].ColumnWidth:=20;
Colum.Columns[4].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Отчет по товарам'].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlack;
Colum.Rows[1].Font.Size:=14;


Sheet:=XLApp.Workbooks[1].WorkSheets['Отчет по товарам'];
Sheet.Cells[1,2]:='Отчет по товарам';
Sheet.Cells[2,1]:='Название';
Sheet.Cells[2,2]:='Количество';
Sheet.Cells[2,3]:='Наличие';
Sheet.Cells[2,4]:='Цена';


index:=4;
ADOTable1.First;
for i:=0 to ADOTable1.RecordCount-1 do
begin
Sheet.Cells[index,1]:=ADOTable1.Fields.Fields[1].AsString;
Sheet.Cells[index,2]:=ADOTable1.Fields.Fields[2].AsString;
Sheet.Cells[index,3]:=ADOTable1.Fields.Fields[3].AsString;
Sheet.Cells[index,4]:=ADOTable1.Fields.Fields[4].AsString;
Inc(index);
ADOTable1.Next;
end;
end;

Последний раз редактировалось AndreiCHS; 24.03.2016 в 15:22.
AndreiCHS вне форума Ответить с цитированием
Старый 25.03.2016, 06:14   #2
BARNEY
Участник клуба
 
Регистрация: 23.04.2009
Сообщений: 1,058
По умолчанию

Не знаю.... может подам дурной пример но. у меня все отчеты собираются SQL запросом, и выводятся в DBgrid со свойством visible:=false;
А далее всё подаётся на процедуру

Код:
procedure TMain_form.InExceles;
var
  ex: Variant;
  ws: Variant;
  i, ii: Integer;
begin
  ex := CreateOleObject('Excel.Application');
  ex.visible := false;
  ex.Workbooks.add();
  ws := ex.ActiveSheet;
  Q_FOR_OTCET.First;
  for ii := 0 to DBGrid1.Columns.Count-1 do
    ws.cells[1, ii+1] := DBGrid1.Columns[ii].Title.Caption;
  i := 2;
  while (not Q_FOR_OTCET.Eof) do
  begin
    for ii := 0 to DBGrid1.Columns.Count-1 do
     ws.cells[i, ii+1] := Q_FOR_OTCET.Fields[ii].AsString;
    i := i + 1;
    Q_FOR_OTCET.Next;
  end;
  ws.Columns.AutoFit;
  ex.visible := true;
end;
В ней можно свойства и редактировать.

Кнопка для отчета выглядит так
Код:
procedure TMain_form.N21Click(Sender: TObject);
var
dat1:TDateTime;
dat2:TDateTime;
begin
dat1:=StrToDate(InputBox('Введите дату начала отчёта','В формате ДД.ММ.ГГГГ',DateToStr(Now)));
dat2:=StrToDate(InputBox('Введите дату конца отчёта','В формате ДД.ММ.ГГГГ',DateToStr(Now)));

Q_FOR_OTCET.SQL.LoadFromFile(ExtractFilePath(Application.ExeName)+'SQL/SANA.SQL');
Q_FOR_OTCET.Params.ParamByName('D1').AsString :=DateForMSSQL(DateToStr(dat1));
Q_FOR_OTCET.Params.ParamByName('D2').AsString :=DateForMSSQL(DateToStr(dat2));
Q_FOR_OTCET.Active := true;
Q_FOR_OTCET.Last;
InExceles;
end;
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)

Последний раз редактировалось BARNEY; 25.03.2016 в 06:16.
BARNEY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод построчно в Excel Slide95ru Общие вопросы C/C++ 1 27.05.2015 14:09
Вывод данных из Excel? ivt22 PHP 2 26.07.2014 12:00
Вывод в Excel Anastasia12.02. БД в Delphi 13 20.05.2014 10:14
Вывод в Excel Sleepy Общие вопросы Delphi 2 19.12.2012 22:46
Вывод из Excel в C# gslim C# (си шарп) 6 08.06.2011 15:14