最近写了一段程式处理EXCEL档
主要是比对档案中第一个资料表的第7栏中如果含有“字串”这个字串
就把整个资料列删除,目前跑起来在500个资料列以下的档案都算顺畅
但是如果跑10000列以上的xlsx档,效能显得非常的差
有时候得跑几个小时才会出来,请问各位有没有可以提高效能的写法
感谢!!
程式码如下:
from openpyxl import load_workbook
import time
start = time.time()
wb = load_workbook(filename = 'test.xlsx')
a=wb.get_sheet_names()[0]
sheet_ranges = wb[a]
row=sheet_ranges.max_row
for i in range(1,row):
print(i)
a="字串"
if row == sheet_ranges.max_row:
for arow in range(1,int(row)):
b=str(sheet_ranges.cell(row=int(arow),column=7).value)
if b.find(a)>=0:
sheet_ranges.delete_rows(arow)
wb.save('test.xlsx')
else:
continue
else:
rowa=sheet_ranges.max_row
for arow in range(1,int(rowa)):
b=str(sheet_ranges.cell(row=int(arow),column=7).value)
if b.find(a)>=0:
sheet_ranges.delete_rows(arow)
wb.save('test.xlsx')
else:
continue
print('执行结束')
end = time.time()
elapsed = end - start
print ("程式运行了:", elapsed, "秒")