def show_excel(self): self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"] style = ttk.Style() style.configure("MyTreeview1.Treeview", rowheight=25, borderwidth=2, relief="solid", font=('Arial', 10)) style.configure("MyTreeview1.Treeview.Heading", font=('Arial', 10, 'bold')) style.layout("MyTreeview1.Treeview", [('MyTreeview1.Treeview.treearea', {'sticky': 'nswe'})]) # 创建表格用于显示第一个工作表 columns1 = next(self.record_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview1 = ttk.Treeview(self.container1, columns=columns1, show="headings", style="MyTreeview1.Treeview") treeview1.grid(row=1, column=3, rowspan=1, padx=5, pady=5, sticky="nsew") # 设置表格列的标题和宽度 for col in columns1: treeview1.heading(col, text=col) treeview1.column(col, width=100, anchor="center") # 显示第一个工作表的内容 for row in self.record_sheet.iter_rows(min_row=2, values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview1.insert("", tk.END, values=row_values) # 创建表格用于显示第二个工作表 columns2 = next(self.data_sheet.iter_rows(min_row=1, max_row=1, values_only=True)) treeview2 = ttk.Treeview(self.container1, columns=columns2, show="headings") treeview2.grid(row=3, column=3, padx=5, pady=5, sticky="nsew") # 设置表格列的标题和宽度 for col in columns2: treeview2.heading(col, text=col) treeview2.column(col, width=100, anchor="center") # 显示第二个工作表的内容 for row in self.data_sheet.iter_rows(min_row=2,values_only=True): row_values = [str(cell) if cell is not None else "" for cell in row] if all(not bool(cell) for cell in row_values): continue treeview2.insert("", tk.END, values=row_values)給這兩個表格框各自添加滾動條來滾動表格數據
时间: 2023-11-12 20:04:23 浏览: 151
您可以使用 tkinter 的 Scrollbar 组件来为这两个表格添加滚动条。可以将 Treeview 和 Scrollbar 组件放在同一个 Frame 中,然后使用 grid() 函数进行布局。以下是一个示例代码片段:
```
# 创建滚动条
scrollbar1 = ttk.Scrollbar(self.container1, orient="vertical", command=treeview1.yview)
scrollbar2 = ttk.Scrollbar(self.container1, orient="vertical", command=treeview2.yview)
# 设置 Treeview 组件的 yscrollcommand 属性
treeview1.configure(yscrollcommand=scrollbar1.set)
treeview2.configure(yscrollcommand=scrollbar2.set)
# 布局 Treeview 和 Scrollbar 组件
treeview1.grid(row=1, column=3, rowspan=1, padx=5, pady=5, sticky="nsew")
scrollbar1.grid(row=1, column=4, rowspan=1, padx=5, pady=5, sticky="ns")
treeview2.grid(row=3, column=3, padx=5, pady=5, sticky="nsew")
scrollbar2.grid(row=3, column=4, padx=5, pady=5, sticky="ns")
```
注意,这里使用了 ttk.Scrollbar 组件而不是 tkinter.Scrollbar 组件,因为 ttk 组件在外观和功能上更加现代化。另外,为了让滚动条正常工作,需要将 Treeview 组件的 yscrollcommand 属性设置为对应的 Scrollbar 组件的 set() 方法。
阅读全文