使用python占用大量Excel文件太多时间

时间:2019-05-28 11:00:27

标签: python excel

我有一个4.95 MB的Excel文件。我正在尝试使用openpyxl读取此文件 并在此文件中执行一些excel公式。小文件非常有用。但是很快我就开始处理大文件了。它似乎要移动到无限状态,需要花费太多时间。请通过某种方式告诉我,或者我应该对这段代码进行什么修改。

import openpyxl
import os
import xlrd
import xlsxwriter
#reading the file i.e. 4.5 Mb
wb = openpyxl.load_workbook(r"type_example.xlsx")
Sheet = wb.get_sheet_by_name('sheet1')


for row,cellObj in enumerate(Sheet["C"],1):
    cellObj.value='=IF(OR(B{0}="J", B{0} ="U", B{0} ="s"),"s", IF(OR(B{0} ="I", B{0} ="M", B{0} ="N", B{0}="O", B{0} ="Q", B{0} ="U", B{0} ="V"), "J", "des"))'.format(row)
    Sheet.cell(row=1, column=3).value = 'Dt'
    #path to save file 
    wb.save(r'\Documents\test_1.xlsx')

1 个答案:

答案 0 :(得分:0)

我快速浏览了一下,发现问题可能是因为您正在逐个电池移动。

如果执行类似的操作(不理想),似乎openpyxl基本上会在整个文档中进行线性搜索以找到所需的单元格,并且如果想要加快速度,则需要使用生成器。

它看起来并不难,但是我对python并不特别熟练。因此,我不会尝试自己解释这个概念,而是会给您留下这样的印象:

https://blog.davep.org/2018/06/02/a_little_speed_issue_with_openpyxl.html

希望有帮助。