当前位置: 首页 > 图灵资讯 > 行业资讯> Python如何对多个sheet表进行整合?

Python如何对多个sheet表进行整合?

来源:图灵python
时间: 2024-07-30 09:53:46

说明

1、xlwt模块是非附加写入的.xls模块,所以要一次性写入for循环和列表,这样就没有额外和非额外的说法了。

2、将Excel表合并,将每个Excel表作为行,即行合并,换个思路,将Excel表中的标签作为列,可以进行列合并,即将不同文件中相同标签组成的不同标签合并,可先将不同文件中相同标签合并,将不同文件中相同标签组成列表,然后将前面组成的不同标签合并,即可获得Excel文件的全部内容。

实例

#xlrd和xlwt模块的导入
#读取xlrd模块.XLSExcel文件模块,XLWT模块是以非附加方式编写的。.Excel文件的模块
importxlrd,xlwt
#导入要读的文件的路径
a=["C:/Users/Desktop/m1.xls","C:/Users/Desktop/m2.xls"]
#定义要写的文件的路径
b="C:/Users/Desktop/m3.xls"
#定义函数,判断打开文件是否异常
defopen(fileaddress):
try:
#open_通过xlrd模块workbook()方法,打开Excel文件,将变量fo定义为文件句柄
fo=xlrd.open_workbook(fileaddress)
returnfo
exceptExceptionase:
print("error!"+str(e))
#定义函数,在Excel文件下获得某个标签的行数
defgetrows(fo,num):
table=fo.sheets()[num]
#sheets()函数是xlrd模块自带的函数,Excel文件的标签可以列表的形式返回
n=table.nrows
#nrows为xlrd模块带来自己的函数,通过调用某个标签可以获得该标签的行数
returnn
"""
定义函数可以通过Excel文件路径和标签的序列号获得
任何Excel文件任何标签的内容,并以列表的形式返回
"""
defgetsheetcontents(fileaddress,num):
avalue=[]
fo=open(fileaddress)
table=fo.sheets()[num]
n=table.nrows
foriinrange(0,n):
"""
row_values()函数是xlrd模块自带的函数,通过某个标签调用,
以列表形式返回标签的行数据,标签中
列为列表的元素
"""
rdate=table.row_values(i)
avalue.append(rdate)
returnavalue
svalue=[]
k=[]
#所有Excel文件的标签数都是通过for循环获得的,并以列表的形式返回
foriina:
fo=open(i)
k.append(len(fo.sheets()))
#对这些标签进行升序排序
k.sort()
#将这些Excel文件中不同标签的所有内容通过for循环放入列表svalue中
foriinrange(0,k[len(k)-1]):
#将不同Excel文件的同一标签放在列表bvalue中,通过for循环
bvalue=[]
forjina:
print("正在读取"+str(j)+"的第"+str(i)+"个标签")
bvalue.append(getsheetcontents(j,i))
svalue.append(bvalue)
#Svalue是所有Excel文件的内容

#Workbook()通过xlwt模块创建一个.xls文件将变量fw定义为文件句柄
fw=xlwt.Workbook()
line=0
#add_sheet()函数是xlwt模块自带的函数,可以得到一个自定义的标签
#将变量ws定义为标签句柄
ws=fw.add_sheet("sheet1")
"""
svalue列表通过for循环,最后得到的
在新标签中写入某个标签、某个文件、某个行列的数据
"""
foriinrange(0,len(svalue)):
forjinrange(0,len(svalue[i])):
forminrange(0,len(svalue[i][j])):
forninrange(0,len(svalue[i][j][m])):
ws.write(line,n,svalue[i][j][m][n])
#通过line可以获得不断增加的行数
line+=1
print("合并完成")
#save()函数为xlwt自带函数,将合并的excel文件保存在一定路径下
fw.save(b)
#没有close()函数的xlrd模块和xlwt模块,即使用这两个模块打开文件,也不需要关闭文件

以上是Python整合多个sheet表的方法,希望对大家有所帮助。更多Python学习指导:基础教程python基础教程

本教程的操作环境:windows7系统,Python 3.9.1,DELL G3电脑。