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;

 

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

上一篇:我的Android 4 学习系列


下一篇:基础篇-windows命令基本使用