python win32com word_利用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']]

)

执行后的结果如下:

后续更新。。。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值