当前位置: 首页 > 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.hkea.cn/news/14294536/

相关文章:

  • 长沙建站网页设计与制作做网站
  • 汉中免费做网站连云港专业做网站
  • 网站右侧二维码代码大庆市建设中等职业技术学校网站
  • 网站备案号链接网站功能设计的内容
  • 漳州网站建设选博大不错淄博网站建设培训学校
  • 网站权重怎么提高wordpress 电子商城 模板
  • element ui做门户网站鞍山人才网怎么查档案
  • 网站多大够用临汾市网站建设
  • 虚拟主机网站怎么上传文件百度seo自动优化
  • 网站开发pc端和手机端网站开发的报告
  • 阿里云建站百度收录吗精美网站源码下载
  • 宁波做网站的公司长沙定制网站建设
  • 制作网页的网站哪个好用昭通建设局网站
  • 满洲里网站制作附近广告设计与制作门店电话
  • 同ip网站有什么影响平面设计常用网站
  • 韩国网页游戏网站免费软件app下载大全正能量网站
  • 呼和浩特建站网站管理助手 二级域名
  • 成都微信网站建设报价单wordpress插件video playe
  • 广西和住房城乡建设厅网站杂谈发现一只网站是你们谁做的
  • 合肥网站优化平台国内室内设计
  • 网站关键词代码怎么做传统文化网站设计
  • 建站过程北京模板建站哪家好
  • 豫建设标 网站平湖市建设局网站
  • 可以做公司宣传的网站有哪些内容数字化展厅设计方案
  • 襄阳市网站搭建公司网站首页的动态视频怎么做的
  • 外贸商城网站建设手游传奇代理平台
  • 范湖网站建设团队校园网网络设计报告
  • 做淘宝网站销售怎么样wordpress加logo
  • 深圳建设网站推荐网站改中文
  • 网站后端做留言板功能网站建设的图片叠加步骤过程