【愚公系列】2023年07月 Python自动化办公之win32com操作excel-程序员宅基地

技术标签: excel  python  # python自动化办公  自动化  


前言

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()

在上述示例中,首先使用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()
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/aa2528877987/article/details/131495943

智能推荐

昌邑机器人_昌邑管道检测机器人有保障999-程序员宅基地

文章浏览阅读106次。昌邑管道检测机器人有保障999水陆全地形管道机器人Ty-G19-02特别强调:***仪器领先同行,同行可能模仿,专利在呢,想模仿吗?公司需要打官司上位,目前公司是一个小公司,在这个行业并不出名!!需要找同行大公司打官司出名,这个行业并不大哦,别丢人丢到家了哦!!!不信可以试试看!!!!***在管道淤泥或污水比较深的情况下,可以无障碍作业检测,相比同行的CCTV机器人,前后左右 方便灵活,水陆两栖适..._管道机器人120度专利

每天一个Linux命令目录-程序员宅基地

文章浏览阅读80次。一、文件和目录管理 1、每天一个linux命令(1):pwd命令 2、每天一个linux命令(2):cd命令 3、每天一个linux命令(3):ls命令 4、每天一个linux命令(4):mkdir 5、每天一个linux命令(5):rmdir 6、每天一个linux命令(6):c..._每天一个linux命令目录

大话西游2人数最多服务器,大话西游2最早的服务器如今去了哪里?老玩家值得了解...-程序员宅基地

文章浏览阅读611次。很多老玩家都知道,《大话西游2》最早的公测时间是2002年,距今已经陪伴玩家们走过了1个年头,而游戏中第一个开放的服务器是哪个?经过十多年不断的合区发展,这个服务器如今又去了哪里?估计很多朋友和小苏一样,都像了解一下详细的情况。这篇文章小苏就和大家一起讨论一下这个话题吧,顺便跟着我的节奏,回顾下曾经的美好岁月~游戏中最初开放的服务器叫“天竺国”,开放时间为2002年6月7号,这算是大话2的开篇之作..._大话2什么时候开区人最多

android开发之解决PopWindow中EditText无法复制粘贴问题_edittext 无法粘贴 pop-程序员宅基地

文章浏览阅读4.5k次。这篇博客主要介绍了Android中解决EditText放到popupWindow中,原有复制、粘贴、全选、选择功能失效问题 的相关资料.由于项目中用到了PopWindow中嵌套Edittext,而Edittext无法进行文字的复制粘贴.于是找到了如下解决方法:使用DialogFragment来创建Dialog.使用方式如下:1.创建你的PopWindow布局文件2.创建Di_edittext 无法粘贴 pop

React_antd_Comment(评论)_typescript_antd+comment没有了-程序员宅基地

文章浏览阅读1.1k次。嵌套评论index.tsximport React, { Component } from 'react';import { Comment, Avatar } from 'antd';interface ICode { children?: any onClickComment: any}const ExampleComment: React.FC<ICode> = (code) => { const { children, onClickComment _antd+comment没有了

Win10下go+grpc+protobuf环境搭建_protoc-gen-go-grpc.exe-程序员宅基地

文章浏览阅读1.4k次。1、_protoc-gen-go-grpc.exe

随便推点

基于springboot+vue.js的校园新型冠状病毒肺炎疫情防控专题网站(附带文章和源代码设计说明文档ppt)-程序员宅基地

文章浏览阅读891次,点赞20次,收藏19次。博主介绍:CSDN深耕的技术专家、博客专家、有着常年的工作经验、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战文末获取源码+数据库。

在Android Studio运行的代码,不能在真机ViVO X21A进行调试的常见的错误和 解决的方法_android studio调试vivo总是崩溃-程序员宅基地

文章浏览阅读4.1k次。最近在做有关刘海屏的适配,需要在vivo x21A上开发app应用,android studio 调试代码时,无法安装apk文件,要求卸载已存在的应用。开发模式也已经打开了,而且一直闪烁着开发模式(易卡顿)。只要一运行就报这个错:但是手机一直处于开发者模式:后来经过多方面的查找原因,发现我需要在 File-&gt;Setting-&gt;Build-&gt;Instant Run 文件下..._android studio调试vivo总是崩溃

JIRA配置手册 (2):工作流-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏40次。作者:Misha 来源:原力注入系列上篇:JIRA配置手册 (1):问题类型管理在项目管理中Jira占据着大佬的地位,很大部分原因要归功于他强大的工作流支持,你可以完全根..._jira workflow颜色

opencv动态地址方式操作像素-at操作-程序员宅基地

文章浏览阅读519次。#include#include#includeusing namespace std;using namespace cv;void colorReduce(const Mat &srcImage, Mat &dstImage, int div);int main(){ Mat srcImage = imread("G:\\group.jpg"); Mat dstIma_opencv动态地址

STM32+AIR800关于温湿度采集上传阿里云以及进行云端下发指令简单的控制_基于stm32温湿度上传云平台-程序员宅基地

文章浏览阅读8.7k次,点赞6次,收藏105次。一、主要功能实现:1、STM32采集温湿度上传至阿里云,进行云端显示2、云端下发指令控制STM32的LED亮灭(直接控制STM32(A)的LED亮灭,以及设置定时时间自动打开和关闭LED)3、云端下发指令通过NRF24L01间接控制第二个STM32(B)的LED亮灭二、 各模块功能划分:1、阿里云物联网云平台:(1)进行云端显示温湿度,给云下设备下达指令2、AIR800:(1)成功..._基于stm32温湿度上传云平台

QT c++ 中使用PostMessage/SendMessage_qt sendmessage-程序员宅基地

文章浏览阅读2.6w次,点赞3次,收藏39次。 PostMessage是Windows API(应用程序接口) 中的一个常用函数,用于将一条消息放入到消息队列中。并且不会等待响应的线程处理消息,而是直接返回。(简单的理解就是异步)。而SendMessage作用一样,但是会等待结果返回(同步)我们先来看PostMessage函数的原型:BOOL WINAPI PostMessage(HWND hWnd, UINT Msg, W..._qt sendmessage

推荐文章

热门文章

相关标签