AttributeError: 'bool' object has no attribute 'append'
时间: 2023-10-03 10:08:38 浏览: 136
这个错误是因为你试图在布尔值上调用 `append` 方法,但是布尔值是不可变的,没有这个方法。`append` 方法是用于列表(list)类型的对象。
如果你想在一个列表中添加一个布尔值,你可以先创建一个空的列表,然后使用 `append` 方法将布尔值添加到列表中。示例如下:
```python
my_list = []
my_list.append(True)
```
或者,如果你想创建一个只包含布尔值的列表,你可以使用列表的字面量表示法:
```python
my_list = [True]
```
请确保你正确地使用了 `append` 方法并且在调用之前已经创建了一个列表对象。如果问题仍然存在,请提供相关的代码以便我能够更好地帮助你。
相关问题
AttributeError: 'int' object has no attribute 'data_type'報這個
抱歉,我之前的回答有误,cell 对象没有 data_type 属性。您可以使用 openpyxl 库中的 is_date_format 方法来判断单元格是否为日期格式,如果是则将日期格式转换为字符串。以下是修改后的代码:
```python
import openpyxl.utils.cell as cell_utils
for row in self.record_sheet.iter_rows(min_row=2, values_only=True):
row_values = []
for cell in row:
if cell is not None:
if cell_utils.is_date_format(cell.number_format): # 判断单元格是否为日期格式
cell_value = cell.value.strftime('%Y-%m-%d %H:%M:%S') # 将日期格式转换为字符串
elif cell.data_type == 'f': # 判断单元格是否为公式
cell_value = cell.value # 获取公式
cell_value = self.record_sheet[cell.coordinate].value # 获取公式计算结果
else:
cell_value = str(cell)
else:
cell_value = ""
row_values.append(cell_value)
if all(not bool(cell) for cell in row_values):
continue
treeview1.insert("", tk.END, values=row_values)
```
同样的,您也可以将相同的代码添加到第二个工作表的 for 循环中。
if cell is not None and cell.data_type == 'f': AttributeError: 'int' object has no attribute 'data_type'
非常抱歉,我的回答有误。在openpyxl中,单元格对象的属性不是`data_type`,而是`data_type`。所以代码应该修改为:
```
# 显示第一个工作表的内容
for row in self.record_sheet.iter_rows(min_row=2, values_only=True):
row_values = []
for cell in row:
if cell is not None and cell.data_type == 'f':
row_values.append(cell.value)
else:
row_values.append(cell if cell is not None else "")
if all(not bool(cell) for cell in row_values):
continue
treeview1.insert("", tk.END, values=row_values)
```
这样,就可以避免将公式显示在表格中了。