|
发表于 2023-5-22 22:31:07
|
显示全部楼层
本楼为最佳答案

可以使用Pandas的`styling`功能,对表格进行美化,使其更接近原表格。具体实现方法如下:
1. 首先导入样式包:`from pandas.io.formats.style import Styler`
2. 在读取Excel数据后,创建一个Styler对象,并使用`.hide_index()`方法隐藏行索引
3. 调用`.set_table_styles()`方法设置表格样式,可以使用CSS样式或者dict格式来设置
4. 最后使用`.render()`方法将样式应用于表格并转化为HTML格式,再使用`.splitlines()`方法将HTML字符串分割为多行,并从第二行开始插入到Tkinter的Text组件中。
修改后的代码如下所示:
- import tkinter as tk
- from tkinter import filedialog
- import pandas as pd
- from pandas.io.formats.style import Styler
- class ExcelPreviewer:
- def __init__(self, master):
- self.master = master
- master.title("Excel Previewer")
-
- # 创建文件选择器按钮
- self.select_button = tk.Button(master, text="选择Excel文件", command=self.select_file)
- self.select_button.pack(pady=10)
-
- # 创建文本框用于显示Excel数据
- self.text = tk.Text(master, height=20, width=80)
- self.text.pack()
-
- def select_file(self):
- # 弹出文件选择器对话框
- file_path = filedialog.askopenfilename(filetypes=[('Excel Files', '*.xlsx')])
- if file_path:
- # 使用Pandas读取Excel数据
- df = pd.read_excel(file_path)
-
- # 使用Styler美化表格
- styler = df.head(10).style.hide_index().set_table_styles([{
- 'selector': 'th',
- 'props': [
- ('border', '1px solid black'),
- ('background-color', 'lightgray'),
- ('color', 'black')
- ]
- }, {
- 'selector': 'td',
- 'props': [
- ('border', '1px solid black'),
- ('padding', '5px')
- ]
- }])
-
- # 在文本框中显示美化后的表格
- self.text.delete(1.0, tk.END)
- self.text.insert(tk.END, '\n'.join(styler.render().splitlines()[1:]))
-
- root = tk.Tk()
- app = ExcelPreviewer(root)
- root.mainloop()
复制代码
这样就可以让预览的Excel文件格式更加美观,接近原表格。您可以根据需要进一步调整表格样式。 |
|