【发布时间】:2026-02-13 09:05:02
【问题描述】:
我正在使用 Python 3.5 和 win32com 遍历一个 excel 文档行(仅从第一列)并从中获取所有值,最好是在一个简单的列表中。我尝试了以下实现,但存在一些问题:
excel_app = win32com.client.Dispatch('Excel.Application')
workbook = excel_app.Workbooks.Open(myfile2)
worksheet = workbook.Sheets('Sheet1')
data = excel_app.Range("A1:A60")
print(data)
for i in data:
if i is not None:
print(i)
问题主要出在:"data = excel_app.Range("A1:A60")"
这需要前 60 行,我希望只获得与 excel 文件中的数据一样多的行,否则要么我没有得到足够的数据,要么我得到的太多而我最终有一堆“无”
它返回一个元组,因此如果我获得的数据多于电子表格的数据,我无法修改它以删除“无”值。
【问题讨论】:
-
您使用 win32com 的任何具体原因?这是比较困难的方法之一。
-
是的,我需要 win32com,因为它是我知道的唯一一个库,如果我的条件为真(如果我不是 None),它可以让我将对象嵌入到 excel 中,使用以下代码:Embedded_object.Add(ClassType =None, Filename=file_loction, Link=False, DisplayAsIcon=True, Left=3, Top=0, Width=50, Height=50)
-
好的,明白了...但是如果阅读如此不便并且只能使用 win32com 进行嵌入 - 为什么不混合使用呢?使用 win32com 进行所有工作且别无选择,xlrd 可以解决简单的阅读问题