ReadAllExcel

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


#将多个Excel文件合并成一个
import os
import xlrd
import xlsxwriter


#打开一个excel文件
def open_xls(file):
    fh=xlrd.open_workbook(file)
    return fh


#获取excel中所有的sheet表
def getsheet(fh):
    return fh.sheets()


#获取sheet表的行数
def getnrows(fh,sheet):
    table=fh.sheets()[sheet]
    return table.nrows


#读取文件内容并返回行内容
def getFilect(file,shnum):
    fh=open_xls(file)
    table=fh.sheets()[shnum]
    num=table.nrows
    for row in range(num):
        rdata=table.row_values(row)
        datavalue.append(rdata)
    return datavalue


#获取sheet表的个数
def getshnum(fh):
    x=0
    sh=getsheet(fh)
    for sheet in sh:
        x+=1
    return x




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


        # print(root) #当前目录路径
        # print(dirs) #当前路径下所有子目录
        print(files) #当前路径下所有非目录子文件 


        return root, dirs, files


'''
将目录的路径加上'/'和文件名,组成文件的路径
'''
def get_allfile_url(root, files):
    i = 0
    allFile_url = []
    for f in files:
        i += 1
        print(len(files))
        print(i)
        if i > len(files):
            break
        file_url = root + '/' + f
        print (file_url)
        allFile_url.append(file_url)
        print (allFile_url)
    return allFile_url




if __name__=='__main__':
    #定义要合并的excel文件列表
    # allxls=['D:\\_QKTools\\PY\\e\\Test1_20160311.xlsx' , 'D:\\_QKTools\\PY\\e\\Test1_20160729.xlsx']
    #存储所有读取的结果
    file_dir = 'D:/_QKTools/PY/e'
    root, dirs, files = get_allfile_msg(file_dir)
    allxls = get_allfile_url(root, files)
    print(allxls)
    # os.system("pause")


    datavalue=[]
    for fl in allxls:
        fh=open_xls(fl)
        x=getshnum(fh)
        for shnum in range(2):
            print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")
            rvalue=getFilect(fl,shnum)
    #定义最终合并后生成的新文件
    endfile='D:\\_QKTools\\PY\\e\\11111.xlsx'
    wb1=xlsxwriter.Workbook(endfile)
    #创建一个sheet工作对象
    ws=wb1.add_worksheet()
    for a in range(len(rvalue)):
        for b in range(len(rvalue[a])):
            c=rvalue[a][b]
            ws.write(a,b,c)
    wb1.close()
    print("文件合并完成")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值