Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Сохранение данных из ListView в *.xls

01.01.2007
{ **** UBPFD *********** by kladovka.net.ru ****
>> Сохранение данных из ListView в *.xls
 
Сохранение данных из ListView в *.xls
 
Зависимости: ComObj
Автор:       dDan, ddan2002@mail.ru
Copyright:   dDan
Дата:        3 декабря 2003 г.
********************************************** }
 
procedure ListToExcel(ListView: TListView);
var
 row,i:integer;
 Range,Sheet:VAriant;
begin
 try
  Excel:=CreateOleObject('Excel.Application');
 except
  raise Exception.Create('Невозможно поключиться к серверу Excel');
 end;
 Screen.Cursor:=crHourGlass;
 Excel.SheetsInNewWorkBook:=1;
 Excel.WorkBooks.Add;
 Sheet:=Excel.Workbooks[1].Sheets[1];
 Range:=Sheet.Columns;
 Range.Columns[1].ColumnWidth:=30; //Количество Столбцов и их ширина
 Range.Columns[n].ColumnWidth:=30;
 Range.Columns[n+1].ColumnWidth:=30;
 Range.Columns.Font.Size:=8;
 Range:=Sheet.Range['a1:f1'];
 Range.Font.Size:=15;
 Range.Font.Bold:=True;
 Range.Columns.Interior.ColorIndex:=6;
 Range.HorizontalAlignment:=3;
 Sheet.Cells[1,2]:='Данные на '+DateToStr(Date);//Заголовок
 Range:=Sheet.Range['a2:f2'];
 Range.Font.Size:=10;
 Range.Font.Bold:=True;
 Sheet.Cells[2,1]:='АА';//Названия столбцов
 Sheet.Cells[2,n]:='ББ';
 Sheet.Cells[2,n+1]:='вв';;
 Row:=3;
 for i :=0 to List.Items.Count-1 do begin
  Sheet.Cells[Row,1]:=ListView.Items.Item[i].Caption;
  Sheet.Cells[Row,2]:=ListView.Items.Item[i].SubItems[n];
  Sheet.Cells[Row,3]:=ListView.Items.Item[i].SubItems[n+1];
  inc(Row);
 end;
 Screen.Cursor:=crDefault;
 if SaveDialog.Execute then Excel.WorkBooks[1].SaveAs(exs.FileName);//Сохраняем
 Excel.Visible:=True;//Показываем Excel
end;