delphi tabletoExecel

 function TableToExcel(dsTable: TDataset; sFileName: string): Boolean;
    var
        MSExcel, Workbook, Worksheet    : Variant;
        I, J                            : Integer;
    begin
        Result := False;
        try
            MSExcel := CreateOleObject('Excel.Application');
        except
            //Error(cnInstallExcel);
            Exit;
        end;
        try
            Workbook := MSExcel.Workbooks.Add;
            Worksheet := MSExcel.Workbooks[1].Worksheets[1];
            with dsTable do
            begin
                First;
                J := 1;
                for I := 0 to Fields.Count - 1 do
                begin
                    Worksheet.Columns[I + 1].NumberFormatLocal := '@';
                    Worksheet.Columns[I + 1].HorizontalAlignment := $FFFFEFDD;
                    Worksheet.Cells[1, I + 1] := Fields[I].FieldName;
                end;
                Worksheet.Rows[1].Font.Bold := True;
                Worksheet.Rows[1].Font.ColorIndex := $00000003;
                Worksheet.Rows[1].HorizontalAlignment := $FFFFEFF4;
                while not Eof do
                begin
                    for I := 0 to Fields.Count - 1 do
                    begin
                        try
                            Worksheet.Cells[J + 1, I + 1] := Fields[I].AsString;
                        except
                            Continue;
                        end;
                    end;
                    Next;
                    Inc(J);
                end;
            end;
            if LowerCase(ExtractFileExt(sFileName)) <> 'xls' then
                sFileName := ChangeFileExt(sFileName, '.xls');
            Workbook.SaveAs(sFileName);
            Result := True;
        finally
            Workbook.Saved := True;
            MSExcel.Quit;
        end;
    end;
posted @ 2009-06-01 19:51  闫磊博客  阅读(147)  评论(0)    收藏  举报