Python+Excel系列:案例七:将一个工作薄的所有工作表批量复制到其他工作簿、将某个工作表的数据批量复制到其他工作簿的指定工作表中

文章目录

  • 将一个工作薄的所有工作表批量复制到其他工作簿
  • 将某个工作表的数据批量复制到其他工作簿的指定工作表中

将一个工作薄的所有工作表批量复制到其他工作簿

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()

知识延伸:

第12行代码中的expand()是xlwings模块中的函数,用于扩展选择范围,其语法格式和常用参数含义如下。
Python+Excel系列:案例七:将一个工作薄的所有工作表批量复制到其他工作簿、将某个工作表的数据批量复制到其他工作簿的指定工作表中_第1张图片

将某个工作表的数据批量复制到其他工作簿的指定工作表中

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()

你可能感兴趣的:(python+Excel,python,Excel)