EXCEL多表数据提取物

本程序应用场景:有多个工作簿,每个工作簿里面有多个表格,

并且第一个表格的格式相同,但表格名称不一定相同,

从每个工作簿中第一个表格中提取一个网址里面的id信息,并将id相同的去重复,

最后将整理的数据存放到新的表格中

下面图片中左侧为我们的原始数据,可以看到有很多个工作簿(实际可能更多)右侧为工作簿中第一个表格的数据,这里我们需要提取网址中的id信息,并去重保存。

最终效果展示,可以看到没有重复内容。

# -*- coding:utf-8 -*-

'''

本程序应用场景:有多个工作簿,每个工作簿里面有多个表格,

并且第一个表格的格式相同,但表格名称不一定相同,

从每个工作簿中第一个表格中提取一个网址里面的id信息,并将id相同的去重复,

最后将整理的数据存放到新的表格中

'''

import re

from openpyxl import load_workbook as wk

from openpyxl import Workbook as nwk

import os

file=r'E:\python\EXCEL多表数据提取\数据'

def file_name(file_dir):

for root,dirs,files in os.walk(file_dir):

return files

#文件列表

list_wenjian=file_name(file)

#踢出python程序文件名

list_wenjian.remove('quchong.py')

print(list_wenjian)

#数据列表

value=[]

#存放id的数组,用于判断id是否重复

data=['wenjian']

#逐个读取工作簿数据处理并去除重复后存到临时数组中

for i in range(len(list_wenjian)):

file=list_wenjian[i]

wb=wk(file)

#获取工作簿表格集合

sheet_names=wb.get_sheet_names()

#获取第一个表格

ws=wb.get_sheet_by_name(sheet_names[0])

lenth=len(list(ws.rows))

for i in range(2,lenth+1):

#将数据中id=后面的数字截取出来

ss=str(ws.cell(row=i,column=1).value)

a=re.findall(r'id=(\d*)',ss)

#去重复

if a in data or a==[]:

pass

else:

data.append(a)

print(a[0])

value.append({"id":a[0],"url":ss})

new_wb=nwk()

sheet=new_wb.active

sheet.title="同行数据"

for i in range(len(value)):

sheet.cell(row=i+1,column=1).value=value[i]['id']

sheet.cell(row=i+1,column=2).value=value[i]['url']

print("正在清洗数据。。。请耐心等待!")

#将数组内容清空、释放内存

value=[]

new_wb.save("shuju.xlsx")

print("《《《《《《《《《《《数据清洗完毕》》》》》》》》》》》》")

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520G1HI3Q00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券