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/
  本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM