导出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