IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 基于fme和python-docx第三方库批量更新不动产调查表 -> 正文阅读

[Python知识库]基于fme和python-docx第三方库批量更新不动产调查表

基于fme和python-docx第三方库批量更新不动产调查表

最近应朋友需要批量更新在不动产成果中提交的各种word报表中的指定数据,根据初步的了解,我做了一个基于fme软件和python-docx第三方库进行一个批量的更新方案。

基本情况

1.fme软件本身不支持word文档的读,只支持写出,所有要处理word,我采用的是python-docx第三方库。
2.本案例就以不动产权籍调查表为例,更新一下里面一项面积数据:
在这里插入图片描述
在这里插入图片描述

3.更新信息表格。
在这里插入图片描述

基本思路
基于调查表中的宗地代码和更新表格中的宗地代码,将更新信息和对应调查表挂接后,提取对应更新信息实现信息替换。
在这里插入图片描述

具体操作步骤
1.安装第三方库python-docx
具体安装方法,我采用的官方博客里面的教程,很简单,我将库安装在如下路径,方便所有版本fme都可以直接调用。
fme.exe python -m pip install 库名称 --target"C:\Users\admin\Documents\FME\Plugins\Python"
在这里插入图片描述

2.使用pythoncaller读取word文档内容
在这里插入图片描述

主要代码:

    def input(self, feature):
        file_doc=feature.getAttribute('path_windows')
        print(file_doc)
        doc = docx.Document(file_doc)
        for table in doc.tables:
            for row in table.rows:
                for cell in row.cells:
                    print(cell.text)
                    feature.setAttribute("data_line", cell.text)
                    self.pyoutput(feature)

3.读取跟新表中更新数据并挂接
根据宗地代码将更新数据和word中数据挂接在一起;
在这里插入图片描述

4.采用pythoncaller更新word文档
主要是将原始word中的数据替换为新的数据,注意源文件会更改。
实现代码

def info_update(self, doc, replace_dict):
    # 替换文档中所有文字内容
    for para in doc.paragraphs:
        # print(para.runs)
        for run in para.runs:
            # 从字典中对比替换内容
            for key, value in replace_dict.items():
                if key in run.text:
                    print(key)
                    print(value)
                    run.text = run.text.replace(key, value)
    # 替换文档中表格中的内容
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                for paragraph in cell.paragraphs:
                    for run in paragraph.runs:
                # 从字典中对比替换内容
                        for key, value in replace_dict.items():
                            if key in cell.text:
                                print(key)
                                print(value)
                                run.text = run.text.replace(key, value)

这里因为更新表格内数据每次字体都发生变换,所以下面这个循环我有套了一层上面的循环,这样字体就不会变了。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-24 20:53:29  更:2022-09-24 20:54:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:30:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码