有一个300M的excel 需要从中找出一列并去重,用pandas 处理非常缓慢,使用openpyxl的只读模式可以加快访问数据,但是也大概处理了10分钟,才得出结果,以下是代码
看代码
from openpyxl import load_workbook
from openpyxl import Workbook
wb = Workbook()
sh = wb.active
# 存储项目类型的集合
project_types = set()
def read_xlsx(read_only):
#读取指定文件
wb = load_workbook(r'F:\\temp\excel\保后跟踪管理台账(1).xlsx', read_only=read_only)
#读取指定sheet
sheet=wb['履约、预付款总台账']
# 限制第二行开始 到最大行 限制第9列开始 第9列结束 因为第9列是我想要的字段
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row,min_col=9, max_col=9, values_only=True):
for cell in row:
project_types.add(cell)
if __name__ == '__main__':
read_xlsx(read_only=True)
for project_type in project_types:
print(project_type)