Python操作Excel之数据提取
最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长。
想着通过简单的方式,并且快速提取数据,就想到了Python。
python操作Excel使用的openyxl和pandas对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: PyCharm import openpyxl import pandas as pd from xlutils.copy import copy df=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‘)
相关推荐
diyanpython 2020-11-05
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
坚持是一种品质 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20