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

相关推荐

  • 淘金币全额兑换攻略

    作为商家,您是不是也为账户金币越来越少而发愁?您是不是也嫌弃赚金币的速度太慢!机会终于来了!千呼万唤始出来,店铺兑换7.18重新上线啦!不少商家在摩拳擦掌,准备参加活动呢! 店铺兑…

    2023年 2月 20日
  • qq聊天记录删除了怎么恢复手机

    QQ聊天记录删除了怎么恢复?因为内存不足的原因,把QQ的聊天记录及一些文件图片都给清空了,但最重要的是聊天记录给删除了,导致非常的后悔,想把聊天记录找回。那我们应该怎么做才能够把聊…

    2023年 2月 18日
  • 信用卡在线申请技巧有哪些,信用卡在线申请办理步骤

    银行网点柜台办理信用卡属于比较传统的办卡渠道,而随着互联网的快速发展,信用卡办理渠道越来越多,如网络申卡、手机办卡等。而现在人为了图方便,通过网络渠道办卡的越来越多。那么信用卡在线…

    2023年 1月 23日
  • 如何修改微信头像和昵称

    一、前言 早上好!今天这篇文章咱们主要介绍如何修改微信个人信息【微信头像、微信名字、微信个性签名】,步骤我分的比较细,不会的可以一步一步跟着来。 二、方法 第一步:打开微信,点击我…

    2023年 4月 14日
  • 分析让社区万能章不堪重负的原因有哪些

    社区开具证明的事项有110多项,一个社区里居住着不少的居民,可想而知的是,社区干部也就是很忙碌的,一天到晚抱着盖章去证明这,证明那,还有时间搞好其他工作吗?很显然,这必然种了人家的…

    互联网 2023年 4月 1日
  • 搜索营销不花钱如何获取搜索流量

    对于电商商家来说,流量是店铺的根本。没有流量更不要谈转化率。 01 如何获取流量呢?各平台玩法不同,但核心无非就是流量=站内流量+站外流量,然后通过这个公式无限拆解流量来源,最终找…

    2023年 4月 11日
  • 哪里可以获取地图的各点经纬度(如何通过地图软件获取经纬度)

    先小科普下经纬度的三种书写格式: 度分秒 (DMS):41°24’12.2″N 2°10’26.5″E 度和十进制分 (DMM):4…

    2023年 6月 21日
  • word办公技巧如何打带圈的数字

    本文介绍了四种word文档中输入带圆圈的数字序号的办法,分别是①使用“开始”菜单自带的功能,②使用“插入符号”功能,③使用编码输入功能,④使用其他输入法自带的功能。 普通的数字序号…

    2023年 3月 25日
  • 计算机二级ppt考点及详细方法

    今天是计算机二级考试的第一天,不少刚刚考完试的小伙伴们直呼”今年的题目又难了!”,”12月再战!”,然而,计算机考试还未结束,还没有上考场的小伙伴们都有机会,下面是小编为大家梳理的…

    2023年 10月 4日
  • win10电脑密码忘了怎么办?如何破解电脑密码

    Windows10系统电脑开机密码忘记了,该怎么办?教你一招如何破解密码“春日游,杏花吹满头”。大家好,我是兼容机之家的小牛,又是一年新春。不知道大家有没有出去走走呢。话不多说,最…

    2023年 8月 25日