python按照sheet合并多个Excel的⽰例代码(多个
sheet)
⼯作中会遇到这样的需求,有多个Excel的格式⼀样,都有多个sheet,且每个sheet的名字和格式⼀样,我们需要按照sheet 合并,就是说合并后的表的格式和合并钱的格式是⼀样的。A、B、C表格式如图
现在需要合并成下图:
我这次处理是保留第⼀个表的⾸⾏,其余的表的⾸⾏都不保留。因此结果会和上⾯有所不同,上⾯的是将所有的⾸⾏都保存
import xlrd,xlsxwriter
allxls=["C:/xxx/xxx.xlsx",
"C:/xxx/xxx.xlsx"]
#⽬标excel
end_xls="C:/xxx/merge.xlsx"
def open_xls(file):
try:
fh=xlrd.open_workbook(file)
return fh
except Exception as e:
print("打开⽂件错误:"+e)
#根据excel名以及第⼏个标签信息就可以得到具体标签的内容
def get_file_value(filename,sheetnum):
rvalue=[]
fh=open_xls(filename)
sheet=fh.sheets()[sheetnum]
row_ws
for rownum in range(0,row_num):
rvalue.w_values(rownum))
return rvalue
def get_file_value_1(filename,sheetnum):
rvalue=[]
fh=open_xls(filename)
sheet=fh.sheets()[sheetnum]
python怎么读取xls文件row_ws
for rownum in range(1,row_num):
rvalue.w_values(rownum))
return rvalue
#获取第⼀个excel的sheet个数以及名字作为标准
first_file_fh=open_xls(allxls[0])
first_file_sheet=first_file_fh.sheets()
first_file_sheet_num=len(first_file_sheet)
sheet_name=[]
for sheetname in first_file_sheet:
sheet_name.append(sheetname.name)
#定义⼀个⽬标excel
endxls=xlsxwriter.Workbook(end_xls)
all_sheet_value=[]
#把所有内容都放到列表all_sheet_value中
for sheet_num in range(0,first_file_sheet_num):
all_sheet_value.append([])
for i,file_name in enumerate(allxls):
if i==0:
print("正在读取"+file_name+"的第"+str(sheet_num+1)+"个标签...") file_value=get_file_value(file_name,sheet_num)
all_sheet_value[sheet_num].append(file_value)
else:
print("正在读取"+file_name+"的第"+str(sheet_num+1)+"个标签...") file_value=get_file_value_1(file_name,sheet_num)
all_sheet_value[sheet_num].append(file_value)
#print(all_sheet_value)
num=-1
sheet_index=-1
#将列表all_sheet_value的内容写⼊⽬标excel
for sheet in all_sheet_value:
sheet_index+=1
end_xls_sheet=endxls.add_worksheet(sheet_name[sheet_index])
num+=1
num1=-1
for sheet1 in sheet:
for sheet2 in sheet1:
num1+=1
for sheet3 in sheet2:
num2+=1
#print(num,num1,num2,sheet3)
#在第num1⾏的第num2列写⼊sheet3的内容
end_xls_sheet.write(num1,num2,sheet3)
endxls.close()
到此这篇关于python 按照sheet合并多个Excel的⽰例代码(多个sheet)的⽂章就介绍到这了,更多相关python 合并多个excel内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论