吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 728|回复: 1
收起左侧

[求助] 搜索表格关键字 显示搜搜结果,并且字体颜色与表格中一致

[复制链接]
罗萨 发表于 2023-7-16 22:38
死活不会写这块
字体颜色不跟表格里颜色一样
表格里是红色,他还是现黑色
这个要怎么解决呢? 361c1ebdaa4ea3f77bf197bfda8eb07.png



[Python] 纯文本查看 复制代码
import tkinter as tk
from tkinter import ttk
import openpyxl

def search_excel(file_path, sheet_name, keyword):
    wb = openpyxl.load_workbook(file_path)
    sheet = wb[sheet_name]
    result = []

    for row in sheet.iter_rows(values_only=True):
        if keyword.lower() in ' '.join(str(cell) for cell in row).lower():
            result.append(row)

    return result

def perform_search(*args):
    file_path = 'data.xlsx'  # Excel文件路径
    sheet_name = 'Sheet1'    # 表格名称
    keyword = search_var.get()

    results = search_excel(file_path, sheet_name, keyword)

    # 清空Treeview中的数据
    for i in treeview.get_children():
        treeview.delete(i)

    # 插入查询结果到Treeview中
    for index, row in enumerate(results, start=1):
        treeview.insert('', 'end', values=(str(index),) + row)

# 创建GUI窗口
window = tk.Tk()
window.title("Excel查询软件")

# 设置窗口大小为600x300
window.geometry("1000x300")
window_width = 1000
window_height = 300

screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()

x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2

window.geometry(f"{window_width}x{window_height}+{x}+{y}")
# 查询输入框
search_label = tk.Label(window, text="请输入关键字:")
search_label.pack()

search_var = tk.StringVar()

def on_search_change(*args):
    perform_search()

# 跟踪输入框的值变化
search_var.trace('w', on_search_change)

search_entry = tk.Entry(window, textvariable=search_var)
search_entry.pack()

# 查询结果显示区域
treeview_frame = ttk.Frame(window)
treeview_frame.pack(side=tk.TOP, fill=tk.BOTH)

treeview_scrollbar = ttk.Scrollbar(treeview_frame)
treeview_scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

# 设置查询结果显示窗口大小为600x300
treeview = ttk.Treeview(treeview_frame, yscrollcommand=treeview_scrollbar.set, height=10)
treeview.pack(fill=tk.BOTH, expand=True)

treeview_scrollbar.config(command=treeview.yview)

# 定义表格列名和列宽
columns = [('索引列', -200), ('列1', -50), ('列2', 120), ('列3', 140), ('列4', 140)]  # 根据实际情况修改列名和列宽

# 设置Treeview列名
treeview['columns'] = [col[0] for col in columns]

# 设置每列的属性和宽度
treeview.column('#0', width=columns[0][1])
for index, (column_name, column_width) in enumerate(columns[1:], start=1):
    treeview.column('#' + str(index), width=column_width)
    treeview.heading('#' + str(index), text=column_name)

# 运行窗口主循环
window.mainloop()

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Kls673M 发表于 2023-7-17 09:48
看不是很懂,你的代码好像没有获取表格文字的样式吧,而且输出到UI上也没设置字体的样式吧!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表