使用row = row[1].row报错 ‘int’ object has no attribute 'row'
时间: 2023-07-30 21:10:50 浏览: 450
抱歉,之前的代码有误。`row[1]`是一个`Cell`对象,需要使用`row[1].row`属性来获取该单元格所在的行数。下面是修改后的代码:
```python
target_value = 'target value' # 指定的值
row_number = None # 初始化行数为None
for row in ws.iter_rows(min_row=2, max_col=2, max_row=ws.max_row):
if row[1].value == target_value:
row_number = row[1].row
break
if row_number:
print(f"The row number of '{target_value}' is: {row_number}")
else:
print(f"'{target_value}' not found in column B.")
```
其中,`row[1].row`用于获取该单元格所在的行数,`row[1].value`用于获取该单元格的值。
相关问题
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'修改為字符串,怎麽修改
你需要将整数转换为字符串,可以使用 `str()` 函数来实现。在使用 `.value` 时,使用 `str()` 函数将整数转换为字符串。例如,将 `row_values` 列表中的整数转换为字符串的代码如下所示:
```
row_values = [str(cell.value) if isinstance(cell.value, int) else cell.value if cell is not None else "" for cell in row]
```
这将首先检查单元格的值是否为整数,如果是,则将其转换为字符串。如果单元格的值为 `None`,则将其转换为空字符串。如果单元格的值不是整数,则将其保留为原始类型。
'str' object has no attribute 'row' 报错:'str' object has no attribute 'row'
这个错误是因为你将一个字符串对象(str)当作了一个具有"row"属性的对象来使用。字符串对象本身没有"row"属性,所以会报错。
为了解决这个问题,你需要确保你使用的对象是一个具有"row"属性的对象,例如一个DataFrame对象。如果你正在使用Pandas库的DataFrame,你可以通过以下方法来创建一个DataFrame对象并使用它的"row"属性:
```python
import pandas as pd
# 创建一个包含多个行的字典
data = {'row1': [1, 2, 3],
'row2': [4, 5, 6],
'row3': [7, 8, 9]}
# 将字典转换为DataFrame对象
df = pd.DataFrame(data)
# 使用DataFrame对象的"row"属性
print(df.row) # 输出:0 1\n1 2\n2 3\nName: row, dtype: int64
```
请注意,这只是一个示例,你需要根据你的实际情况来创建和使用DataFrame对象。
阅读全文
相关推荐
















