# 显示第一个表格的内容 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 table.insert("", tk.END, values=row_values)修改這段代碼將第2列重小到大排列,并將顯示的數據小於10的數據整行標紅
时间: 2024-03-27 22:37:41 浏览: 123
可以按照以下方式修改代码实现要求:
1. 导入 operator 模块,以便使用 itemgetter 函数。
```python
import operator
```
2. 修改 iter_rows() 函数参数,按照第二列的值进行排序。
```python
for row in self.record_sheet.iter_rows(min_row=2, values_only=True, key=operator.itemgetter(1)):
```
3. 添加一个 if 语句判断当前行的所有值是否都小于 10,如果是,则将整行的字体颜色设为红色。
```python
if all(cell < 10 for cell in row_values):
table.insert("", tk.END, values=row_values, tags=("red",))
else:
table.insert("", tk.END, values=row_values)
```
4. 在创建表格的时候,添加一个 tag,用于设置红色字体。
```python
table.tag_configure("red", foreground="red")
```
完整代码如下:
```python
import operator
# 显示第一个表格的内容
for row in self.record_sheet.iter_rows(min_row=2, values_only=True, key=operator.itemgetter(1)):
row_values = [str(cell) if cell is not None else "" for cell in row]
if all(cell < 10 for cell in row_values):
table.insert("", tk.END, values=row_values, tags=("red",))
else:
table.insert("", tk.END, values=row_values)
table.tag_configure("red", foreground="red")
```
阅读全文