tmp文件怎么转换成excel,怎么把tmp变成excel

首页 > 数码 > 作者:YD1662024-04-20 02:19:34

tmp文件怎么转换成excel,怎么把tmp变成excel(1)

tmp文件怎么转换成excel,怎么把tmp变成excel(2)

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

Wrod格式如下:

tmp文件怎么转换成excel,怎么把tmp变成excel(3)

tmp文件怎么转换成excel,怎么把tmp变成excel(4)

转换后Excel格式如下:

tmp文件怎么转换成excel,怎么把tmp变成excel(5)

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

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

实施步骤:

1.导入库

import docx import os import re import 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中的知道内容

tmp文件怎么转换成excel,怎么把tmp变成excel(6)

#导入库 import xlrd def 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("完成")

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.