python-批量修改-word数据导入excel-模板

下面这个直接用是不行的,要修改一下几个地方

  • docxurl:指的是你存放docx文件的目录
  • xlsx1url:指的是你写入xlsx文件的绝对路径
  • xlsx2url:指的是你在内存中操作完xlsx文件之后要把他存放到哪
  • returndata:每个人要求的数据格式不一样,这个需要根据你自己的数据来更新规则
#操作系统文件目录
import os
#操作docx的模块
from docx import Document
#操作excel文件模块
import pandas as pd
from pandas import DataFrame

#接受一个文件目录,返回一个包含文件名的数组
def returnrootdata(url):
    #这里自动筛选docx文件
    return [url+"\\"+i for i in os.listdir(url) if i.split(".")[1] == "docx"]

#接收一个docx的绝对路径,返回一个字典
def returndata(url):
    tb = Document(url).tables
    name = tb[0].rows[0].cells[1].text
    phone = tb[0].rows[2].cells[7].text
    sex = tb[0].rows[1].cells[7].text
    studentid = tb[0].rows[1].cells[1].text
    sfzid = tb[0].rows[1].cells[4].text
    address = tb[0].rows[3].cells[1].text
    parent = tb[0].rows[4].cells[2].text
    parentph = tb[0].rows[4].cells[-1].text
    return {'姓名':name,'联系电话':phone,'性别':sex,'学号':studentid,'身份证号':sfzid,'现居住地':address,'家长姓名':parent,'家长联系方式':parentph}

#接收含有文件名的数组返回一个数组,元素为字典,包括
def returnappdata(data):
    dataappend = []
    for i in range(len(data)):
        #构建当前路径的字符串
        filedir = r""+data[i]
        dataappend.append(returndata(filedir))
    return dataappend


# 接收一个模板文件的路径以及生成目录的路径,以及要写入的字典数组
def aend(url1,url2,appdata):
    #打开文件
    df = pd.read_excel(url1)
    for i in appdata:
        df = df.append(i,ignore_index=True)
    DataFrame(df).to_excel(url2, sheet_name='Sheet1', index=False, header=True)



if __name__== "__main__":
    # 设置需要获取,总结的docx文件目录
    docxurl = r"C:\wenjian"
    # 设置要写入的xlsx的文件路径
    xlsx1url = r"C:\1.xlsx"
    # 设置需要生成的文件的绝对位置,例如:C:\2.xlsx"
    xlsx2url = r"C:\2.xlsx"
    #获取目标文件夹下所有docx文件绝对路径
    rootdata =  returnrootdata(docxurl)
    '''
    》》》['C:\\Users\\Huawei\\Desktop\\1.docx', 
     'C:\\Users\\Huawei\\Desktop\\2.docx', 
     'C:\\Users\\Huawei\\Desktop\\3.docx']
    '''
    #获取目标文件里所需要的数据
    appdata = returnappdata(rootdata)
    '''
    》》》[{'姓名': 'w', '联系电话': '1212311213', '性别': '女', '学号': '17382', '身份证号': '291629361231', '现居住地': '杭州', '家长姓名': 'w', '家长联系方式': '12312332'},
     {'姓名': 'e', '联系电话': '1212221213', '性别': '女', '学号': '17222', '身份证号': '291629312221', '现居住地': '杭州', '家长姓名': 'we', '家长联系方式': '12312232'}】
    '''
    # 写入文件
    aend(xlsx1url,xlsx2url,appdata)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值