python合并excel多个sheet,怎么将多个sheet表整合成一张
说明
1.xlwt模块是非追加的。xls模块,所以需要一次性写for循环和list,所以不存在追加和不追加之说。
2.合并Excel表格,将每个Excel表格作为一行,即行合并。另一个思路是,可以把Excel表格中的标签作为列来合并列,也就是可以把不同文件中相同标签组成的不同标签合并。可以先将不同文件中相同的标签合并成一个列表,再将之前的标签合并,得到所有Excel文件的内容。
实例
#导入xlrd和xlwt模块
#xlrd模块是用于读取的模块。xls Excel文件,而xlwt模块是一个用于编写的模块。xls Excel文件以非追加的方式。
进口xlrd,xlwt
#导入要读取的文件的路径
a=[ c :/用户/桌面/m1.xls , c :/用户/桌面/m2.xls]
#定义要写入的文件的路径
b= c :/用户/桌面/m3.xls
#定义一个函数来确定打开文件时是否会发生异常。
defopen(文件地址):
尝试:
#通过xlrd模块的open_workbook()方法打开一个Excel文件,将变量fo定义为文件句柄。
fo=xlrd . open _ workbook(file address)
returnfo
异常异常:
打印(错误!str(e))
#定义函数获取Excel文件下某个标签的行数
defgetrows(fo,num):
table=fo.sheets()[num]
#sheets()函数自带xlrd模块,可以列表的形式返回这个Excel文件的标签。
n=table.nrows
#nrows是xlrd模块的函数,调用它可以得到一个标签的行数。
returnn
定义函数,可以通过Excel文件的路径和标签的序号获得。
任何Excel文件中任何标签的内容都作为列表返回。
defgetsheetcontents(文件地址,编号):
avalue=[]
fo=open(文件地址)
table=fo.sheets()[num]
n=table.nrows
foriinrange(0,n):
Row_values()函数是xlrd模块的函数,由某个标签调用。
可以获取标签的行数据,这些行数据以列表的形式返回。在标签中
作为列表列出的元素
rdate=table.row_values(i)
avalue.append(rdate)
返回值
svalue=[]
k=[]
#通过for循环获取所有Excel文件的标签号,并以列表形式返回。
foriina:
fo=打开(I)
k.append(len(fo.sheets()))
#按升序排列这些标签。
排序()
#通过for循环将这些Excel文件中不同标签的所有内容放入list svalue中
foriinrange(0,k[len(k)-1]):
#通过for循环将不同Excel文件的相同标签放入list bvalue中
bvalue=[]
forjina:
Print(读取 str(j)的第 str(i 个标签)
b value . append(get sheet contents(j,I))
值.追加(值)
#svalue包含所有Excel文件的内容。
#创建一个。xls文件,并定义一个变量fw作为文件句柄。
fw=xlwt。工作簿()
线=0
xlwt模块附带了#add_sheet()函数,您可以获得一个自定义标签。
#将变量ws定义为标签句柄
ws=fw.add_sheet(sheet1 )
通过for循环遍历svalue列表,并将最终的
将某一标签、某一文件、某一行、某一列的数据写入新标签。
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获得越来越多的行。
线=1
打印(“合并完成”)
#save()函数是xlwt自带的函数,将合并后的Excel文件保存到某个路径。
固件保存(b)
#xlrd模块和xlwt模块中没有close()函数,即使用这两个模块打开文件而不关闭文件。以上是Python集成多个表的方法。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。