核心代码较为简单,就是要考虑到table中文字替换麻烦点,要把对table看成一个对象,再在里面当成段落处理,方可以不改变table中的格式
def replace(self):
def read_ducment(old, new):
# 遍历文档
for paragraph in document.paragraphs:
for run in paragraph.runs:
# 替换功能
if old in run.text:
run.text = run.text.replace(old, new)
# 遍历表格
for table in document.tables:
for row in table.rows:
for cell in row.cells:
# 遍历表格段落内容,回到上个步骤,将cell当作paragraph处理
for paragraph in cell.paragraphs:
for run in paragraph.runs:
# 替换功能
if old in cell.text:
run.text = run.text.replace(old, new)
让后用pyqt5制作了一个外壳,这样话就可以方便当作exe来使用了
源代码全部奉上,只需用pyinstaller转化一下就行了:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
import os
import sys
from PyQt5 import QtCore, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QFileDialog, QMessageBox
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(822, 702)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(570, 50, 93, 28))
self.pushButton.setAutoRepeatDelay(300)
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(140, 50, 91, 31))
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(71, 134, 101, 31))
self.label_2.setObjectName("label_2")
self.lineEdit_111 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_111.setGeometry(QtCore.QRect(182, 130, 191, 41))
self.lineEdit_111.setText("")
self.lineEdit_111.setObjectName("lineEdit_111")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(411, 144, 81, 21))
self.label_3.setObjectName("label_3")
self.lineEdit_121 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_121.setGeometry(QtCore.QRect(500, 130, 211, 41))
self.lineEdit_121.setObjectName("lineEdit_121")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(70, 190, 101, 31))
self.label_4.setObjectName("label_4")
self.lineEdit_122 = QtWidget