- uses OleServer, Excel2000,ComObj;
- procedure WriteExcel(AdsData: TDataSet;Dbgrid: TDbgrid; sName, Title: string);
- var
- ExcelApplication1: TExcelApplication;
- ExcelWorksheet1: TExcelWorksheet;
- ExcelWorkbook1: TExcelWorkbook;
- nrow,ncol: integer;
- filename: string;
- begin
- filename := concat(extractfilepath(application.exename), sName, '.xls');
- try
- ExcelApplication1 := TExcelApplication.Create(Application);
- ExcelWorksheet1 := TExcelWorksheet.Create(Application);
- ExcelWorkbook1 := TExcelWorkbook.Create(Application);
- ExcelApplication1.Connect;
- except
- Application.Messagebox('Excel 没有安装!', 'Hello', MB_ICONERROR + mb_Ok);
- Abort;
- end;
- try
- ExcelApplication1.Workbooks.Add(EmptyParam, 0);
- ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
- ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
- nrow:=2;
- for ncol:=2 to dbgrid.Columns.Count+1 do
- begin
- ExcelWorksheet1.Cells.item[nRow,nCol] := dbgrid.Columns[ncol-2].Title.caption;
- // ExcelWorksheet1.Cells.item[nRow,nCol].font.size := '10';
- end;
- nrow:=nrow+1;
- AdsData.First;
- while not AdsData.Eof do
- begin
- for ncol :=2 to dbgrid.Columns.Count+1 do
- begin
- ExcelWorksheet1.Cells.item[nRow,nCol] :=dbgrid.Fields[ncol-2].AsString;
- // ExcelWorksheet1.Cells.item[nRow,nCol].font.size := '10';
- end;
- AdsData.Next;
- nRow:=nRow+1;
- end;
- ExcelWorksheet1.Columns.AutoFit;
- ExcelWorksheet1.Cells.item[1, 2] := Title;
- ExcelWorksheet1.Cells.Item[1, 2].font.size := '14';
- ExcelWorksheet1.SaveAs(filename);
- finally
- ExcelApplication1.Disconnect;
- ExcelApplication1.Quit;
- ExcelApplication1.Free;
- ExcelWorksheet1.Free;
- ExcelWorkbook1.Free;
- end;
- end;
WriteExcel
最新推荐文章于 2024-09-05 07:52:47 发布