【发布时间】:2023-03-27 20:39:02
【问题描述】:
我正在开发一个应用程序,该应用程序可以使用 Openpyxl 读取大型 .xlsx(超过 20000 行),并且可以使用这些数据进行一些基本计算。我尝试在下面的示例中读出 20000 行。当我在 Windows 的命令提示符中运行此代码时,输出很好,但是当我在 linux 终端或 PyCharm 终端中运行它时,10000 后的输出变为无。
我已经尝试将 load_workbook read_only 参数更改为 True,但这完全破坏了应用程序的性能
from openpyxl import *
wb = load_workbook(filename="wind_data.xlsx", read_only=False)
ws = wb.active
output_data = [ws.cell(row=i, column=2).value for i in range(2, 20002)]
for i in range(0, len(output_data)):
print(str(i+1) + " : " + str(output_data[i]))
我期望从这段代码中得到的输出结果是:
19998 : 6
19999 : 6
20000 : 6
但是我得到了:
19998 : None
19999 : None
20000 : None
【问题讨论】:
-
您是否仔细检查过两台计算机上的文件是否完全相同? openpyxl 不使用特定于平台的代码,因此行为将是相同的。此外,使用
ws.cell()是您在只读模式下的问题。对于此类任务,请始终使用ws.iter_rows()。