系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 这个系列讲讲Python对Excel的操作
- 今天讲讲使用win32com模块,复制工作表
- 这种在做大量重复工作时候,先制定一个模板,后续直接复制该表,再做个性化修改即可
Part 1:示例说明
- 已有一个Excel文件复制工作表.xlsx,其中一个工作表名称为示例
- 复制示例工作表,新工作表名称为新复制
- 在新复制工作表B1单元格写入复制
原表

复制后

Part 2:代码
import os
import win32com
from win32com.client import constants as c # 旨在直接使用VBA常数
current_address = os.path.abspath('.')
excel_address = os.path.join(current_address, "复制工作表.xlsx")
xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel
xl_app.Visible = False # 是否显示Excel文件
wb = xl_app.Workbooks.Open(excel_address)
sht = wb.Worksheets("示例")
# 复制工作表
new_sht_name = "新复制"
sht.Copy(After=sht)
wb.ActiveSheet.Name = new_sht_name
sht_copy = wb.Worksheets(new_sht_name)
sht_copy.Range("B1").Value = "复制"
wb.Save()
wb.Close()
代码截图

Part 3:部分代码解读
-
sht.Copy(After=sht)
,复制一张新表,并将其位置放在sht
后 -
wb.ActiveSheet.Name = new_sht_name
,修改新建工作表的名称 -
sht_copy = wb.Worksheets(new_sht_name)
,获取新建工作表这个对象 -
sht_copy.Range("B1").Value = "复制"
,单元格赋值
本文为原创作品,欢迎分享朋友圈
常按图片识别二维码,关注本公众号
Python 优雅 帅气

网友评论