python与excel第六节 复制数据
复制一个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()
原文地址:https://blog.csdn.net/buw369521/article/details/136993909
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!