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

我们已经准备了一个Excel文件名为“区域复制.xlsx”,该文件包含四个工作表:
- “原”:包含原始数据。
- “复制1”:空表。
- “复制2”:空表。
- “复制3”:空表。
我们将使用三种方法将工作表“原”中的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常数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:部分代码解读

-
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文件。










