基于python批量制作外业现场核验单

情景分析

在外业核验的项目中,会需要制作大量外业现场核验单,比较烦琐和费时费力,通过python批量对word文件进行修改制作外业核验单可以提高工作效率。

所需材料

(1)外业现场核验单模版(.word)
需要将外业核验单中的唯一编号、核验时间、位置、占地面积、地类名称、规划用途以及遥感影像补充完整。
在这里插入图片描述

(2)数据信息台账表(.word)
在这里插入图片描述

(3)插入的照片(.word)
照片要按外业核验图斑的唯一编号进行命名。
在这里插入图片描述

代码

下面展示一些 内联代码片

#导入包
from datetime import datetime
import os
from docx import Document
import pandas as pd
from docx.shared import Inches,Cm,Pt
def piliangheyan(TZxls,docx,photopath):
    """
    :param TZxls:输入台账信息表格
    :param docx: 输入现场核验单模版文档
    :param photopath:输入影像存放文件夹
    :return:制作的现场核验单文档(以唯一编号命名)
    """
    Taizhang=pd.read_excel(io=TZxls)
    print(Taizhang)
    print(Taizhang.loc[0][2])
    #获取表格的行数
    hangshu=Taizhang.shape[0]
    print(hangshu)
    # print(doc)
    # count=0
    # print(len(table))
    # print(table[0].cell(1,2).text)
    # 遍历每个段落
    for n in range(hangshu):
        doc = Document(docx)
        table = doc.tables
        for p in doc.paragraphs:
            if 'XXXX' in p.text:
                inline = p.runs
                print(inline)
                for i in range(len(inline)):
                    # print(i)
                    if 'XXXX' in inline[i].text:
                        text = inline[i].text.replace('XXXX', Taizhang.loc[n][1])
                        inline[i].text = text
        run1=table[0].cell(0,2).paragraphs[0].add_run(str(Taizhang.loc[n][2]))
        run1.font.name = 'Times New Roman'
        # print("2023年6月8日")
        # table[0].cell(0,4).text="2023年6月8日"
        # print(Taizhang.loc[0][3])
        # print("2023年6月8日")
        run2=table[0].cell(0,4).paragraphs[0].add_run(Taizhang.loc[n][3])
        run2.font.name = 'Times New Roman'
        run3=table[0].cell(1,2).paragraphs[0].add_run(Taizhang.loc[n][4])
        run3.font.name = 'Times New Roman'
        # print(type(str(Taizhang.loc[0][5])))
        # print(type("113.41"))
        run4=table[0].cell(2,2).paragraphs[0].add_run(str(Taizhang.loc[n][5]))
        run4.font.name = 'Times New Roman'
        # table[0].cell(2,2).text="113.4"
        run5=table[0].cell(2,4).paragraphs[0].add_run(Taizhang.loc[n][6])
        run5.font.name = 'Times New Roman'
        run6=table[0].cell(3,2).paragraphs[0].add_run(Taizhang.loc[0][7])
        run6.font.name = 'Times New Roman'
        run7=table[0].cell(5,1).paragraphs[0].add_run()
        path=os.path.join(photopath,str(Taizhang.loc[n][2])+'.png')
        print(path)
        picture =run7.add_picture(path)
        picture.height=Cm(5.2)
        picture.width=Cm(7.4)
        doc.save("%s_外业核验单.docx"%Taizhang.loc[n][2])
piliangheyan(r"C:\Users\*****\数据台账信息表.xlsx","模板.docx","C:\\Users\\***\\影像照片\\")

结果

会在当前目录下制作三个以唯一编码命名的外业现场核验单(.word)
在这里插入图片描述
制作的唯一编码为123456788的外业现场核验单
在这里插入图片描述

说明:本文中所有数据信息和照片均为虚构测试数据,不代表真实情况。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值