在python中,如何能同时打开多个excel而只操作其中一个

zhywdd 2009-08-07 11:18:06
同时打开2个excel,操作其中一个时,2个经常出现混乱。
2个都是用win32com.client.dispatch('Excel.Applicatiion')方式的。
如何能只操作其中一个?
...全文
696 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdayok 2009-08-09
  • 打赏
  • 举报
回复
这个要去了解下excel的组成,一般情况下只有一个app,但是可以有多个book,每个book又可以有多个sheet,如果想打开多个xls文件,只要保存book对象,在使用的时候调用其active方法使之成为当前对象就行了.
zhywdd 2009-08-07
  • 打赏
  • 举报
回复
谢谢回答
case1 = Case1()
case2 = Case2()
case2.selectCell('Sheet',1,1,1,1)
这样第3行是无效的。
case2 = Case2()
case2.selectCell('Sheet',1,1,1,1)
这样就可以运行了,但是我拿不到datadriven的数据了。
肯定是case1的excel没关掉,所以运行出问题了,哭。说不定有很容易的方法,我不知道。咳
DarkChampion 2009-08-07
  • 打赏
  • 举报
回复
莫非Excel只有一个实例?

要不就只要一个app,用多个book
zhywdd 2009-08-07
  • 打赏
  • 举报
回复
Case1() 和 Case2()都有一样的__init__()
def __init__(self, fileName = None):
self.xlApp = win32com.client.Dispatch('Excel.Application')
self.xlBook = self.xlApp.Workbooks.Open(fileName)
2个都要打开
case1 = Case1()#DataDrive's data
case2 = Case2()#Real case 要用DataDrive里的数据
然后就出问题了,2个老是搞在一起。


DarkChampion 2009-08-07
  • 打赏
  • 举报
回复
win32com.client.dispatch('Excel.Applicatiion')不是返回了APP吗?


xlApp = win32com.client.dispatch('Excel.Applicatiion')
xlApp.Visible = 1
xlBook = self.xlApp.Workbooks.Open(filename)

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

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