批量对比文件内容_【学习心得】Python批量提取多个Excel文件内容

本文主要讲解怎样使用Python对多个excel文件任意区域内容进行批量提取。在看这篇文章之前,默认你已经具备了python的基础知识。如果没有任何基础,建议先看看上一篇文章:【学习心得】我的Python入门之旅。

话不多说,直接上原始数据给大家看,注意,本文所使用数据全部为模拟假设数据,并非真实数据,请勿他用。本次使用数据为8个excel文件,理论上80个、800个excel都可以用本文方法进行操作…所以,主要学习方法应用…

数据说明,在文件夹里有多个excel文件如下图:

81542c763d9257d864818247e997f461.png

同时,文件里的数据结构如下图,给出两个示例图:

fe9aacd84c605192398b92410d71fb1f.png
48539509a8874440ff4335e45477ba1d.png

上面示例数据的数据结构是一样的,注意现在提出的提取要求:把上面8个城市(也就是8个文件)的2005-2010年的前5列数据提取至一个sheet表里,该怎么办呢?当然了,8个城市完全可以手动复制粘贴,那么80个、800个城市呢?显然不行,工作量太大。这里我们可以使用python进行批量提取。当然本文只是应用了python的其中一些库,还有很多种方法可以满足这个需求,暂且不论。

本文主要使用到两个python库,一个是os库,主要用来对系统内的一些处理进行响应;另一个是openpyxl库,主要对excel文件进行操作处理。接下来,我将直接上全部代码,然后再逐一分析每段代码背后的故事…

-----------------完整代码分割线---------------

#coding=utf-8

from openpyxl import Workbook

from openpyxl import load_workbook

import openpyxl

import os

wb2=openpyxl.Workbook()

wb2.save('newdata.xlsx')

print u"新建Excel文件成功"

filepath="c:czdata"

dataset=os.listdir(filepath)

wb2=openpyxl.load_workbook('newdata.xlsx')

sheets2=wb2.sheetnames

sheet2=wb2[sheets2[0]]

k=1

countnum=1

for i in dataset:

print "run the number:{0} {1}".format(countnum,i)

wb1=openpyxl.load_workbook(filepath+"{}".format(i))

sheets1=wb1.sheetnames

sheet1=wb1[sheets1[0]]

j=k

for m in range(6,12):

for n in range(1,8):

cell1=sheet1.cell(row=m,column=n).value

sheet2.cell(row=j,column=n).value=cell1

j=j+1

k=j

countnum=countnum+1

wb2.save('newdata.xlsx')

wb1.close()

wb2.close()

print "run process successfully"

-----------------完整代码分割线---------------

运行代码后,在代码py格式文件目录下会自动生成一个新的excel文件:newdata.xlsx。这就是我们需要的文件,代码运行过程如下:

6f10b9eefd8cefb4e2755dad16f88f30.png

代码运行结果如下:

e4d1746be83b1cd23a80a2554f0fe23b.png

这里的newdata.xlsx就是我们需要的文件,打开文件如下:

897ac819dfcd600c43288ce5c2de3e08.png

可以想象,如果有成千上百的excel文件需要我们提取固定区域的数据的话,这段代码能够给我们减轻很大的负担。

不行,累了,先不写了,完整代码分析明天我再写个续文吧。

共同学习,一起进步!明天继续。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值