利用python中的win32com模块操作Word、Excel文件
word操作
doc文件转换为docx文件
安装win32com模块:pip3 install pypiwin32
import os
from win32com.client import Dispatch, DispatchEx, constants def doc_to_docx(f_path):
w = Dispatch('Word.Application')
# w = DispatchEx('Word.Application') # 启动独立进程
w.Visible = 0 # 后台运行
w.DisplayAlerts = 0 # 不警告 # 打开文件
doc = w.Documents.Open(f_path) # 新建docx类型文件
new_path = os.path.splitext(f_path)[0] + '.docx' '''
word_doc = w.Documents.Add() # 创建新的文档 # 插入文字
myRange = doc.Range(0,0)
myRange.InsertBefore('Hello python!') # 使用样式
wordSel = myRange.Select()
wordSel.Style = constants.wdStyleHeading1
'''
# 保存
doc.SaveAs(new_path, 16, False, "", True, "", False, False, False, False) # 参数1、2必须传,如果文档有密码保护则需要传第四个参数,参数2可以是12,或者16,或其他适合的类型,其余参数都是默认值,不传也可以 # 关闭退出
doc.Close()
w.Quit() # 删除源文件
os.remove(f_path)
return new_path doc_to_docx(r"C:\Users\Desktop\新建 Microsoft Word 文档.doc")
安装模块python-docx:pip3 install python-docx
往Word文档中插入图片,并设置宽度
from docx import Document def insert_img():
msg = '插入图片'
image1 = r"C:\Users\Pictures\Camera Roll\1.jpg"
image2 = r"C:\Users\Pictures\Saved Pictures\IMG_20180214_113145.jpg" # 保存在本地的图片 # 实例化对象
doc = Document()
doc.add_paragraph(msg) # 添加文字
doc.add_picture(image1, width=Inches(3)) # 添加图, 设置宽度
doc.add_picture(image2, width=Inches(5)) doc.save(r"C:\Users\rongg\Desktop\word_添加图片.docx") # 保存路径
Excel操作
注:只能操作已经存在的Excel表格,不存在会报错
from win32com.client import Dispatch def excel_write(f_path, data, pwd=123):
excel_app = Dispatch('Excel.Application')
excel_app.Visible = 0 # 后台运行
excel_app.DisplayAlerts = 0 # 禁止弹窗 # 打开Excel文件, 有密码时前三个参数必须传
xl_handle = excel_app.Workbooks.Open(f_path, UpdateLinks=3, ReadOnly=False, Format=None, Password=pwd) # 指定sheet页
sheet1 = xl_handle.Worksheets('Sheet1')
for i in range(len(data)):
for j in range(len(data[0])):
sheet1.Cells(i + 1, j + 1).Value = data[i][j]
print('done!') # 选择单元格
range_obj = sheet1.Range('A2')
range_obj.EntireRow.Insert() # 在选择的单元格前插入行 # 设置边框
'''
5 双点虚线
6 加粗点虚线
7 单实线
8 点虚线
9 双实线
10 单点虚线
'''
range_obj.Borders.LineStyle = 7 # 为单元格赋值
sheet1.Cells(8, 1).Value = 'Hello'
sheet1.Cells(8, 2).Value = 'Excel' # 关闭退出
xl_handle.Close(True) # True 必须传入,否则不会保存
excel_app.Quit() excel_write(
r"C:\Users\Desktop\新建 Microsoft Excel 工作表.xlsx",
[['name', 'age', 'gender'], ['jack', 22, 'man'], ['bob', 18, 'man'], ['alice', 19, 'woman']]
)
执行后的结果如下:

后续更新。。。。
利用python中的win32com模块操作Word、Excel文件的更多相关文章
- 善于利用python中的os模块
作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...
- 利用python中的gensim模块训练和测试word2vec
word2vec的基础知识介绍参考上一篇博客和列举的参考资料. 首先利用安装gensim模块,相关依赖如下,注意版本要一致: Python >= 2.7 (tested with version ...
- 浅析Python中的struct模块
最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...
- 【转】浅析Python中的struct模块
[转]浅析Python中的struct模块 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概 ...
- Python中的单元测试模块Unittest快速入门
前言 为什么需要单元测试? 如果没有单元测试,我们会遇到这种情况:已有的健康运行的代码在经过改动之后,我们无法得知改动之后是否引入了Bug.如果有单元测试的话,只要单元测试全部通过,我们就可以保证没有 ...
- python中的StringIO模块
python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...
- python中的select模块
介绍: Python中的select模块专注于I/O多路复用,提供了select poll epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...
- Python中的re模块--正则表达式
Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...
- python中的shutil模块
目录 python中的shutil模块 目录和文件操作 归档操作 python中的shutil模块 shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数. 目录和文 ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
随机推荐
- allure安装配置
代理节点配置allure 下载allure https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline 配置环境变 ...
- storcli64简述
一.查询raid卡.raid组.物理硬盘信息 Controller_id:硬盘所在的raid卡的id,可以将该参数设置为all,表示查询该工具可管理的所有控制器的id Enclosure_id:硬盘所 ...
- harbor 修改主机地址
harbor 修改主机地址 1 # cd /var/lib/wise2c/harbor/harbor 2 # docker-comppose down 3 # vi harbor.cfg 4 host ...
- WCF教程 简单入门
版权 本文摘自 http://www.cnblogs.com/iamlilinfeng 本人只做了搬运工 转载请注明出处:http://www.cnblogs.com/iamlilinfeng ...
- Spring事务的四大特性
1.事务(Transaction) 事务一般是指数据库事务, 是基于关系型数据库(RDBMS)的企业应用的重要组成部分.在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性. ...
- c语言中计算逻辑表达式
1.设变量m.n.a.b.c.d均为1,执行 (m=a!=b)&&(n=c!=d) 后,m.n的值为() A. 0 0 B.0 1 C. 1 0 ...
- JavaScript基础知识整理(引用类型-Function)
Function Function类型实际上是对象,每个函数都是Function类型的实例,自然也就具有属性和方法. 定义函数通常有三种方式 使用函数声明 function sum(num1,num2 ...
- linux 安装简洁的 zsh
为什么要安装简洁的 zsh zsh 是 shell 中的佼佼者,但是网上配置 zsh的方案,千篇一律的都是配置的 oh-my-zsh,个人感觉非常臃肿,配置低的话,用起来还会非常卡. 安装 zsh 本 ...
- 第三周day1
第三周day1,星期一 所花时间(上课时间+练习时间):6h 代码量:110 博客量:2 所学到的知识:学了一些Map的相关知识,还有如何切割字符串,如何将字符串转换成字符数组str.toCharAr ...
- 工程能力-远程JUNO-linux
工程能力-远程JUNO-linux 1 ping 通linux 地址 2 ssh/scp 连接/传输数据 ssh root@10.188.72.42 scp -P 22 README.md root@ ...