Delphi - cxGrid内容xlsx、xls、csv格式导出
.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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。