Cool
Cool
Published on 2024-05-17 / 48 Visits
0
0

python 处理大excel 示例

有一个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)


Comment