首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【愚公系列】2023年07月 Python自动化办公之win32com操作excel

【愚公系列】2023年07月 Python自动化办公之win32com操作excel

作者头像
愚公搬代码
发布2025-05-28 15:55:41
发布2025-05-28 15:55:41
2660
举报
文章被收录于专栏:历史专栏历史专栏

前言

python中能操作Excel的库主要有以下9种:

本文主要针对win32com读取 写入 修改 操作Excel进行详细介绍

一、win32com 读取 写入 修改 操作Excel

1.win32com的基本介绍

win32com是Python的一个模块,它提供了访问Windows平台上的COM组件和Microsoft Office应用程序的能力。通过该模块,Python程序可以与Windows平台上的其他应用程序交互,例如实现自动化任务、自动化报告生成等功能。

win32com官网:https://pypi.org/project/pywin32/

2.基本使用

以下是一个简单的示例,展示如何使用win32com模块来自动化Excel应用程序并读取一个工作簿中的数据:

代码语言:javascript
复制
import win32com.client

# 启动 Excel 应用程序
excel = win32com.client.Dispatch("Excel.Application")

# 打开工作簿
workbook = excel.Workbooks.Open(r"C:\path\to\workbook.xlsx")

# 获取工作表对象
worksheet = workbook.Worksheets("Sheet1")

# 读取单元格内容
value = worksheet.Cells(1, 1).Value

# 打印单元格内容
print(value)

# 关闭工作簿和Excel应用程序
workbook.Close()
excel.Quit()

在上述示例中,首先使用win32com.client.Dispatch()方法创建Excel应用程序的实例,并打开一个工作簿。然后,使用Workbook.Worksheets()方法获取指定工作表的对象,并使用Worksheet.Cells()方法读取单元格内容。最后,使用Workbook.Close()Excel.Quit()方法关闭工作簿和Excel应用程序。

需要注意的是,当Python程序使用Excel应用程序时,Excel应用程序及其工作簿和工作表会一直处于打开状态,直到程序将其关闭,因此需要确保程序在使用完Excel应用程序后及时关闭。

3.相关案例

代码语言:javascript
复制
import win32com
from win32com.client import Dispatch, constants
import os

# 获取当前脚本路径
def getScriptPath():
    nowpath = os.path.split(os.path.realpath(__file__))[0]
    print(nowpath)
    return nowpath

# 3.7.2 Python使用win32com读写Excel
def fun3_7_2():
    app = win32com.client.Dispatch('Excel.Application')

    # 后台运行,不显示,不警告
    app.Visible = 0
    app.DisplayAlerts = 0

    # 创建新的Excel
    # WorkBook = app.Workbooks.Add()
    # 新建sheet
    # sheet = WorkBook.Worksheets.Add()

    # 打开已存在表格,注意这里要用绝对路径
    WorkBook = app.Workbooks.Open(getScriptPath() + "\\3_7 win32com 修改操作练习.xlsx")
    sheet = WorkBook.Worksheets('Sheet1')

    # 获取单元格信息 第n行n列,不用-1
    cell01_value = sheet.Cells(1,2).Value
    print("cell01的内容为:",cell01_value)

    # 写入表格信息
    sheet.Cells(2, 1).Value = "win32com"

    # 保存表格
    #WorkBook.Save()

    # 另存为实现拷贝
    WorkBook.SaveAs(getScriptPath() + "\\new.xlsx")

    # 关闭表格
    WorkBook.Close()
    app.Quit()


if __name__ == '__main__':
    fun3_7_2()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、win32com 读取 写入 修改 操作Excel
    • 1.win32com的基本介绍
    • 2.基本使用
    • 3.相关案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档