python基于win32实现自动批量替换文件夹中所有word和excel(没写csv的)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

今天接到了个单子,就是完成自动批量替换文件夹中所有word和excel中的内容,而且还要基于win32,我就不想写了,后来一想接都接了,那就写吧


`

一、win32是什么?

就是一个库,几乎满足windows系统里的基础应用的库,可以调用一些应用,常见的就是调用office

二、使用步骤

1.引入库

代码如下(示例):

import win32com.client
import os

2.读入数据

因为客户的是txt文件,我就规范了下格式,这样读取起来不会有问题。
代码如下(示例):

 with open(a, "r") as f:#a就是txt的路径
        for line in f.readlines():
            line = line.strip("\n")
            line = line.split("|")
            data.append(line)

这是word的替换

def replace_main(path, old_text, new_text):
    word = win32com.client.Dispatch("Word.Application")  # 模拟打开 office
    doc = word.Documents.Open(path)
    word.Selection.Find.ClearFormatting()
    word.Selection.Find.Replacement.ClearFormatting()

    # 1.True--区分大小写,2.True--完全匹配的单词,并非单词中的部分(全字匹配)3.True--使用通配符,
    # 4.True--同音,5.True--查找单词的各种形式,6.True--向文档尾部搜索,7.True--带格式的文本。
    # 2 - -替换个数(0表示不替换,1 表示只替换匹配到的第一个,2 表示全部替换)True--区分大小写,不可省略
    # word.Selection.Find.Execute(old_text, False, False, False, False, False, True, 1, False, new_text, 2)
    word.Selection.Find.Execute(old_text, False, False, False, False, False, True, 1, False, new_text, 2)
    doc.Close(SaveChanges=True)
    word.Quit()

这是excel的替换

def replace_key_word(file_name, find_str, new_str):
    '''搜索并删除excel中指定关键字'''

    try:
        # 创建excel实例
        app = win32com.client.Dispatch('Excel.Application')
        app.Visible = False
        app.DisplayAlerts = False
        # 打开指定文档
        work_book = app.Workbooks.Open(file_name)
        work_sheets = work_book.Worksheets
        work_sheets_total = work_sheets.Count
        # 注意:打包前后sheet_index存在差别,打包前index从1开始,打包后index从0开始
        for sheet_index in range(0, work_sheets_total):
            # 选择当前工作表
            work_sheets[sheet_index].Select()
            # 替换关键字
            app.Selection.Replace(find_str, new_str)

        # 保存文档并关闭excel进程
        work_book.Save()
        app.Quit()
    except:
        app.Quit()
        raise Exception("文件 %s 处理过程中遇到了错误。" % file_name)

主函数啥的我就不贴了,过段时间我会发到我的github上
所有代码文件我先上传到csdn,作为新手真的不会git上传,而且今天太晚了。
资源链接:https://download.csdn.net/download/weixin_54651077/85113387


总结

这些都是在网上找的源码,简单修改了一下,真的抱歉忘了搬的哪些大佬的源码了,下次一定记着,并且贴上链接

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琦媛在努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值