python与excel第六节 复制数据

发布于:2024-03-28 ⋅ 阅读:(24) ⋅ 点赞:(0)

复制一个excel的工作表中的数据到另一些excel中

假设一个工作簿中数量不等,现在要复制其中所有工作表的内容到另一个文件夹所有的excel工作簿中。

例子:

import os
import xlwings as xw
app = xw.App(
visible=False,add_book=False)
#指定目标文件夹
file_path = 'D:\\TEST\\dataOut'
file_list = os.listdir(file_path)
# 打开源文件
workbook = app.books.open('D:\\TEST\\dataIn\\产品表.xlsx')
# 获取源文件所有sheet
worksheet =workbook.sheets
# 循环处理目标文件下文件,并且选择出excel文件
for i in file_list:
   
if os.path.splitext(i)[1] == '.xlsx':
        workbooks = app.books.open(file_path +
'\\' + i)
       
# 循环处理源表的所有sheet
       
for j in worksheet:
#  expand(mode)默认值是table,表示向整个数据扩展,可以是down(向下)或者right(向右)分别表示向下或右扩展。
# A1单元格开始扩展到整个sheet
           
contents = j.range('A1').expand('table').value
            name = j.name
            workbooks.sheets.add(
name=name,after=len(workbooks.sheets))# 目标工作表新增同名工作表
           
workbooks.sheets[name].range('A1').value = contents# 将源表数据写入新工作表
           
workbooks.save()
app.quit()

复制一个excel工作表的指定范围数据到另一些工作表中的指定范围

假设需要将一个excel文件中的指定范围的数据批量粘贴到另一个文件夹下面的所有excel中的指定位置。

例子:

import os
import xlwings as xw
app = xw.App(
visible=False,add_book=False)
file_path =
'D:\\TEST\\dataOut'
# 列出文件夹下所有文件
file_list = os.listdir(file_path)
# 打开源表
workbook = app.books.open('D:\\TEST\\dataIn\\产品表.xlsx')
worksheet = workbook.sheets[
'文具']
# A1单元格开始获得源表sheet的所有数据,实际上复制的内容是从A2到最后,即除去第一行
value = worksheet.range('A1').expand('table')
start_cell = (
2,1)
end_cell = (value.shape[
0],value.shape[1])
cell_area = worksheet.range(start_cell,end_cell).value

# 循环处理dataOut文件夹下所有excel文件
for i in file_list:
   
if os.path.splitext(i)[1] == '.xlsx':
       
try:
            workbooks = xw.Book(file_path +
'\\' + i)
           
# 把源表的数据复制到目标excel表的【Sheet1
           
sheet = workbooks.sheets['Sheet1']
           
# 获取目标excel表的数据范围,防止覆盖掉目标表的数据
           
scope = sheet.range('A1').expand()
           
# range的两个参数分别是(行,列),下面是从第scope.shape[0] + 1行,第一列开始粘贴数据
           
sheet.range(scope.shape[0] + 1,1).value = cell_area
            workbooks.save()
       
finally:
            workbooks.close()
workbook.close()
app.quit()

本文含有隐藏内容,请 开通VIP 后查看