千家信息网

Python如何提取Excel的数据?

发表于:2024-10-11 作者:千家信息网编辑
千家信息网最后更新 2024年10月11日,最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长。想着通过简单的方式,并且快速提取数据,就想到了Python。python操作Excel使用
千家信息网最后更新 2024年10月11日Python如何提取Excel的数据?

最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长。
想着通过简单的方式,并且快速提取数据,就想到了Python。
python操作Excel使用的openyxl和pandas对Excel进行操作。
代码如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time    : 2020-02-24 下午 03:43# @Author  : Zhanxing# @Site    :# @File    : 提取字段.py# @Software: PyCharmimport openpyxlimport pandas as pdfrom xlutils.copy import copydf=pd.read_excel('222.xlsx',sheet_name='XXX')data=(df[['XXX','XXX']])data.to_excel("new.xlsx", index=False)class Excel:    def __init__(self, excel_file):        self.excel = openpyxl.load_workbook(excel_file)        self.sheet_name = self.excel.get_sheet_names()        self.sheet = self.excel.get_sheet_by_name(self.sheet_name[0])    def excel_read(self):        """        返回excel每一行的生成器对象        :return:        """        yield from self.sheet.iter_rows(min_row=2)def run(excel_file, new_excel):    """    :param excel_file: 要处理的excel的路径    :param new_excel:  处理后要保存的文件名    :return:    """    excel = Excel(excel_file)    excel_line = [line for line in excel.excel_read()]    for line in excel_line:        for cell in line:            if isinstance(cell.value, int):                continue            people_name = cell.value.strip('[]').split(',')            for num in range(len(people_name)):                if 'XX' in people_name[num]:                    excel.sheet.cell(row=cell.row, column=cell.column, value=people_name[num])                    break    excel.excel.save(new_excel)if __name__ == '__main__':    run('new.xlsx','11.xlsx')
0