Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python访问打开的Excel工作簿_Python_Excel_Openpyxl_Python Module_Win32com - Fatal编程技术网

使用Python访问打开的Excel工作簿

使用Python访问打开的Excel工作簿,python,excel,openpyxl,python-module,win32com,Python,Excel,Openpyxl,Python Module,Win32com,如何使用win32com模块查找打开的Excel工作簿?我只想读取Excel工作簿中尚未保存的单元格。或者有我可以参考的文件吗?你可以这样做 >>> from win32com.client import Dispatch >>> xlApp = Dispatch("Excel.Application") 此时,COM将连接到Excel的运行副本(如果有),或者启动一个新副本(如果没有)。您显然希望连接到正在运行的版本。要确保Python代码与Excel的同

如何使用
win32com
模块查找打开的Excel工作簿?我只想读取Excel工作簿中尚未保存的单元格。或者有我可以参考的文件吗?

你可以这样做

>>> from win32com.client import Dispatch
>>> xlApp = Dispatch("Excel.Application")
此时,COM将连接到Excel的运行副本(如果有),或者启动一个新副本(如果没有)。您显然希望连接到正在运行的版本。要确保Python代码与Excel的同一实例通信,请将其隐藏并取消隐藏几次:

>>> xlApp.Visible=1
>>> xlApp.Visible=0
>>> xlApp.Visible=1
与您的代码对话的Excel实例应该对此作出反应。然后检查它是否是您想要的工作簿。如果这是一个未保存的工作簿,则其名称通常类似于
Book1

>>> xlApp.ActiveWorkbook.Name
'Book1'
如果由于
xlApp.ActiveWorkbook
None
而导致出现错误,则您的代码正在与未打开工作簿的其他Excel实例通信

然后,要从工作表中获取值,您当然必须知道您想要的单元格:

>>> xlApp.ActiveWorkbook.ActiveSheet.Range("I3").Value
'C.2.16'
您的范围和价值当然会有所不同


《哈蒙德和罗宾逊:Win32上的Python编程》第9章对此进行了非常清楚的描述,O'Reilly,2000,ISBN 1-56592-621-8。

您可以这样做

>>> from win32com.client import Dispatch
>>> xlApp = Dispatch("Excel.Application")
此时,COM将连接到Excel的运行副本(如果有),或者启动一个新副本(如果没有)。您显然希望连接到正在运行的版本。要确保Python代码与Excel的同一实例通信,请将其隐藏并取消隐藏几次:

>>> xlApp.Visible=1
>>> xlApp.Visible=0
>>> xlApp.Visible=1
与您的代码对话的Excel实例应该对此作出反应。然后检查它是否是您想要的工作簿。如果这是一个未保存的工作簿,则其名称通常类似于
Book1

>>> xlApp.ActiveWorkbook.Name
'Book1'
如果由于
xlApp.ActiveWorkbook
None
而导致出现错误,则您的代码正在与未打开工作簿的其他Excel实例通信

然后,要从工作表中获取值,您当然必须知道您想要的单元格:

>>> xlApp.ActiveWorkbook.ActiveSheet.Range("I3").Value
'C.2.16'
您的范围和价值当然会有所不同


《哈蒙德和罗宾逊:Win32上的Python编程》第9章对此进行了非常清楚的描述,O'Reilly,2000,ISBN 1-56592-621-8。

什么是激活的excel文件?你究竟如何从仍在内存中的文件中读取数据?@AlexP。通过使用COM与创建工作簿的Excel运行实例对话,可以从内存中存在的未保存工作簿中读取数据。OP使用了“激活Excel文件”,但实际上他指的是“打开Excel工作簿”,他警告我们他的英语不稳定。非常感谢您的理解,也很抱歉我的解释不充分。下次我会更加努力。@Seungyeuple如果答案对你有用,请接受它。@BoarGules这是一个很好的信息。我会记下来的。非常感谢。什么是激活的excel文件?你究竟如何从仍在内存中的文件中读取数据?@AlexP。通过使用COM与创建工作簿的Excel运行实例对话,可以从内存中存在的未保存工作簿中读取数据。OP使用了“激活Excel文件”,但实际上他指的是“打开Excel工作簿”,他警告我们他的英语不稳定。非常感谢您的理解,也很抱歉我的解释不充分。下次我会更加努力。@Seungyeuple如果答案对你有用,请接受它。@BoarGules这是一个很好的信息。我会记下来的。非常感谢。