delphi7中如何新一个Excel并保存?我这样用老有问题

lhb2000 2005-09-14 10:39:02
刚才的帖有问题
我是新建文件时 如果存在就打开 不存在 就新 建 代码如下:
procedure TForm1.Button3Click(Sender: TObject);
var
ExcelID: Variant;
i:Integer;
begin
if SaveDialog1.Execute then
begin
ExcelID:=CreateOleObject('Excel.Application');
try
if FileExists(savedialog1.FileName ) then
begin
ExcelID.workbooks.open(savedialog1.FileName);
end
else
begin
ExcelID.SheetsInNewWorkbook :=10;
ExcelID.workbooks.Add;
end;
ExcelID.visible:=False;
for i:=1 to ExcelID.WorkSheets.count do
begin
ExcelID.WorkSheets[i].Name:='A'+inttostr(i);
end;
if FileExists(savedialog1.FileName ) then
ExcelID.save
else
ExcelID.save(savedialog1.FileName);
finally
ExcelID.quit;
end;
end;
end;
在新建时 如果文件不存在 总是出现另存为对话框 必须要保存才行 但这样就保存了两个文件了 如何新建时不打开另存对话框? 如果打开一个存在的 则出现提示"当前位置发现存在名为'resume.xlw'的文件 是否替换? 要点是才行 这是怎么回事?如何不出现提示?
...全文
286 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-09-16
  • 打赏
  • 举报
回复
建立新文件之前,你用FileExists检测一下,如果没有再弹出SaveDialog
「已注销」 2005-09-16
  • 打赏
  • 举报
回复
我用的是Delphi中的Excel控件,所有空间的ConnectKind属性设置为ckNewInstance,就可以产生新的Excel文件,不会在你打开其他Excel文件的时候捣乱。参照下面的代码吧,我一直这样用:
dlgSave.Title:='选择保存路径';
dlgSave.FileName:='行政事业单位客户帐户信息表'+FormatDateTime('(yyyy)',dtpBin.DateTime);
if dlgSave.Execute then
fileDir:=dlgSave.FileName
else
exit;

ExcelApplication1.Caption:='行政事业单位客户帐户信息表';
ExcelApplication1.Workbooks.Add(null,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
//这里可以对表格进行合并、复制等操作
ExcelWorksheet1.SaveAs(fileDir);
Application.MessageBox('成功保存!',Pchar(Caption),MB_ICONINFORMATION);

ExcelWorkbook1.Close;
ExcelApplication1.Disconnect;
lhb2000 2005-09-16
  • 打赏
  • 举报
回复
up
lhb2000 2005-09-15
  • 打赏
  • 举报
回复
还有 如果打开了一个Excel 如何清空里面所有表的内容?
metal11516580 2005-09-14
  • 打赏
  • 举报
回复
记录

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧