def show_excel(self): # 清空文本框内容 self.result_text.delete(1.0, tk.END) self.result_text2.delete(1.0, tk.END) # 显示出入库明细 for row in self.record_sheet.iter_rows(values_only=True): row_str = "" for cell in row: if cell is None: cell = "" elif type(cell) is datetime.datetime: cell = cell.strftime("%Y-%m-%d") row_str += str(cell) + "\t" self.result_text.insert(tk.END, row_str + "\n") # 显示库存明细 for row in self.data_sheet.iter_rows(values_only=True): row_str = "" for cell in row: if cell is None: cell = "" elif type(cell) is datetime.datetime: cell = cell.strftime("%Y-%m-%d") row_str += str(cell) + "\t" self.result_text2.insert(tk.END, row_str + "\n")修改這段代碼將excel數據已表格的方式展示出來
时间: 2024-03-23 07:38:35 浏览: 138
你可以使用 Tkinter 自带的表格组件 ttk.Treeview,将 Excel 数据以表格的形式展示出来。下面是修改后的代码:
```python
import openpyxl
import tkinter as tk
from tkinter import ttk
class ExcelViewer:
def __init__(self, excel_path):
self.workbook = openpyxl.load_workbook(excel_path)
self.record_sheet = self.workbook["Record"]
self.data_sheet = self.workbook["Data"]
self.window = tk.Tk()
self.window.title("Excel Viewer")
# 创建表格组件
self.record_table = ttk.Treeview(self.window)
self.data_table = ttk.Treeview(self.window)
# 设置表格列
self.record_table["columns"] = list(self.record_sheet.iter_cols(values_only=True))[0]
self.data_table["columns"] = list(self.data_sheet.iter_cols(values_only=True))[0]
# 设置表格列标题
for col in self.record_table["columns"]:
self.record_table.heading(col, text=col)
for col in self.data_table["columns"]:
self.data_table.heading(col, text=col)
# 插入数据行
for row in self.record_sheet.iter_rows(values_only=True):
self.record_table.insert("", tk.END, values=row)
for row in self.data_sheet.iter_rows(values_only=True):
self.data_table.insert("", tk.END, values=row)
# 显示表格
self.record_table.pack()
self.data_table.pack()
self.window.mainloop()
viewer = ExcelViewer("example.xlsx")
```
在上述代码中,我们首先使用 list() 将第一行转换成列表,作为表格的列。然后,使用 Treeview 的 insert() 方法将数据逐行插入表格中。最后,通过 pack() 方法将表格显示在窗口中。
阅读全文