资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

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: 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')

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:Python如何提取Excel的数据?-创新互联
网页链接:http://cdkjz.cn/article/pijcc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220