import os #导入os模块
import xlwings as xw #导入xlwings模块
app = xw.App(visible=False,add_book=False)
file_path = 'e:/table/test' #给出目标工作簿所在的文件夹路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
workbook = app.books.open('e:/table/text1.xlsx') #打开来源工作簿
worksheet = workbook.sheets #获取来源工作薄中的所有工作表
for i in file_list:
if os.path.splitext(i)[1] == '.xlsx':
workbooks = app.books.open(file_path+'\\'+i) #如果是工作簿则将其打开
for j in worksheet:
contents = j.range('A1').expand('table').value #读取来源工作簿中要复制的工作表数据
name = j.name #获取来源工作簿中的工作表名称
workbooks.sheets.add(name = name,after = len(workbooks,sheets)) #在目标工作簿中新增同名工作表
workbooks.sheet[name].range('A1').value = contents #将从来源工作簿中读取的的工作表数据写入新增工作表
workbooks.save() #保存目标工作薄
app.quit()
知识延伸:
import os #导入os模块
import xlwings as xw #导入xlwings模块
app = xw.App(visible=False,add_book=False)
file_path = 'e:/table/test' #给出目标工作簿所在的文件夹路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
workbook = app.books.open('e:/table/textAdd.xlsx')
worksheet = workbook.sheets['sheetadd'] #选中工作表“sheetadd”
value = worksheet.range('A1').expend(table) #读取工作表“sheetadd”中的所有数据
start_cell = (2,1) #给出要复制数据的单元格区域的起始单元格
end_cell = (value.shape[0],value.shape[1]) #给出要复制数据的单元格区域的结束单元格
cell_area = worksheet.range(start_cell,end_cell).value #根据前面设定的单元格区域选取要复制的数据
for i in file_list:
if os.path.splitext(i)[1] == '.xlsx':
try:
workbooks = xw.Book(file_path+'\\'+i)
sheet = workbooks.sheets['sheetnew'] #选中要粘贴数据的工作表“sheetnew”
scope = sheet.range('A1').expand() #选中要粘贴数据的单元格区域
sheet.range(scope.shape[0]+1,1).value = cell_area #粘贴数据
workbooks.save() #保存目标工作薄
finally:
workbooks.close() #关闭目标工作簿
workbook.close() #关闭来源工作薄
app.quit()