python3和xlwings实现的合并同一目录下的所有excel(工作薄)文件中的所有Sheet(工作表)到一个excel(工作簿)中的第一个Sheet(工作表)中:

python3和xlwings实现的合并同一目录下的所有excel(工作薄)文件中的所有Sheet(工作表)到一个excel(工作簿)中的第一个Sheet(工作表)中:

import xlwings as xw
import os

 
filename=r"E:\DZX\OFFICE\劳务费申述\加盟群\信阳泉云2月份劳务费申诉.xlsx"  #读取文件
filename1=r"E:\DZX\OFFICE\劳务费申述\劳务费申诉汇总.xlsx"  #读取文件名称



def merger_workbook(filename,filename1):	 #,wb1
	# wb = xw.Book(filename) #打开文件
	wb = app.books.open(filename) 
	sheets_count = wb.sheets.count
	print(sheets_count)
	for j in range(0,sheets_count):
		print(j)
		detail_sheet = wb.sheets[j] # ("sheet名字") #sheet名字
		print(detail_sheet)
		last_row_index=detail_sheet.range('A2').expand('table').last_cell.row #这表格最后一列
		print(last_row_index)
		rg = "A2:XFD" + str(last_row_index) #范围
		# print(rg)
		# with open(r'E:/DZX/text/linkS.txt','a',encoding='utf8') as f:
		# 	f.write(f"\n{detail_sheet}\n{last_row_index}\n{rg}")
		work_detail = detail_sheet.range(rg).value #选中范围的值
		# print(work_detail)
		
		#上面是需要复制的,复制到下面这里面来
		# wb1=xw.Book(filename1) #打开文件
		# wb1 = app.books.open(filename1) 
		detail_sheet1= wb1.sheets[0] #sheet名称
		last_row_index1=detail_sheet1.range('A2').expand('table').last_cell.row #这表格最后一列
		last_row_index1=last_row_index1+1
		detail_sheet1.range('A'+str(last_row_index1)).expand('table').value = work_detail
		wb1.save(filename1) #保存地址加文件名称
		# wb1.close()
	wb.close()










if __name__ == '__main__':
	app = xw.App(visible=False,add_book=False)
	# merger_workbook(filename,filename1)
	cont = os.listdir(r"E:\DZX\OFFICE\劳务费申述\加盟群")
	# print(cont)
	# wb1=xw.Book(filename1) #打开文件
	wb1 = app.books.open(filename1)
	for i in range(0,len(cont)):
		root = r"E:\DZX\OFFICE\劳务费申述\加盟群"
		filename = os.path.join(root,cont[i])
		# wb1 = app.books.open(filename) 
		merger_workbook(filename,filename1)#,wb1
	wb1.save(filename1)	
	wb1.close()

自己根据需要修改路径和文件名

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,你可以使用 pandas 模块来实现这个功能。以下是一个示例代码: ```python import os import pandas as pd # 设置目标文件夹路径 folder_path = "your_folder_path" # 获取目标文件夹下所有Excel文件文件名 file_names = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')] # 创建一个空的pandas数据框来存储合并后的数据 merged_data = pd.DataFrame() # 循环读取并合并每个Excel文件的所有工作 for file in file_names: # 读取Excel文件的所有工作 sheets = pd.read_excel(os.path.join(folder_path, file), sheet_name=None) # 循环遍历每个工作并将其添加到merged_data数据框 for sheet_name, sheet_data in sheets.items(): # 添加一个新列来记录数据来自哪个Excel文件 sheet_data['File Name'] = file # 将当前工作的数据添加到merged_data数据框 merged_data = pd.concat([merged_data, sheet_data], ignore_index=True) # 将合并后的数据写入一个新的Excel文件,并使用工作名作为工作名 with pd.ExcelWriter('merged_workbook.xlsx') as writer: for file in file_names: # 获取当前Excel文件的数据 file_data = merged_data[merged_data['File Name'] == file] # 获取当前Excel文件的名字作为工作sheet_name = os.path.splitext(file)[0] # 将当前Excel文件的数据写入新的Excel文件一个工作 file_data.to_excel(writer, sheet_name=sheet_name, index=False) ``` 这段代码将目标文件所有的Excel文件合并一个Excel文件,每个Excel文件对应一个工作,并且工作名为相应Excel文件文件名(不含文件扩展名)。需要注意的是,这段代码假设所有的Excel文件都具有相同的结构,即它们具有相同的列名和列数。如果实际情况不是这样,你可能需要对代码进行一些修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn1120628290

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值