使用Python通过win32 COM打开Excel并添加Sheet的方法

  • Post category:Python

下面给出“使用Python通过win32COM打开Excel并添加Sheet的方法”的完整实例教程,分以下几个步骤:

Step1:安装依赖

安装pywin32依赖,使用pip即可:

pip install pywin32

Step2:导入win32com

使用Python通过win32COM调用Excel需要先导入win32com库,代码如下:

import win32com.client as win32

Step3:打开Excel

通过win32COM打开Excel,需要使用win32.DispatchEx()方法,并传入Excel的版本号(如”Excel.Application.16″)以及工作簿的文件路径,代码如下:

excel = win32.DispatchEx("Excel.Application.16")
workbook = excel.Workbooks.Open("file_path")

其中,”Excel.Application.16″是Excel的版本号,可以根据自己的实际版本进行替换;”file_path”是Excel工作簿的路径,需要替换成自己保存的文件路径。

Step4:添加Sheet

通过win32COM打开Excel工作簿后,可以使用workbook.Sheets.Add()方法添加Sheet,代码如下:

worksheet = workbook.Sheets.Add()
worksheet.Name = "Sheet1"

其中,”Sheet1″是新添加的Sheet的名称,可以根据实际需要进行替换。

示例1:导出数据到Excel

接下来,我们以将数据导出到Excel为例进行示范。

import win32com.client as win32

# 准备数据
data = [
    ["Name", "Age", "Gender"],
    ["Tom", 21, "Male"],
    ["Jerry", 19, "Male"],
    ["Lucy", 20, "Female"]
]

# 打开Excel并添加Sheet
excel = win32.DispatchEx("Excel.Application.16")
workbook = excel.Workbooks.Add()
worksheet = workbook.Sheets.Add()
worksheet.Name = "Data"

# 写入数据到Sheet
for row in range(len(data)):
    for col in range(len(data[row])):
        cell = worksheet.Cells(row + 1, col + 1)
        cell.Value = data[row][col]

# 保存并关闭Excel
workbook.SaveAs(r"D:\data.xlsx")
workbook.Close()
excel.Quit()

以上示例中,我们先准备了一些数据,然后通过win32COM打开Excel并添加了一个名为”Data”的Sheet,最后将数据写入到Sheet,最终将Excel文件保存在了本地磁盘。

示例2:复制Sheet

另外一个常见的需求是复制Sheet,下面演示如何通过win32COM实现Sheet的复制。

import win32com.client as win32

# 打开Excel并添加Sheet
excel = win32.DispatchEx("Excel.Application.16")
workbook = excel.Workbooks.Open(r"D:\data.xlsx")
worksheet = workbook.Sheets("Data")

# 复制Sheet
worksheet.Copy(None, workbook.Sheets("Sheet1"))

# 保存并关闭Excel
workbook.Save()
workbook.Close()
excel.Quit()

以上示例中,我们先打开之前的示例中保存的Excel文件,然后复制了名为”Data”的Sheet,并将复制的Sheet插入到了名为”Sheet1″的Sheet之后,最终将Excel文件保存并关闭。