.xls格式導出,uses中添加cxGridExportLink
代碼如下:
1 function SaveToExcel(gridMain: TcxGrid; FileName: string): string; 2 var 3 SaveFileDialog: TSaveDialog; 4 begin 5 //示例:SaveToExcel(dxDBGrid1,'默認文件名'); 6 SaveFileDialog := TSaveDialog.Create(nil); 7 SaveFileDialog.FileName := FileName; 8 SaveFileDialog.Filter := '*.xls'; 9 if SaveFileDialog.Execute then 10 begin 11 if pos('.XLS', UpperCase(SaveFileDialog.FileName)) <= 0 then 12 SaveFileDialog.FileName := SaveFileDialog.FileName + '.XLS'; 13 ExportGridToExcel(SaveFileDialog.FileName, gridMain); 14 ShowMessage('數據已成功導出到您指定的目錄中'); 15 end; 16 Result := SaveFileDialog.FileName; 17 SaveFileDialog.Free; 18 end;
.csv格式導出,uses中添加cxGridExportLink
代碼如下:
1 begin 2 Screen.Cursor := crSQLWait; 3 FileNameCache := FileName + FormatDateTime('YYYYMMDD', NOW); 4 FileName := FileNameCache + '.CSV'; 5 FilePathCache := 'C:/TMP/' + FileNameCache; 6 FilePath := FilePathCache + '.CSV'; 7 ExportGridToText(FilePathCache + '.XLS', cxGrid_M, True, True, ',', '', '', 'CSV'); 8 Screen.Cursor := crDefault; 9 end;
.xlsx格式無法通過cxGrid現有封裝的方法實現,可以通過.xls/.csv格式轉換成.xlsx格式。
代碼如下:
1 procedure Saveto_xlsx(tn: string; fn: string); 2 var 3 ExcelApp, Excelbook, ExcelChart: OleVariant; 4 //tn:需要轉換格式的源文件路徑 5 //fn:轉換之后的文件存儲路徑 6 begin 7 try 8 ExcelApp := CreateOleObject('Excel.Application'); 9 ExcelApp.Visible := True;//False 10 ExcelApp.Caption := '應用程序調用 Microsoft Excel'; 11 ExcelApp.Application.DisplayAlerts := False; 12 ExcelApp.WorkBooks.Open(tn); 13 ExcelApp.ActiveWorkbook.SaveAs(fn, 51); 14 ExcelApp.Application.Quit; 15 ExcelApp.Application.DisplayAlerts := True; 16 Excelapp := Null; 17 except 18 Application.Messagebox('Excel 沒有安裝!', 'Hello', MB_ICONERROR + mb_Ok); 19 Abort; 20 end; 21 end;
作者:Jeremy.Wu
出處:https://www.cnblogs.com/jeremywucnblog/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。