Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Excel и Delphi


Автор: saneea 29.1.2008, 18:45
На форме имеется TStringGrid, TExcelApplication и кнопка. По клику на кнопку выполняется перегонка данных из StringGrid в экселевский лист и сохраняется файл в формате *.xls. Не знаю как выставить параметры листа, а именно сделать страницу для печати не книжную, а альбомную. Вот код обработчика клика на кнопку:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
workbk : _workbook; // определяем workbook
worksheet : _worksheet; // определяем worksheet
i, j, r, c : integer;
tabgrid : variant;
s: OleVariant;
begin
r:=StringGrid1.rowcount;
c:=StringGrid1.colcount;
// Создаём массив-матрицу
tabgrid:=VarArrayCreate([0,(r-1),0,(c-1)],varolestr);

// Определяем цикл для заполнения массива-матрицы
for i:=0 to c-1 do
  for j:=0 to r-1 do
    tabgrid[j,i]:=StringGrid1.cells[i,j];

ExcelApplication1.Connect;// Соединяемся с сервером texcelapplication

ExcelApplication1.Workbooks.Add(xlwbatworksheet,0);// Добавляем workbooks в excelapplication
workbk:=ExcelApplication1.Workbooks.Item[1];// Выбираем первую workbook
worksheet:=workbk.worksheets.get_item(1) as _worksheet;// Определяем первый worksheet
worksheet.Range['a1',worksheet.cells.item[r,c]].Value2:=tabgrid;// Сопоставляем delphi массив-матрицу с матрицей в worksheet

// Заполняем свойства worksheet
worksheet.columns.font.bold:=true;
worksheet.columns.horizontalalignment:=xlcenter;

workbk.SaveCopyAs('D:\www.xls', 1);

//ExcelApplication1.Visible[0]:=true;

ExcelApplication1.Disconnect;
tabgrid:=unassigned;
end;


Заранее благодарен!

Автор: alexpotemkin 30.1.2008, 10:25
Полезно иногда листать форум )), искать сперва - потом задавать вопросы.

http://forum.vingrad.ru/forum/topic-84634.html

...
ExcelWorksheet1.PageSetup.Orientation:=xlLandscape;
...



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)