创建表格用于显示第二个工作表 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") vsb2 = ttk.Scrollbar(self.container1, orient="vertical", command=treeview2.yview) treeview2.configure(yscrollcommand=vsb2.set) treeview2.grid(row=5, column=3, rowspan=1, padx=5, pady=5, sticky="nsew") vsb2.grid(row=5, column=4, rowspan=1, padx=0, pady=5, sticky="ns") # 设置表格列的标题和宽度,间隔设置为 5 像素 for col in columns2: treeview2.heading(col, text=col) treeview2.column(col, width=70, 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)這個代碼片段中創建的表格修改為文本框,來顯示數據
时间: 2024-03-22 21:41:56 浏览: 20
要将表格修改为文本框来显示数据,你可以使用Tkinter的Text控件。下面是一个示例代码片段:
```
from tkinter import *
# 创建一个文本框
text_box = Text(self.container1, height=10, width=50)
text_box.grid(row=5, column=3, rowspan=1, padx=5, pady=5, sticky="nsew")
# 获取第二个工作表的内容,并将其添加到文本框中
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
text_box.insert(END, "\t".join(row_values) + "\n")
```
在上述代码中,我们创建了一个高度为10,宽度为50的文本框,并将其添加到容器中。然后,我们使用与之前相同的方法获取第二个工作表的内容,并将其添加到文本框中。在这种情况下,我们使用制表符来分隔每一行中的值,并添加一个换行符来分隔每一行。
相关问题
创建表格用于显示第一个工作表 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") 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 = [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 = [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) # 设置文本框大小一致 self.material_name1.config(width=20) self.material_qty.config(width=20)將顯示在文本框中數據用邊框綫框起來的修改後的完整代碼
以下是将文本框中的数据用边框线框起来的修改后的完整代码:
``` python
# 创建表格用于显示第一个工作表
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")
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 = [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)
# 为 material_name1 和 material_qty 的文本框添加边框线
self.material_name1.config(highlightthickness=1, highlightbackground="black")
self.material_qty.config(highlightthickness=1, highlightbackground="black")
# 创建表格用于显示第二个工作表
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 = [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)
# 设置文本框大小一致
self.material_name1.config(width=20)
self.material_qty.config(width=20)
```
请注意,为了添加边框线,需要在创建文本框后使用 `config` 方法,并设置 `highlightthickness` 和 `highlightbackground` 属性。
def show_excel(self): 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 = [cell.value 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 = [cell.value 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) 報這個問題怎麽改善AttributeError: 'int' object has no attribute 'value'修改為字符串,怎麽修改,完整的修改后的代碼
可以将以下代码:
```
row_values = [cell.value if cell is not None else "" for cell in row]
```
修改为:
```
row_values = [str(cell) if cell is not None else "" for cell in row]
```
完整的修改后的代码如下:
```
def show_excel(self):
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)
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)