pandas&docxtpl&numpy简单应用

import numpy as np
import pandas as pd
import math

from docxtpl import DocxTemplate

col_order = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U',
             'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM',
             'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE']
df = pd.read_excel(r'C:\Users\caoming\Desktop\20200914数据处理\立结项报告底表-样本数据1014.xlsx', sheet_name='正式项目结项报告')
print(df.shape)
lines = df.shape[0]
print('lines = ' + str(lines))
print(df.iloc[0][0])
for i in range(0, lines):
    doc_dic = {}
    doc = DocxTemplate(r'C:\Users\caoming\Desktop\20200914数据处理\模板\交付立项结项\2.2、正式项目结项报告20200923.docx')
    cols = df.iloc[i]
    len_cols = len(df.iloc[i])
    j = 0
    for j in range(0, len_cols):
        if isinstance(cols[j], pd._libs.tslibs.timestamps.Timestamp):
            doc_dic[col_order[j]] = str(cols[j]).split()[0]
        elif isinstance(cols[j], np.int64):
            doc_dic[col_order[j]] = cols[j]
        elif isinstance(cols[j], float) and math.isnan(cols[j]):
            doc_dic[col_order[j]] = ""
        elif isinstance(cols[j], np.float64) and np.isnan(cols[j]):

            doc_dic[col_order[j]] = ""
        else:
            doc_dic[col_order[j]] = cols[j]

    doc_dic['huanhang1']=[]
    doc_dic['huanhang2']=[]
    doc_dic['huanhang3']=[]
    doc_dic['huanhang4']=[]
    doc_dic['huanhang5']=[]

    xuhaos= cols[15].split('\n')
    jiaofuwus = cols[16].split('\n')
    chengdanrens=cols[17].split('\n')
    starttimes=cols[18].split('\n')
    endtimes=cols[19].split('\n')



    #print(jiaofuwus)
    for xuhao in xuhaos:
        row1={}
        row1['xuhao'] = str(xuhao)
        doc_dic['huanhang1'].append(row1)

    for jiaofuwu in jiaofuwus:
        row2 = {}
        row2['label']=jiaofuwu
        doc_dic['huanhang2'].append(row2)

    for chengdanren in chengdanrens:
        row3 = {}
        row3['chengdanren']=chengdanren
        doc_dic['huanhang3'].append(row3)

    for starttime in starttimes:

        row4 = {}
        row4['starttime']=str(starttime)
        doc_dic['huanhang4'].append(row4)
    for endtime in endtimes:
        row5 = {}
        row5['endtime']=str(endtime)
        doc_dic['huanhang5'].append(row5)




    print(doc_dic)
    doc.render(doc_dic)
    doc.save('C:\\Users\\caoming\\Desktop\\20200914数据处理\\新建文件夹\\' + '正式项目结项报告-' + cols[0].replace('\n', '') + '.docx')

导入模板
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值