当前位置: 首页 > news >正文

建设部设计院网站深圳网站优化提供商

建设部设计院网站,深圳网站优化提供商,网站架构软件,购物网站策划方案一、问题的提出 有时#xff0c;我们手头上有多个Excel或者Word文件#xff0c;但是领导突然要求对某几个术语进行批量的修改#xff0c;你是不是有要崩溃的感觉。因为这么多文件#xff0c;要一个一个地打开文件#xff0c;再进行批量替换修改#xff0c;几个文件还好我们手头上有多个Excel或者Word文件但是领导突然要求对某几个术语进行批量的修改你是不是有要崩溃的感觉。因为这么多文件要一个一个地打开文件再进行批量替换修改几个文件还好如果是成百上千的文件我想你一会儿就感觉自己被搞晕了不仅搞不清修改了没有修改完而且已经修改的也不知道修改的彻底不。 于是问题来了当我需要对多个Excel和Word文件中的关键字进行替换而且不改变原文件的格式同时删除源文件我们该怎么办这些office文件可能分布在不同的文件夹下所以替换后还要存放在原来的文件夹。同时我们编写的程序还要在Windows和MacOS环境下都可以使用。 二、算法分析 由于要在多个环境下使用我们放弃VBA考虑采用Python编程的方法来解决。 1. 第一步 读取一个替换关键字的批量替换表.xlsx生成一个字典这样是为了后面可以批量替换。第二步 遍历当前目录下所有目录包括上当的文件主要是docx和xlsx文件如果是doc和xls文件还要考虑两这两种格式的文件进行批量的转化见下面的文章 。 批量转doc和xls为docx和xlsx文件 2. 第二步是 遍历当前所有目录中的文件用if条件根据文件扩展名的不同来筛选出docx和xlsx文件。代码如下 for root, filefolder, files in os.walk(os.curdir):for file in files:if file.endswith(docx):file_path os.path.join(root, file)for key, value in dic.items():word_replace_keywords(file_path, key, value)elif file.endswith(xlsx) and os.path.basename(file)!批量替换表.xlsx:file_path os.path.join(root, file)for key, value in dic.items():excel_replace_keywords(file_path, key, value) 3. 第三步是对于docx和xlsx文件分别进行替换处理主要采用了python-docx和openpyxls这两个模块来进行替换。针对docx文件我们用Document()来读取用以下代码来替换 def info_update(doc, old, new):for para in doc.paragraphs:for run in para.runs:if old in run.text:run.text run.text.replace(old, new) 对于xlsx文件我我们通过下面的代码实现关键字替换同时不改变原来关键字的格式。 def replace_cell_text_with_format(cell, keyword, replacement):paragraphs cell.paragraphsfor paragraph in paragraphs:for run in paragraph.runs:if keyword in run.text:new_text run.text.replace(keyword, replacement)run.clear() # 清除当前文本new_run run._element # 创建新的runnew_run.text new_text # 设置新文本for key in run._r.attrib.keys(): # 复制格式属性if key ! t:new_run.attrib[key] run._r.attrib[key] 4. 第四步 我们要保存替换后的文件同时用os.remove()删除原来的文件。 三、代码展示 最终我们编制出70多行的代码一键实现了多文件、多关键字、保存源格式又能在Windows和苹果电脑环境使用的程序。代码如下 import os from docx import Document from openpyxl import load_workbookdef info_update(doc, old, new):for para in doc.paragraphs:for run in para.runs:if old in run.text:run.text run.text.replace(old, new)def replace_cell_text_with_format(cell, keyword, replacement):paragraphs cell.paragraphsfor paragraph in paragraphs:for run in paragraph.runs:if keyword in run.text:new_text run.text.replace(keyword, replacement)run.clear() # 清除当前文本new_run run._element # 创建新的runnew_run.text new_text # 设置新文本for key in run._r.attrib.keys(): # 复制格式属性if key ! t:new_run.attrib[key] run._r.attrib[key] def get_dic():workbook load_workbook(批量替换表.xlsx)sht workbook.activedic {}for c1,c2 in zip(sht[A],sht[B]):if c1.value! None and c2.value! None:dic[c1.value] c2.valuereturn dicdef word_replace_keywords(file_path, keyword, replacement):doc Document(file_path)info_update(doc, keyword, replacement)try: for table in doc.tables:if not any(cell.text for row in table.rows for cell in row.cells):continue for row in table.rows:for cell in row.cells:if keyword in cell.text:replace_cell_text_with_format(cell, keyword, replacement)except Exception as e:print(Error processing table:, e)doc.save(file_path)def excel_replace_keywords(file_path, keyword, replacement):wb load_workbook(file_path)for sheet_name in wb.sheetnames:sheet wb[sheet_name]for row in sheet.iter_rows():for cell in row:if cell.value and keyword in str(cell.value):cell.value str(cell.value).replace(keyword, replacement)wb.save(file_path)wb.close()def get_replaced(dic): for root, filefolder, files in os.walk(os.curdir):for file in files:if file.endswith(docx):file_path os.path.join(root, file)for key, value in dic.items():word_replace_keywords(file_path, key, value)elif file.endswith(xlsx) and os.path.basename(file)!批量替换表.xlsx:file_path os.path.join(root, file)for key, value in dic.items():excel_replace_keywords(file_path, key, value) def main():dic get_dic()get_replaced(dic) if __name__ __main__:main() 以上代码的优势在于速度快设置好关键字后一键替换可以在多个环境下使用相比VBA代码Python代码的执行速度更快、操作更简单、省时省力。 四、注意事项 1. 运行代码前一定要安装Python3.9及以上版本同时安装openpyxl和python-docx两个模块。 2. 执行程序前要把doc和xls文件分别转化为docx和xlsx文件这样更方便替换。 3. 执行前要在程序文件目录下建立一个xlsx文件命名为批量替换表.xlsx在表的A列放上要查找的关键字B列放要替换的关键字。 4. 如果有问题可以随时与我联系也可以通过下面进行提问。
http://www.pierceye.com/news/319029/

相关文章:

  • 旅游网站建设报价单编程猫官方网站
  • phpcms 专题网站模板网站效果图用什么做
  • 手机网站需要多少钱做淘宝网站运营工作流程
  • 惠州seo网站管理个人网站名
  • 大型网站的优化方法儿童编程哪家培训机构好
  • 怎么样能够为一个网站做推广金安合肥网站建设专业
  • 免费手机网站商城微信公众号对接网站做
  • 用vs2013做网站公司网站突然404
  • 东莞建站模板搭建广东商城网站建设
  • crm网站下载网站建设网址网站制作
  • 网站开发怎么入驻京东花店网站开发参考文献
  • 郑州专业网站推广优化公司技术支持 东莞网站建设
  • 苏州做网站的公司哪家最好网站企业
  • 厦门做网站seo网络营销就是什么
  • 哪个网站可以学做蛋糕网络软件系统
  • 网站制作的核心要点是什么找人做网站服务器不是自己的怎么办
  • 自己做国际网站福建省文明建设办公室网站
  • 天津专业做网站的公司私人免费网站怎么下载
  • 深圳网站设计灵点网络口碑好广州海珠建网站
  • 网站开启gzip压缩西安的推广公司
  • 深圳彩票网站建设企业邮箱免费版开通
  • 佛山网站建设网络推广wordpress文章加音频
  • 设计师新手接单网站怎么把自己做的网站
  • 动漫制作专业在国企河北网络营销推广seo
  • 潜江网站建设兼职万网人网站备案流程
  • 物流官网网站今天新闻联播
  • 郑州网站开发的公司三亚今天最新通知
  • 足球直播网站怎么做东莞市公司网站建设平台
  • 建设网站需要了解什么校园网站建设和管理工作制度
  • 网站商务通弹出窗口图片更换设置移动端cpu