cxgrid 利用TXLSReadWriteII5导出excel

procedure TFormExportExcel.Button2Click(Sender: TObject);   //导出
var
  SaveDialog: TSaveDialog;
  XLS: TXLSReadWriteII5;
  i: Integer;
  savaPath: string;
begin
  SaveDialog := TSaveDialog.Create(nil);
  XLS := TXLSReadWriteII5.Create(nil);

  if RadioGroup1.ItemIndex = 0 then
    SaveDialog.Filter := 'EXCEL(*.xls)|*.xls';

  if RadioGroup1.ItemIndex = 1 then
    SaveDialog.Filter := '文本格式(*.txt)|*.txt';

  if SaveDialog.Execute then
  begin
//    cxgrid自带导出方法
//    if RadioGroup1.ItemIndex = 0 then
//        ExportGridToExcel(SaveDialog.FileName, cxGrid1, true, true, true, 'xls');
//
//    if RadioGroup1.ItemIndex = 1 then
//        ExportGridToText(SaveDialog.FileName, cxGrid1, true, true, 'txt');

    if Pos('xls', SaveDialog.FileName) > 0 then
      XLS.Filename := SaveDialog.FileName
    else
      XLS.Filename := SaveDialog.FileName + '.xls';

    cxGrid1DBTableView1.DataController.DataSet.DisableControls;
    i := 0;
    try
      cxGrid1DBTableView1.DataController.DataSet.First;
      while not cxGrid1DBTableView1.DataController.DataSet.Eof do
      begin
        XLS.Sheets[0].AsString[0, i] := cxGrid1DBTableView1.DataController.DataSet.FieldByName('param1').AsString;
        XLS.Sheets[0].AsString[1, i] := cxGrid1DBTableView1.DataController.DataSet.FieldByName('param2').AsString;
        XLS.Sheets[0].AsString[2, i] := cxGrid1DBTableView1.DataController.DataSet.FieldByName('param3').AsString;

//        XLS.CmdFormat.BeginEdit(XLS[0]);
//        XLS.CmdFormat.Border.Color.RGB := $0000FF;
//        XLS.CmdFormat.Border.Style := cbsThick;
//        XLS.CmdFormat.Border.Side[cbsLeft] := True;
//        XLS.CmdFormat.Border.Side[cbsRight] := True;
//        XLS.CmdFormat.ApplyCols(1, 3);

        cxGrid1DBTableView1.DataController.DataSet.Next;
        Inc(i);
      end;
    finally
      cxGrid1DBTableView1.DataController.DataSet.EnableControls;
    end;

    XLS.Write;
  end;
  SaveDialog.Free;
  XLS.Destroy;
end;

 

posted @ 2018-08-01 15:02  夏天的西瓜君  阅读(494)  评论(0编辑  收藏  举报