python用tkinter制作一个从excel提取内容到word中的进行替换的,并使用excel中内容作为文件名的程序

声明

本篇内容,仅限个人使用,禁止商用,商用请联系

使用场景:

类似word中的邮件功能:通过查找替换,替换原有word中的内容:
同时,批量生成内容:如使用excel中的一列作为word新文件的文件名
具体如下::::
替换为指定str word中的查找替换
替换为随机生成的整数
替换为随机的小数
替换为excel中的值
替换为excel中拼接的值

在这里插入图片描述

代码大纲

本程序一共包括下面5个内容
1、main.py 主运行函数
2、generate_windows.py # 用于使用tkinter生成新窗口
3、replace_content.py # 用于word中替换内容
4、save_to_json.py # 用于将用户输入的内容保存到本地
5、some_opera.py # 一些其他的操作
6、关注公众号:了解更多,私信我,一起交流

1、main.py 函数
# ---encoding:utf-8---
# @Time    : 2024/8/3 07:52
# @Author  : 关注公众号:右恩
# @File    : main.py
# @Project : 关注公众号:右恩
# @Software: PyCharm
# love 
# If I can't be a god, I'll be a beast

from generate_windows import WordExcelReplacerApp
import tkinter as tk

root = tk.Tk()
app = WordExcelReplacerApp(root)  # 运行主函数
root.mainloop()
2、generate_windows.py 函数
# ---encoding:utf-8---
# @Time    : 2024/8/3 08:02
# @Author  : 关注公众号:右恩
# @File    : generate_windows.py
# @Project : 关注公众号:右恩
# @Software: PyCharm
# love 
# If I can't be a god, I'll be a beast


import tkinter as tk
from tkinter import filedialog, messagebox, ttk
import logging
import os
from openpyxl import load_workbook
import some_opera
import time  # 模拟耗时任务
import replace_content
from save_to_json import UserDataManager
from docx import Document



folder_path1 = './log'         # 定义一个本地输入Log的文件夹
folder_path2 = './output'      # 输出文件夹 

# 判断文件夹是否存在,如果不存在,则新建一个
if os.path.exists(folder_path1) and os.path.exists(folder_path2):
    pass
else:
    os.makedirs(folder_path1)
    os.makedirs(folder_path2)

# 配置日志记录
logging.basicConfig(filename='./log/main.log', level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s', encoding="utf-8")
logger = logging.getLogger()


class WordExcelReplacerApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Word-Excel 替换工具  关注公众号:右恩")
        self.word_path = ""
        self.excel_path = ""
        self.replacements = []

        self.results = []
        self.index_i = 0
        # GUI布局
        self.create_widgets()
        self.user_data = UserDataManager()

    def create_widgets(self):
        tk.Label(self.root, text="选择Word文件:").grid(row=0, column=0, padx=10, pady=5)
        self.word_entry = tk.Entry(self.root, width=50)
        self.word_entry.grid(row=0, column=1, padx=10, pady=5)
        self.word_button = tk.Button(self.root, text="浏览...", command=self.load_word_file)
        self.word_button.grid(row=0, column=2, padx=10, pady=5)

        tk.Label(self.root, text="选择Excel文件:").grid(row=1, column=0, padx=10, pady=5)
        self.excel_entry = tk.Entry(self.root, width=50)
        self.excel_entry.grid(row=1, column=1, padx=10, pady=5)
        self.excel_button = tk.Button(self.root, text="浏览...", command=self.load_excel_file)
        self.excel_button.grid(row=1, column=2, padx=10, pady=5)

        # 替换数量选择
        tk.Label(self.root, text="需要替换的数量:").grid(row=2, column=0, padx=10, pady=5)
        self.replace_count_var = tk.IntVar(value=5)
        self.replace_count_spinbox = tk.Spinbox(self.root, from_=1, to=15, textvariable=self.replace_count_var,
                                                command=self.update_replacement_inputs)
        self.replace_count_spinbox.grid(row=2, column=1, padx=10, pady=5)

        # 创建一个可滚动的框架用于替换内容输入框
        self.canvas = tk.Canvas(self.root, height=200,width=1150)
        self.inputs_frame = tk.Frame(self.canvas)
        self.scrollbar = tk.Scrollbar(self.root, orient="vertical", command=self.canvas.yview)
        self.canvas.configure(yscrollcommand=self.scrollbar.set)

        self.scrollbar.grid(row=3, column=3, sticky="ns")
        self.canvas.grid(row=3, column=0, columnspan=3, pady=10)
        self.canvas.create_window((0, 0), window=self.inputs_frame, anchor="nw")

        self.inputs_frame.bind("<Configure>", self.on_frame_configure)

        # 创建初始的替换内容输入框
        self.update_replacement_inputs()

        # 输出框
        self.output_frame = tk.Frame(self.root)
        self.output_frame.grid(row=4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值