自动保存Excel问题 调用 WorkBook.Save 方法在系统安装excel 2003 下调用这个方法没不出问题。但 excel 2007 下调用这个方法出错,,各位大侠有没有好的解决方法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用saveas试试。Sub AddSaveAsNewWorkbook() Dim Wk As Workbook Set Wk = Workbooks.Add Application.DisplayAlerts = False Wk.SaveAs Filename:="D:\SalesData.xlsx"End Sub 不行。。源代码 在office 2003 与 office 2007 会有不同的结果,一个2003 不报错。2007下报错。。给个提示当然把( DBGridEhExport := TDBGridEhExportAsXLS.Create; try DBGridEhExport.DBGridEh := DBGridEh1; DBGridEhExport.ExportToFile( DialogW.FileName, IsSaveAll); finally DBGridEhExport.Free; end;)注解了不会出错。。大家结点提示,要怎么解决procedure TForm1.RzBitBtn2Click(Sender: TObject);var ExcelApp, WorkBook, WSheet: Variant; FileName : string; ParentWnd: HWND; DialogW: TSaveDialog; DBGridEhExport: TDBGridEhExportAsXLS; IsSaveAll : Boolean;begin ParentWnd := 0; FileName := 'D:\Test\得到硬件信息\1111.xls'; DialogW := TSaveDialog.Create(Application); try DialogW.Filter := 'Microsoft Excel 文件(*.xls)|*.XLS'; DialogW.Options := DialogW.Options + [ofOverwritePrompt, ofExtensionDifferent]; DialogW.DefaultExt := '.XLS'; if DialogW.Execute then begin //检查是否加上了后缀 //用户加入 if UpperCase(Copy(DialogW.FileName, length(DialogW.FileName) - 3, 4)) <> '.XLS' then DialogW.FileName := DialogW.FileName + '.xls'; //检查文件是否存在 if FileExists(DialogW.FileName) = True then begin if DeleteFile(pchar(DialogW.FileName)) = false then begin Exit; end; //删除后延迟一定时间后再创建文件 Sleep(100); end; FileName := DialogW.FileName; DBGridEhExport := TDBGridEhExportAsXLS.Create; try DBGridEhExport.DBGridEh := DBGridEh1; DBGridEhExport.ExportToFile( DialogW.FileName, IsSaveAll); finally DBGridEhExport.Free; end; ExcelApp := CreateOleObject('Excel.Application'); WorkBook := CreateOleObject('Excel.Sheet'); try WorkBook := ExcelApp.WorkBooks.open(FileName); WSheet := WorkBook.Sheets[1]; ExcelApp.ActiveWindow.DisplayGridlines := False; WSheet.cells[1,1] := 'aaa'; // WorkBook.WorkSheets[1].SaveAs(FileName); //DisplayAlerts := False; WorkBook.Save; Application.ProcessMessages; finally //Application.DisplayAlerts = False // WSheet := Unassigned; // WorkBook := Unassigned; workBook.Saved := True; WorkBook.Close; ExcelApp.WorkBooks.Close; ExcelApp.Quit; ExcelApp := Unassigned; end; end; finally DialogW.Free; end;end; DBGridEhExport裡面在導出excel後,是否有釋放對excel文件的控制? 如何用FastReport实现下面的报表? 项目开发,我力不从心。希望给网友一些启示 我的软件在英文版XP下程序界面中好多汉字都成了问号了,这是为什么?如何解决? 请大家帮忙看看是什么错误,谢谢了! 如何保存报表为html格式或BMP???? 能说说怎么实现本地和网络上的数据库同步更新的原理吗 请问如何得到SYBASE中一个表的字段列表,并在DBGrid中显示出来? 一个算是简单的打印问题! 怎样用DELPHI调用VB写的ACTIVEX DLL呢?? 一个关于定义类的问题 【在线等】标签页双击关闭的实现 comm1.parity:=None;
Sub AddSaveAsNewWorkbook()
Dim Wk As Workbook
Set Wk = Workbooks.Add
Application.DisplayAlerts = False
Wk.SaveAs Filename:="D:\SalesData.xlsx"
End Sub
当然把( DBGridEhExport := TDBGridEhExportAsXLS.Create;
try
DBGridEhExport.DBGridEh := DBGridEh1;
DBGridEhExport.ExportToFile( DialogW.FileName, IsSaveAll);
finally
DBGridEhExport.Free;
end;)注解了不会出错。。大家结点提示,要怎么解决procedure TForm1.RzBitBtn2Click(Sender: TObject);
var
ExcelApp, WorkBook, WSheet: Variant;
FileName : string;
ParentWnd: HWND;
DialogW: TSaveDialog;
DBGridEhExport: TDBGridEhExportAsXLS;
IsSaveAll : Boolean;
begin
ParentWnd := 0;
FileName := 'D:\Test\得到硬件信息\1111.xls';
DialogW := TSaveDialog.Create(Application);
try
DialogW.Filter := 'Microsoft Excel 文件(*.xls)|*.XLS';
DialogW.Options := DialogW.Options + [ofOverwritePrompt,
ofExtensionDifferent];
DialogW.DefaultExt := '.XLS';
if DialogW.Execute then
begin
//检查是否加上了后缀
//用户加入
if UpperCase(Copy(DialogW.FileName, length(DialogW.FileName) - 3, 4)) <>
'.XLS' then
DialogW.FileName := DialogW.FileName + '.xls';
//检查文件是否存在
if FileExists(DialogW.FileName) = True then
begin
if DeleteFile(pchar(DialogW.FileName)) = false then
begin
Exit;
end;
//删除后延迟一定时间后再创建文件
Sleep(100);
end;
FileName := DialogW.FileName;
DBGridEhExport := TDBGridEhExportAsXLS.Create;
try
DBGridEhExport.DBGridEh := DBGridEh1;
DBGridEhExport.ExportToFile( DialogW.FileName, IsSaveAll);
finally
DBGridEhExport.Free;
end; ExcelApp := CreateOleObject('Excel.Application');
WorkBook := CreateOleObject('Excel.Sheet');
try
WorkBook := ExcelApp.WorkBooks.open(FileName);
WSheet := WorkBook.Sheets[1];
ExcelApp.ActiveWindow.DisplayGridlines := False;
WSheet.cells[1,1] := 'aaa'; // WorkBook.WorkSheets[1].SaveAs(FileName);
//DisplayAlerts := False;
WorkBook.Save;
Application.ProcessMessages;
finally //Application.DisplayAlerts = False
// WSheet := Unassigned;
// WorkBook := Unassigned;
workBook.Saved := True;
WorkBook.Close;
ExcelApp.WorkBooks.Close;
ExcelApp.Quit;
ExcelApp := Unassigned;
end; end;
finally
DialogW.Free; end;
end;