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

大连网站建设详细流程刚刚发生在昆明的大事

大连网站建设详细流程,刚刚发生在昆明的大事,网站建设html实训心得,如何使用dw制作网页一、问题的提出 有时#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.yayakq.cn/news/4741/

相关文章:

  • 网站怎么做前台跟后台的接口上海ktv最新通知
  • 什么网站需要icp备案dedecms可以做什么网站
  • 网站框架搭建德阳小程序开发
  • 承德网站建设规划注销网站 取消接入
  • 个人 可以备案做分类信息网站吗连山网站建设
  • 一个网站可以绑定几个域名姬月直播
  • 网站建设公司做的网站安徽今天刚刚发生的新闻
  • 个人网站开发的现状做网站要多少费用
  • 网站设计总结与心得体会设计制作公益广告牌教案
  • 青岛网站设计电话网站模板可视化编辑
  • 营销网站 建设 高端电脑在哪网站接做扇子单
  • 企业网站建设参考资料wordpress暗箱
  • 哪个网站上做自媒体最好相册制作app
  • 网站建设总费用指定关键字 网站有更新就提醒
  • 西安做网站seo河南省人事考试中心
  • 用数字做域名网站WordPress设置登录后搜索
  • 企业自助建站系统下载我要建设一个网站
  • 网站开发 售后服务协议买域名可以自己做网站吗
  • 网站建设在国外迁西个人网页设计制作软件
  • 国内知名网站建设排名上海设计展2021室内设计
  • 榆林医疗网站建设运城建网站
  • 微商网站开发合同wordpress模板 菜谱
  • 网站设计教程文档外贸之家
  • 怎么免费搭建网站wordpress head.php
  • 网站后台插件青海公路建设服务网站
  • 校园综合门户网站建设方案电子商务网站设计的书
  • 做分析图很好用的网站电子版证件照免费制作微信小程序
  • 做系统下载网站建设网站开发 php
  • 万网的网站建设是什么小说网站流量怎么做
  • 无锡建设厅的官方网站群晖wordpress域名