51Testing软件测试论坛
标题:
保存excel文件,在本机上都能调试通过,相同的代码在别的机子上就不能通过!!
[打印本页]
作者:
wscqb
时间:
2011-5-27 09:06
标题:
保存excel文件,在本机上都能调试通过,相同的代码在别的机子上就不能通过!!
保存excel文件,在本机上都能调试通过,相同的代码在别的机子上就不能通过!!
每次都是在 ObjExcel.Save SavePath 报错,说类的方法不正确
具体代码如下,请高手能指点下,郁闷死了
set ObjExcel=GetObject("","excel.Application")
Set fso=CreateObject("scripting.FileSystemObject")
ObjExcel.Visible=false
SavePath="E:\test.xls"
'导出的历史数据存储路径
If fso.FileExists(SavePath)=True Then
fso.DeleteFile(SavePath)
end if
ObjExcel.Save SavePath
ObjExcel.quit
Set fso=nothing
Set ObjExcel=nothing
作者:
风雪夜归人
时间:
2011-5-27 10:50
路径问题?或者是E:\test.xls已经存在了?
office版本不同?
作者:
wscqb
时间:
2011-5-27 14:01
我上面的代码中有对文件是否存在的处理,如果存在就先删除,所以也不是路径和文件的问题
还有一个情况是这样:我把这代码段放到我软件脚本中去运行,也是报错,软件运行的环境都没有变(还是我自己的机子)
所以这个也不是office的版本不同的问题
哎,现在头都大了,被这个问题卡了两天了
作者:
lyscser
时间:
2011-5-27 14:59
本帖最后由 lyscser 于 2011-5-27 15:00 编辑
在本机可能是删除失败了才导致运行成功的,Save是覆盖保存,应该是应用于保存已经打开文件的修改,新存是SaveAs的吧
具体函数参见下面这个(截取一个函数的一部分,注意注释):
Set fObject = CreateObject("Scripting.FileSystemObject")
If Not fObject.FileExists(appointedFile) Then
Repor micFail,"参数文件不存在:",appointedFile
Set fObject = Nothing
End If
If fObject.FileExists(tmpName) Then
fObject.DeleteFile(tmpName)
End If
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Application.Visible = False
ExcelApp.DisplayAlerts = False
Set newBook = ExcelApp.Workbooks.Open (appointedFile,False,True)--只读模式
newBook.Worksheets(appointedSheet).Copy
Set tempBook = ExcelApp.ActiveWorkbook
tempBook.SaveAs tmpName,1--保存成xls格式
Set tempBook = Nothing
ExcelApp.Quit
Set ExcelApp = Nothing
DataTable.AddSheet newSheet
DataTable.ImportSheet tmpName,appointedSheet,newSheet
If fObject.FileExists(tmpName) Then
fObject.DeleteFile(tmpName)
End If
复制代码
作者:
wscqb
时间:
2011-5-27 17:05
但是使用 ObjExcel.SaveAs SavePath 系统提示
ObjExcel这个对象不支持这样的方法
作者:
wscqb
时间:
2011-5-27 17:08
而且我有几次调试的时候,这个路径下文件是空的,使用save也是能保存文件的
所以我想应该不是你说的那个问题
作者:
lyscser
时间:
2011-5-28 15:30
tempBook.SaveAs tmpName,1--保存成xls格式
作者:
wscqb
时间:
2011-5-30 14:50
还是不行,我怀疑,应该上我上面的那段代码在我软件运行过程中没有真正得到那个excel的对象,所以在对该对象进行操作的时候就会出错。
但是为什么单独就这块代码段就可以运行通过,而且也是能正确执行相关操作呢
非常的崩溃
作者:
wscqb
时间:
2011-5-30 15:01
自己顶一下,高手帮忙啊
作者:
wscqb
时间:
2011-5-30 16:41
有高手出手相救没
作者:
ljj149850508
时间:
2011-6-7 16:45
本帖最后由 ljj149850508 于 2011-6-7 17:55 编辑
你的EXCLE进程没有关闭。。
fso.close()
创建了文件流,不去关闭。。该进程一直存在。。导致报错。。
作者:
sunnyswu
时间:
2011-6-8 21:58
set ObjExcel=GetObject("","excel.Application")
修改为 createobject()
因为这存在一个你本机打开了excel进程的问题,而其他机子没有打开此进程。
猜测啊 可以实验下
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2