如何使用xlwings库中的“add”函数和“range”函数把一个工作表从一个文件复制到另一个文件中----关于Python里xlwings库对Excel表格的操作(十)

       这篇小笔记主要说说如何把一个文件中的工作表复制到另一个文件中。小笔记已整理成目录,可点链接去目录寻找所需更方便。
【目录部分内容如下】【点击此处可进行目录】
(1)如何安装导入xlwings库;
(2)如何在Wps下使用xlwings中使用WPS对表格操作;
(3)如何安装导入xlwings库、如何用xlwings打开要操作的Excel表格;
(4)如何使用xlwings对Excel表格数据进行读取操作;
(5)如何使用xlwings对Excel表格进行“保存”或“另存为”操作;
(6) 如何使用xlwings对Excel表格进行写入数据操作;
(7)如何使用xlwings向Excel表格中写入Excel公式;
(8)如何使用xlwings库中的“name"函数和“replace”函数对工作表进行改名;
。。。。。。等等

       把一个文件中的工作表复制到另一个文件中的操作实际上是新建一个同名表格、读取源数据、把源数据写入新建的同名表格的一个流程。因此,没有用到新的函数,还是前面的函数的运用。通过下面的例子说说更直观。

【注意:下列代码没有加入各种检验功能和方法,所以刚操作过的表格再重复操作可能因为同名表格等各种原因出现报错提示。】

'''
复制一工作表到另一个文件:
先打开源工作表并读取源工作表名和全部数据,
然后打开目标工作表新建一个工作表并命名与源工作表的表名相同,
最后激活复制过来的目标工作表(名)并把前面读取到的源工作表的数据写入新建的目标工作表中。
'''
import xlwings as xw
app=xw.App(visible=False,add_book=False)
app.display_alerts=False               #关闭各种提示信息,可以提高运行速度
Src_FileName='E:/素材/学生成绩表.xls'
#打开要被复制的源文件
Src_WorkBook=app.books.open(Src_FileName)      
#打开要被复制的源工作簿
Src_WorkSheet=Src_WorkBook.sheets['原始表']      
#打开要被复制的源工作表,这里指定打开名称为“原始表”的源工作表

All_Src_WorkSheet_Name=Src_WorkBook.sheets
print(f'源工作簿中所有的工作表的名称: \n{All_Src_WorkSheet_Name}')

Src_WorkSheet_Name=Src_WorkSheet.name     
#利用“name”函数获取上述工作表的“名称”,并把名称赋给变量“workbook_sheet_name”
print(f'源文件准备被复制的源工作表名:{Src_WorkSheet_Name}')
#源文件准备被复制的源工作表名的“名称”
print()
Src_All_Data=Src_WorkSheet.range('A1').expand('table').value
#读取源工作表中全部的数据,相当于“选取后点下复制键”

Dest_FileName='E:/素材/学生成绩表copy.xls'
#打开要复制到的目标文件
Dest_WorkBook=app.books.open(Dest_FileName)      
#打开要复制到的目标工作簿
Dest_WorkSheet=Dest_WorkBook.sheets     
#打开要复制到的目标工作表,准备把源工作表复制过来
Dest_WorkSheet.add(Src_WorkSheet_Name)
#把源文件中指定的“工作表名”复制过来,相当于在目标文件中插入一个名称与源文件源工作表名称相同的工作表并把用鼠标点击于处。

All_Dest_WorkSheet_Name=Dest_WorkBook.sheets
print(f'目标工作簿中所有的工作表的名称: \n{All_Dest_WorkSheet_Name}')

Activate_Dest_WorkSheet=Dest_WorkBook.sheets[Src_WorkSheet_Name]
#激活复制过来的工作表(其实复制过来的只有一个工作表名),准备把源工作表的数据复制过来,相当于并把用鼠标点击要复制到的目标地址。
Activate_Dest_WorkShee_Name=Activate_Dest_WorkSheet.name
print(f'现在正激活的目标工作表名:{Activate_Dest_WorkShee_Name}')
Activate_Dest_WorkSheet.range('A1').expand().value=Src_All_Data
#把源文件中刚才全部读取的源工作表写入目标工作表。相当于点下“粘贴”键。

Dest_WorkBook.save()
#保存目标工作簿,达到复制的最后确认。源工作表只提供读无需保存,只需关闭即可。
Src_WorkBook.close()
#因为打开了两个工作簿,所以两个工作簿都要关闭,否则下次打开会出现错误。
Dest_WorkBook.close()
#因为打开了两个工作簿,所以两个工作簿都要关闭,否则下次打开会出现错误。
app.quit()
#退出Office软件,不驻留后台。

运行前的表格:

运行后的表格:

运行后终端显示的结果:

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值