数据分析

数据分析多sheet数据合并封装

import xlrd,xlsxwriter
allxls =["F:/first.xls","F:/second.xls"]
endxls = "F:/endxls.xls"

def open_xls(file):
    try:
       fh=xlrd.open_workbook(file)
       return fh

    except Exception as e:
        print(str("openerror,error"+e))


def getsheet(fh):
    return fh.sheets()

def  getnrows(fh,sheet):
    table = fh.sheets()[sheet]
    content = table.nrows
    return content

def getfilect)(fh,fl,shnum):
    fh= open_xls(fl)
    table = fh.sheet.by_name(shname[shnum])
    num = getnrows(fh,shnum)
    lenrvalue = len(value)
    for row in range(0,num):
        rdata = table.row_values(row)
        rvalue.append(rdata)
    filevalue.append(rvalue[lenrvalue])
    return filevalue

filevalue = []
svalue =[]
rvalue = []
shname=[]

# 读取第一个待读文件,获取sheet数
fh = open_xls(allxls[0])
sh = getsheet(fh)
x = 0
for sheet in sh:
    shname.append(sheet.name)
    svalue.append([])
    x+=1


for shnum in range(0,x):
    for fl in allxls:
        print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个标签")
        filevalue = getfilect(fh,fl,shnum)
    svalue[shnum].append(filevalue)


sn= x 
fn = len(allxls)
endvalue = []

def getsvalue(k):
    for z in range(k,k+fn):
        endvalue.append(svalue[0][0][z])
    return endvalue


wb1 = xlsrwriter.Workbook(endxls)
ws = we1.add_worksheet()
polit = 0
linenum =0 

for s in range(0,sn*fn,fn):
    thisvalue = getsvalue(s)
    tvalue = thisvalue[polit:]
    for a in range(0,len(tvalue)):
        for b in range(0,len(tvalue[a])):
            for c in range(0,len(tvalue[a][b])):
                data = tvalue[a][b][c]
                ws.write(linenum,c,data)
            linenum+=1

        polit = len(thisvalue)

    wb1.close()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值