import xlrd
import xlsxwriter
def open_xls(file):#打开文件
fh=xlrd.open_workbook(file)
return fh
def getsheet(fh):#获取sheet
return fh.sheets()
def getnrows(fh,sheet):#获取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):#按sheet行遍历
rdata=table.row_values(row)
newdatavalue.append(rdata)#将每个sheet的所有值存入一个列表
return newdatavalue
def getshnum(fh):#获取sheet表的个数
x=0
sh=getsheet(fh)
for sheet in sh:
x+=1
return x
if __name__=='__main__':
allxls=['C:/Users/Administrator.MACHENI-KA32LTP/Desktop/test.xlsx','C:/Users/Administrator.MACHENI-KA32LTP/Desktop/test2.xlsx'] #定义要合并的excel文件列表
newdatavalue=[]#存储所有读取的结果
for fl in allxls:#遍历文件
fh=open_xls(fl)
x=getshnum(fh)
for shnum in range(x):#遍历sheet
print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")
rvalue=getFilect(fl,shnum)#函数里面遍历sheet的每一行
endfile='E:/test.xlsx' #定义最终合并后生成的新文件
wb1=xlsxwriter.Workbook(endfile)#创建一个sheet工作对象
ws=wb1.add_worksheet()
for a in range(len(rvalue)):#sheet个数
for b in range(len(rvalue[a])):#sheet中的元素个数
c=rvalue[a][b]
ws.write(a,b,c)
wb1.close()
print("文件合并完成")