程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python+Excel系列:案例七:將一個工作薄的所有工作表批量復制到其他工作簿、將某個工作表的數據批量復制到其他工作簿的指定工作表中

編輯:Python

文章目錄

  • 將一個工作薄的所有工作表批量復制到其他工作簿
  • 將某個工作表的數據批量復制到其他工作簿的指定工作表中

將一個工作薄的所有工作表批量復制到其他工作簿

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模塊中的函數,用於擴展選擇范圍,其語法格式和常用參數含義如下。

將某個工作表的數據批量復制到其他工作簿的指定工作表中

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

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved