以下是修改过的代码,主要是在处理Excel文件时使用了openpyxl库中的Cell类的value属性来进行脱敏操作:

import re
import os
import tkinter as tk
from tkinter import filedialog
from docx import Document
import openpyxl

def create_new_window4():
    def desensitize_text(text):
        # 替换为*
        text = re.sub(r'[\u4e00-\u9fa5]{2,}', '*', text)
        # 替换为****
        text = re.sub(r'\d{3}\d*(\d{4})', r'****\1', text)
        return text

    def desensitize_word_file(file_path):
        document = Document(file_path)
        for paragraph in document.paragraphs:
            paragraph.text = desensitize_text(paragraph.text)
        for table in document.tables:
            for row in table.rows:
                for cell in row.cells:
                    cell.text = desensitize_text(cell.text)
        desensitized_file_path = os.path.splitext(file_path)[0] + '_desensitized.docx'
        document.save(desensitized_file_path)

    def desensitize_excel_file(file_path):
        workbook = openpyxl.load_workbook(file_path)
        for sheet in workbook.sheetnames:
            worksheet = workbook[sheet]
            for row in worksheet.iter_rows():
                for cell in row:
                    cell.value = desensitize_text(str(cell.value))
        desensitized_file_path = os.path.splitext(file_path)[0] + '_desensitized.xlsx'
        workbook.save(desensitized_file_path)

    def desensitize_word():
        file_path = filedialog.askopenfilename()
        if file_path:
            desensitize_word_file(file_path)

    def desensitize_excel():
        file_path = filedialog.askopenfilename()
        if file_path:
            desensitize_excel_file(file_path)

    new_window = tk.Toplevel(root_new)
    new_window.title("脱敏窗口")
    new_window.geometry("500x400")

    word_button = tk.Button(new_window, text="Word文件脱敏", command=lambda: desensitize_word())
    word_button.pack(pady=10)

    excel_button = tk.Button(new_window, text="Excel文件脱敏", command=lambda: desensitize_excel())
    excel_button.pack(pady=10)
``
#脱敏窗口def create_new_window4 def desensitize_texttext # 替换为 text = resubru4e00-u9fa52 text # 替换为 text = resubrd3dd4 r1 text return text def desensitize_word_fi

原文地址: https://www.cveoy.top/t/topic/hftV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录