python把excel转成word

Python Word文档转ExcelPython Word文档转Excel

一.根据客户需求把文件夹里所有的Word文档转换成Excel格式

Wrod格式如下:

Python Word文档转Excel

Python Word文档转Excel

转换后Excel格式如下:

Python Word文档转Excel

具体要求:word文档中带有5位数字1行转为,序号和方名各1列,后面对应带有【】标签里的内容各1列。如果方名下一行没有含有【】的,数据单独放在备注那1列。有的时候同1个【】内容,会持续两段。需要重新放在一起。

整体思路:带方号的行均保护5位数字,可用正则匹配方号和方名,不包含5位数字的行再次判断是否包含‘【】’,包含‘【】’的行用正则匹配中间的所有字符就是列名,不包含5位数字也不包含‘【】’的行就是需要放备注的内容

实施步骤:

1.导入库

import docximport osimport reimport pandas as pd

2.收集所有word文件名

#指定word文件存放的文件夹input_path=os.path.join(os.getcwd(),"word")#遍历文件夹中所有word文件名f_lst=os.listdir(input_path)f_lst

3.生成模板表

#生成模板表和EXCEL列名cols=["组成","用法","功用","主治","备考","方论","方论选录","方药","功能","功效","加减","禁忌","临床报道","临床举例","实验研究","现代研究","宜忌","异名","制法"]df=pd.DataFrame({"序号":[],"方名":[]})moban=df.copy()moban

4.核心代码

def word2excel(input_path,f_name,df): #读取word文档 doc = docx.Document(os.path.join(input_path,f_name)) #行计数 count=0 #遍历word文档中所有行 for paragraph in doc.paragraphs: #判断行是否包含5位数字 if len(re.findall("^[0-9]{5}", paragraph.text))>0: #正则匹配5位数赋值给变量序号 result = re.findall("[0-9]{5}", paragraph.text) df.loc[count,"序号"]=result[0] #正则匹配5位数后面所有字符赋值给变量方名 result2 = re.findall("[0-9]{5}(.*)", paragraph.text) df.loc[count,"方名"]=result2[0] #换行 count+=1 #print(paragraph.text) #不包含5位数字的行再次判断是否包含‘【】’ elif len(re.findall("[【](.*)[】]", paragraph.text))>0: #print(paragraph.text) #包含‘【】’的行用正则匹配中间的所有字符 result1 = re.findall("[【](.*)[】]", paragraph.text) #判断是否在列名数组中 if result1[0] in cols: #正则匹配‘】’后所有字符并写入对应列行 result3 = re.findall("[】](.*)", paragraph.text) df.loc[count-1,result1[0]]=result3 #不包含5位数字也不包含‘【】’的行 else: #判断是否为空 if len(paragraph.text)>0: #写入备注 df.loc[count-1,"备注"]=paragraph.text #print(paragraph.text) return df

5.依次对所有文档进行处理并保存

for i in f_lst: tmp_df=word2excel(input_path,i,moban) df=pd.concat([df,tmp_df])df.to_excel("1.xlsx")

二.根据客户需求把txt文档中内容替换成excel中的知道内容

Python Word文档转Excel

#导入库import xlrddef delblankline(infile, outfile): #打开指定文本文件 infopen = open(infile, 'r', encoding="utf-8") # 新建指定文本文件 outfopen = open(outfile, 'w', encoding="utf-8") # 打开指定EXCEL文件 wb = xlrd.open_workbook("2.xlsx") sh = wb.sheet_by_name("Sheet1") #查看总行 print(sh.nrows) #遍历所有行 db = infopen.read() for i in range(0, sh.nrows): #得到A、B列数据 name1 = sh.cell(i, 0).value name2 = sh.cell(i, 1).value print(name1) #查找替换数据 db = db.replace(name1, name2) print(i) outfopen.write(db) infopen.close() outfopen.close()delblankline("2.txt", "02.txt")print("完成")

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 9月 13日 下午4:10
下一篇 2023年 9月 13日 下午4:16

相关推荐

  • 无线路由器安装步骤详细图解(192.168.1.1登录入口)

    很多人都想在家或是宿舍里安装一台无线路由器,使自己的移动终端能接到互联网上,下面我就给大家介绍一下无线路由器安装或配置,不会的朋友可以参考下: 步骤一:以腾达路由器为例,首先要确定…

    互联网 2023年 2月 12日
  • a3试卷用a4纸怎么打印有几种方法

    相信很多家长因为孩子上学需要购买了A4打印机,而且有的朋友想把A3试卷左右两边分别用两张A4纸来打印出来,却不知道怎样做,下面告诉大家一个简单的方法。 第一步:下载安装 WPS 第…

    2023年 9月 30日
  • mp4如何教程

    如今视频软件太多,各种视频格式数都数不清,要想在网站上面下载个视频到没有联网的手机、车、或液晶电视上面看还要各种转码,甚至有些视频还无法转码视频格式,非常令人头疼(加蛋疼)。下面我…

    2023年 11月 18日
  • qq号被盗了,怎么弄回来?,qq被盗了qq绑定的微信要解绑吗

    曾几何时,qq是我们社交领域的最爱。就算是在今天,qq空间仍旧是许多人最钟爱的私密空间。因此,qq号被盗的事,让许多网友倍感痛心。那么,qq号被盗了怎么办呢?今天,公众号:孙师傅小…

    2023年 3月 11日
  • 12306账号注销后多久可以重新注册

    12306是我们平时购票的app,有些朋友因为一些原因想要注销账户,但是又不知道注销流程,而且担心注销后多久可以重新注册。带着这2个问题,小编今天给大家解答下,快来看看吧。 123…

    2023年 10月 9日
  • google recaptcha 验证码

    Kaptcha是google的一个验证码插件,可以集成spring中,使用很方便,但是他的属性要一定清楚 kaptcha可配置项: kaptcha.border 是否有边框 默认为…

    互联网 2023年 5月 25日
  • excel身份证号码提取出生日期公式

    如下图,需要根据A列的身份证号码提取出生日期到B列 首先给大家普及一下,身份证号码中表示出生日期的是第7位-第14位,总共8位数。 第一种:公式法,在B2单元格输入公式:=&#82…

    2023年 5月 1日
  • 究竟如何才能做一个赚钱的淘宝客户

    100%用心帮助你 佛家讲究因果,凡事有什么样的“因”,就会有什么样的“果” 做淘客赚钱是一个“果”。 首先我们要知道,一个“果”是由多种因缘聚合而产生的。 做好淘客,并赚钱。这是…

    2023年 7月 26日
  • 天猫魔盒如何安装电视家3.0解锁版

    天猫魔盒是国内市场上很热门很智能的机顶盒,通过盒子我们可在电视上观看高清电影、玩体感游戏、热门大型3D游戏等功能,安装了电视家3.0还能看电视节目,那么天猫魔盒怎么安装电视家3.0…

    2023年 9月 13日
  • 线上教学有哪些平台和教学软件,成人线上英语教学哪个平台好

    随着互联网技术的发展和教育需求的多样化,线上教学越来越受到机构和老师的青睐。线上教学可以突破时间和空间的限制,让更多的学生享受优质的教育资源,也让机构和老师能够拓展更广阔的市场。但…

    2023年 3月 19日