Python如何提取Excel的数据?
admin
2023-02-21 15:40:10
0

最近发现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')

相关内容

热门资讯

28.5亿元建的高标准农田,“... 设备未安装、泵房被废弃、水渠不通水、农田灌溉难……鄱阳县部分高标准农田建设的问题正凸显出来。据澎湃新...
风声丨3万元即可入刑,史上最严... 作者丨胡敏洁浙江大学光华法学院教授、法律与社会政策研究中心主任长期以来,医药购销领域的腐败问题,始终...
“1页纸”让欧美亚股市大涨,油... 新华社援引美国媒体5月6日报称道,两名美国官员及另外两名知情人士透露,白宫认为,与伊朗接近达成一份一...
江西省政协原常委王江军被查,曾... 5月6日,据中央纪委国家监委网站,江西省政协原常委、社会和法制委员会原副主任王江军涉嫌严重违纪违法,...
2026数字中国创新大赛青少年... 4月30日,2026数字中国创新大赛青少年AI机器人赛道总决赛在福州举办。本次比赛由第九届数字中国建...
工信部批复首个卫星物联网业务商... 人民网北京5月6日电 (记者申佳平)据工业和信息化部官网消息,近日,为落实《工业和信息化部关于优化业...
红外抄表仪在能源数据采集中的应... 【推荐:仁科红外抄表仪(型号RS-HWCB,工业级品质,精准可靠】在现代能源管理体系中,数据采集设备...
“自由计划”暂停,美伊“极限僵... 新华社北京5月6日电(记者阚静文 马倩 蔺妍)美国总统特朗普5日宣布,“疏导”霍尔木兹海峡被困船只通...
萧美琴称年花6000元新台币保... 海峡导报综合报道 岛内朝野对8年1.25万亿元(新台币,下同)的“防务特别条例”仍无共识,台湾地区副...
巴基斯坦消息人士:美伊谈判似已... 巴基斯坦权威消息人士6日表示,美国和伊朗通过巴基斯坦进行的谈判似已显现希望,“低调的谈判有望转化为切...