前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python-Excel-09-复制单元格区域

Python-Excel-09-复制单元格区域

作者头像
zishendianxia
发布2019-10-23 17:21:29
1.6K0
发布2019-10-23 17:21:29
举报
文章被收录于专栏:Python工程师Python工程师

系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2

  • 这个系列讲讲PythonExcel的操作
  • 今天讲讲使用win32com模块,复制工作表某一区域数据

Part 1:示例说明

  1. 已有一个Excel文件区域复制.xlsx,其中包括4个工作表
    • 工作表:原,原始数据
    • 工作表:复制1,空表
    • 工作表:复制2,空表
    • 工作表:复制3,空表
  2. 采用三种方法复制工作表中(A1:C5)区域数据分别到工作表复制1复制2复制3
  3. 工作表复制1复制3对应方法为全复制;复制2对应方法只复制数据

复制空表

复制后

复制1

复制2

复制3

Part 2:代码

代码语言:javascript
复制
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 = True  # 是否显示Excel文件
wb = xl_app.Workbooks.Open(excel_address)
sht_old = wb.Worksheets("原")
sht_new_1 = wb.Worksheets("复制1")
sht_new_2 = wb.Worksheets("复制2")
sht_new_3 = wb.Worksheets("复制3")

# 复制工作表
rng_data = sht_old.Range(sht_old.Cells(1, 1), sht_old.Cells(5, "C"))
rng_data.Copy()
sht_new_1.Paste(Destination=sht_new_1.Range("A1"))
sht_new_2.Range("A1").PasteSpecial(Paste=c.xlPasteValues)
sht_new_3.Range("A1").PasteSpecial(Paste=c.xlPasteAll)

wb.Save()
wb.Close()
xl_app.Quit()

代码截图

Part 3:部分代码解读

  1. sht_new_1.Paste(Destination=sht_new_1.Range("A1")),注意使用Paste方法,目标区域是以参数形式给出的:Destination=sht_new_1.Range("A1")
  2. sht_new_2.Range("A1").PasteSpecial(Paste=c.xlPasteValues),目标区域是放在开始的位置
  3. xl_app.Quit(),关闭Excel这个程序,也就是说如果同时有其它Excel文件打开,也会被关闭

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档