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文件的更多相关文章

  1. 善于利用python中的os模块

    作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...

  2. 利用python中的gensim模块训练和测试word2vec

    word2vec的基础知识介绍参考上一篇博客和列举的参考资料. 首先利用安装gensim模块,相关依赖如下,注意版本要一致: Python >= 2.7 (tested with version ...

  3. 浅析Python中的struct模块

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结. 了解c语言 ...

  4. 【转】浅析Python中的struct模块

    [转]浅析Python中的struct模块 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概 ...

  5. Python中的单元测试模块Unittest快速入门

    前言 为什么需要单元测试? 如果没有单元测试,我们会遇到这种情况:已有的健康运行的代码在经过改动之后,我们无法得知改动之后是否引入了Bug.如果有单元测试的话,只要单元测试全部通过,我们就可以保证没有 ...

  6. python中的StringIO模块

    python中的StringIO模块 标签:python StringIO 此模块主要用于在内存缓冲区中读写数据.模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分 ...

  7. python中的select模块

    介绍: Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kqu ...

  8. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

  9. python中的shutil模块

    目录 python中的shutil模块 目录和文件操作 归档操作 python中的shutil模块 shutil模块对文件和文件集合提供了许多高级操作,特别是提供了支持文件复制和删除的函数. 目录和文 ...

  10. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

随机推荐

  1. webpack5基础用法2

    webpack的基础用法2 webpack的优化方向 提升开发体验 提升打包构建速度 减少代码体积 优化代码运行性能 SourceMap 生成一个.map文件,形成一个映射, 可以通过错误找到源文件 ...

  2. 【Linux】docker学习

    docker 使用加速器可以提升获取Docker官方镜像的速度 方法: 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 docker-ce 配置镜像加速器 针 ...

  3. MySQL(2): 窗口函数\备份与恢复\性能优化\权限管理

    mysql 8.0 新增了窗口函数,与Oracle一样的 MySQL从8.0开始支持窗口函数,这个功能在大多商业数据库和部分开源数据库中早已支持,有的也叫分析函数. 什么叫窗口? 窗口的概念非常重要, ...

  4. div 拖动 js实现

    function dragFun(id) { var Drag = document.getElementById(id); Drag.onmousedown = function(event) { ...

  5. 微信小程序 table表格 固定表头和首列 右侧表格可以左右滚动(多种表格演练)

    https://blog.csdn.net/m0_61073617/article/details/124430213

  6. AC间二层漫游

    这个实验没有找到用packet tracer做的例子,故使用ensp,参考了文章: 配置WLAN AC间二层漫游示例 - WLAN V200R008C10 典型配置案例集 - 华为 (huawei.c ...

  7. VSCode 设置启用终端执行yarn

    如果你的vscode终端不支持 yarn run * 的命令你可以新建终端执行:get-ExecutionPolicy执行结果为:RemoteSigned 表示为禁用状态. 执行:set-Execut ...

  8. 【实验】VUE依赖版本,遇到就看这里

    https://www.cnblogs.com/luomanman/p/15435422.html

  9. CompletableFuture的thenCompose使用具体说明

    1.thenCompose 如果你还没有了解CompletableFuture或者希望再次熟悉一下,可以参考 CompletableFuture使用方法详细说明 1.1. thenCompose的特点 ...

  10. mysql(insert + str_to_date)

    str_to_date(date_str, '%Y-%m-%d %H:%i:%s') 替换为 substring_index(date_str, '.', 1); str_to_date(date_s ...