使用openpyxl python处理非常大的文件

使用openpyxl python处理非常大的文件,python,openpyxl,bigdata,Python,Openpyxl,Bigdata,我有一个11000行10列的电子表格。我试图用选定的列复制每一行,每一行添加额外的信息并输出到txt 不幸的是,我遇到了非常糟糕的性能问题,文件在100行之后开始缓慢运行,并杀死了我的处理器。有没有办法加快这一速度或使用更好的方法?我已经在使用read_only=True和data_only=True 内存最密集的部分是遍历每个单元格: for i in range(probeStart, lastRow+1): dataRow ="" for j in range (1,col

我有一个11000行10列的电子表格。我试图用选定的列复制每一行,每一行添加额外的信息并输出到txt

不幸的是,我遇到了非常糟糕的性能问题,文件在100行之后开始缓慢运行,并杀死了我的处理器。有没有办法加快这一速度或使用更好的方法?我已经在使用
read_only=True
data_only=True

内存最密集的部分是遍历每个单元格:

for i in range(probeStart, lastRow+1):
    dataRow =""
    for j in range (1,col+2):
        dataRow = dataRow + str(sheet.cell(row=i, column=j).value)  + "\t"

    sigP = db.get(str(sheet.cell(row= i, column=1).value), "notfound") #my additional information 
    a = str(sheet.cell(row = i, column = max_column-1).value) +"\t" 
    b  = str(sheet.cell(row = i, column = max_column).value) + "\t"
    string1  = dataRow + a + b + sigP + "\n"
    w.write(string1)
问题:有没有办法加快速度或使用更好的方法

请尝试以下操作,看看这是否可以提高性能:

注意:不知道
col
max\u列的值

我的示例使用4列并跳过C列

数据
['A1','B1','C1','D1'],
['A2','B2','C2','D2']


输出
A1 B1 D1未找到
A2 B2 D2未找到


使用Python:3.4.2-openpyxl:2.4.1进行测试

@Rahul熊猫如何更好?我应该使用哪些功能来提高性能?我认为这里不需要熊猫。openpyxl就足够了。think问题是
db。get
重复使用
ws.cell()
是代码中的问题,它迫使openpyxl一次又一次地重新分析工作表。
from openpyxl.utils import range_boundaries
min_col, min_row, max_col, max_row = range_boundaries('A1:D2')

for row_cells in ws.iter_rows(min_col=min_col, min_row=min_row,
                              max_col=max_col, max_row=max_row):

    # Slice Column Values up to B
    data = [cell.value for cell in row_cells[:2]]

    # Extend List with sliced Column Values from D up to End
    data.extend([cell.value for cell in row_cells[3:]])

    # Append db.get(Column A.value)
    data.append(db.get(row_cells[0].value, "notfound"))

    # Join all List Values delimited with \t
    print('{}'.format('\t'.join(data)))

    # Write to CSV
    #w.write(data)