在openpyxl中读取超过10000行.xlsx文件后,没有值

时间:2019-06-07 10:12:23

标签: python openpyxl xlsx

我正在开发一个应用程序,该应用程序可以使用Openpyxl读取大的.xlsx(超过20000行),并且可以使用此数据进行一些基本计算。我尝试在下面的示例中读取20000行。当我在Windows的命令promt中运行此代码时,输​​出很好,但是当我在linux终端或PyCharm终端中运行它时,将10000更改为None后,输出。

我已经尝试将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

1 个答案:

答案 0 :(得分:0)

我建议对真正的大集合使用生成器理解。

output_data = (ws.cell(row=i, column=2).value for i in range(2, 20002))

这可能对您有帮助。我在Linux上对其进行了测试,在超过2万行的excel上运行良好。 其次,当您要遍历此类集合并且还具有索引时,请使用以下函数:

  

枚举(集合)

赞:

for i, val in enumerate(output_data):
    print('{} : {}'.format(i+1, val)