procedure TLiYQBYJL.btnBYJLTJDCClick(Sender: TObject);
var
ExcelApp, workbook, sheet: Variant;
col, row, j, i: Integer;
str: string;
begin
inherited;
dlgSave1.Filter := 'Excel2007格式文件|*.xlsx|Excel2003格式文件|*.xls';
try
ExcelApp := CreateOleObject('Excel.Application'); (* 创建一个Excel的OLE对象,使用OLE去创建Excel文件时,需要uses ComObj *)
except
InformationDlg(Tit, '请安装EXCEL');
Exit;
end;
workbook := ExcelApp.WorkBooks.Add; (* 创建一个WorkBook *)
sheet := ExcelApp.Sheets[1]; (* 创建一个Sheet变量 *)
if not cdsBYJLTJ.IsEmpty then
begin
sheet.cells[1, 1] := '保养项目';
for col := 1 to cdsBYJLTJ.FieldCount - 1 do
begin
sheet.cells[1, col + 1] := cdsBYJLTJ.Fields[col].FieldName;
end;
with cdsBYJLTJ do
begin
First;
i := 2; //行 j列
while not Eof do
begin
for col := 0 to FieldCount - 1 do
begin
sheet.Cells[i, col + 1] := cdsBYJLTJ.Fields[col].AsString;
end;
Inc(i);
Next;
end;
end;
end;
for col := 1 to SGBYJLTJ.ColCount do
begin
ExcelApp.ActiveSheet.Columns[col].Columnwidth := 10;
end;
ExcelApp.DisplayAlerts := false; //不提示任何警告信息
if dlgSave1.Execute then (* 如果点击了保存对话框的"保存"按键的话,将当前活动的Workbook保存到SaveDialog指定的位置 *)
begin
if FileExists(dlgSave1.FileName) then
begin
if not QuestionDlg(Tit, '文件名已存在,是否覆盖?') then
begin
Exit;
end
else
begin
ExcelApp.ActiveWorkbook.saveas(dlgSave1.FileName);
end;
end;
// ExcelApp.ActiveWorkbook.saveas(dlgSave1.FileName);
end
else (* 如果点击了保存对话框的"取消"按键的话,放弃存盘,这句话一定要加上,否则,在点击"取消"按键时,会出现问题 *)
ExcelApp.ActiveWorkBook.Saved := True;
// ExcelApp.DisplayAlerts := false; //不提示任何警告信息
workbook.Close; (* 最后,将WorkSheet关闭 *)
ExcelApp.quit; (* 退出ExcelApp *)
ExcelApp := unassigned; (* 使用unassigned时,要uses Variants *)
end;