Delphi - cxGrid内容xlsx/.xls /.csv格式导出

匿名 (未验证) 提交于 2019-12-02 23:55:01

.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;

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!