当前位置:   article > 正文

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

win32com


前言

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应用程序并读取一个工作簿中的数据:

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

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

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

3.相关案例

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/727213
推荐阅读
相关标签
  

闽ICP备14008679号