Delphi 对文件的操作

导出excel、

//导出excel
procedure TForm1.btn3Click(Sender: TObject);
var
  i: integer;
  excel: OleVariant;
  saveDialog: TSaveDialog;
  sFileName: string;
begin
  try
    try
      excel := createoleobject('excel.Application');
    except
      excel := createoleobject('excel.sheet.12');
    end;
    excel.workbooks.Add;
  except
    Application.MessageBox('无法调用Excel!', '警告', MB_ok + MB_iconwarning);
  end;

  saveDialog := TSaveDialog.Create(nil);
  saveDialog.Filter := '文件excel(.xls)|.xls|文件excel(.xlsx)|.xlsx';
  if saveDialog.execute then
  begin
    if FileExists(saveDialog.FileName) then
    begin
      try
        if Application.MessageBox('该文件已存在是否覆盖?', '询问',
          MB_YESNO + MB_iconwarning) = IDYES then
        begin
          DeleteFile(PChar(saveDialog.FileName));
        end
        else
        begin
          excel.Quit;
          saveDialog.Free;
          Exit;
        end;
      except
        excel.Quit;
        saveDialog.Free;
        Exit;
      end;
    end;
    sFileName := saveDialog.FileName;
  end;
  saveDialog.Free;

  if sFileName = '' then
  begin
    excel.Quit;
    Exit;
  end;

  excel.cells.Font.size := 5; // 字大小
  excel.columns.HorizontalAlignment := 2; // 对齐方式
  for i := 1 to 3 do
    excel.ActiveSheet.columns[i].ColumnWidth := 20; // 设置格宽度

  excel.cells[1, 1] := '2第一行第一列';
  excel.cells[1, 2] := '2第一行第二列';
  excel.cells[1, 3] := '2第一行第三列';
  excel.cells[2, 1] := '2第二行第一列';
  excel.cells[2, 2] := '2第二行第二列';
  excel.cells[2, 3] := '2第二行第三列';

  try

    if (copy(sFileName, length(sFileName) - 4, 5) <> '.xlsx') then
    begin
      sFileName := sFileName + '.xlsx';
    end;

    // 保存
    excel.ActiveWorkbook.SaveAs(sFileName, 51, '', '', False, False);
    // 51是xlsx   -4143是xls

  except
    excel.Quit;
    screen.cursor := crDefault;
    Exit;
  end;

  // 打开显示
  excel.Visible := True;
end;


//导入excel


猜你喜欢

转载自www.cnblogs.com/hjdgz/p/11982274.html