本文将详细介绍如何使用python操作excel文件,具体来说是使用win32com模块复制工作表中特定区域的数据。本文将分为三个部分:示例说明、代码展示以及部分代码解读。
Part 1:示例说明

我们已经准备了一个Excel文件名为“区域复制.xlsx”,该文件包含四个工作表:
我们将使用三种方法将工作表“原”中的A1:C5区域数据分别复制到“复制1”、“复制2”和“复制3”工作表中。具体来说,“复制1”和“复制3”将进行全复制,而“复制2”将仅复制数据。
立即学习“Python免费学习笔记(深入)”;
复制前的空表
复制后的效果
复制1:

复制2:

复制3:

Part 2:代码

import os
import win32com
from win32com.client import constants as c # 旨在直接使用VBA常数
<p>current_address = os.path.abspath('.')
excel_address = os.path.join(current_address, "区域复制.xlsx")</p><p>xl_app = win32com.client.gencache.EnsureDispatch("Excel.Application") # 若想引用常数的话使用此法调用Excel
xl_app.Visible = True # 是否显示Excel文件</p><p>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")</p><h1>复制工作表</h1><p>rng_data = sht_old.Range(sht_old.Cells(1, 1), sht_old.Cells(5, "C"))
rng_data.Copy()</p><p>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)</p><p>wb.Save()
wb.Close()
xl_app.Quit()代码截图:

Part 3:部分代码解读

sht_new_1.Paste(Destination=sht_new_1.Range("A1")):使用Paste方法进行复制,目标区域通过参数Destination=sht_new_1.Range("A1")指定。sht_new_2.Range("A1").PasteSpecial(Paste=c.xlPasteValues):目标区域设置在开始位置,仅复制数据值。xl_app.Quit():关闭Excel程序,注意这会关闭所有打开的Excel文件。以上就是Python-Excel-09-复制单元格区域的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号