xlrd批量读取xls格式excel文件数据。

如图使用xlrd批量整理数据资料。数据源如下:

 

要提取所有excel文件里的蓝色标记的资料到一张表里 ,效果如下:

 

        主要采用了xlrd获取xls文件的单元格数据。后面用pandas存放数据并转成了excel文件。中间又加了一点多线程的东西。其实呢这个例子只有5个文件,用不用多线程没什么影响.速度都很快.,0.1秒就可以完成了。最近一直在一点点地学习,又怕忘了,只得好好记下来了。没办法,笨鸟只能勤快点。

代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Nov 20 13:40:42 2018

@author: FanXiaoLei
xlrd的单元格行列索引都是从0开始的。xlrd没有关闭工作簿的函数。
"""
import glob
import xlrd
import pandas as pd
import threading
import time
t1=time.clock()
res=[]
def read_excel(f):
     global res   
     wb=xlrd.open_workbook(f)
     ws=wb.sheet_by_index(0)
     res.append([ws.cell(4,2).value,ws.cell(7,2).value,ws.cell(7,6).value])
def run(spath):
    threads=[]
    xls=glob.glob(spath)
    if xls:
        for xl in xls:
             t = threading.Thread(target=read_excel,args=(xl,))
             t.start()
             threads.append(t)
        for thread in threads:
            thread.join()
if __name__=='__main__':
    run('附件/*.xls')
    df=pd.DataFrame(res,columns=['姓名','承包','非承包'])        
    df.to_excel('合计.xlsx',sheet_name='合计',index=False)
    print('耗时:',time.clock()-t1)

效果图上面已经发过了。速度还是比较快的。平均耗时0.093秒就能完成,还可以的。