import openpyxl # 打开 Excel 文件 data = openpyxl.load_workbook('cal.xlsx') rtable wtable.append([str(cell.value) if cell.value is not None else '' for cell in row]) AttributeError: 'str' object has no attribute 'append' = data.active # 创建新的 Excel 文件 wbook = openpyxl.Workbook() wtable = wbook.active.title = 'sheet1' count = 0 keyword = "叛徒" # 遍历每一行数据 for row in rtable.iter_rows(min_row=1, max_col=65, max_row=rtable.max_row): # 检查是否包含关键字 if any(keyword in str(cell.value) for cell in row): # 检查是否是空行 if all(cell.value == None for cell in row): continue # 复制该行数据到新的表格中 wtable.append([str(cell.value) if cell.value is not None else '' for cell in row]) count += 1 print(count) # 保存新表格 wbook.save('clh.xlsx')
时间: 2024-02-19 14:02:33 浏览: 40
这段代码的问题在于在创建新的 Excel 文件后,将它的标题(title)赋值给了一个字符串变量,而不是工作表对象。因此,在后续的代码中,将该字符串变量传递给了“append”方法,导致了这个错误。你可以将代码修改为以下形式:
```
# 创建新的 Excel 文件
wbook = openpyxl.Workbook()
wtable = wbook.active
wtable.title = 'sheet1'
count = 0
keyword = "叛徒"
# 遍历每一行数据
for row in rtable.iter_rows(min_row=1, max_col=65, max_row=rtable.max_row):
# 检查是否包含关键字
if any(keyword in str(cell.value) for cell in row):
# 检查是否是空行
if all(cell.value == None for cell in row):
continue
# 复制该行数据到新的表格中
wtable.append([str(cell.value) if cell.value is not None else '' for cell in row])
count += 1
print(count)
# 保存新表格
wbook.save('clh.xlsx')
```
这样修改后,应该就可以正常运行了。
相关问题
python修正以下代码:import openpyxl # 打开Excel文件 wb = openpyxl.load_workbook('D:\CNEUN\6、项目\11、电力物资\广西物资\会议讨论资料\5.31会议沟通\会后复盘\名称字段.xlsx') ws = wb.active
在Python中,`\` 被认为是转义字符,如果在字符串中使用 `\`,需要注意转义字符的使用。在Windows系统中,路径中的 `\` 也需要使用转义字符。
正确的代码如下:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('D:\\CNEUN\\6、项目\\11、电力物资\\广西物资\\会议讨论资料\\5.31会议沟通\\会后复盘\\名称字段.xlsx')
ws = wb.active
```
或者可以使用 `/` 代替 `\`,这样就不需要使用转义字符了:
```python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('D:/CNEUN/6、项目/11、电力物资/广西物资/会议讨论资料/5.31会议沟通/会后复盘/名称字段.xlsx')
ws = wb.active
```
这里使用了双反斜杠 `\\` 或正斜杠 `/` 来代替单个反斜杠 `\`,从而避免转义字符的使用。
import openpyxl # 打开Excel文件 workbook = openpyxl.load_workbook('C:\Users/16269\Desktop\综合因子1.xlsx') # 获取第一个工作表 sheet = workbook.active # 遍历所有行和列,并输出每个单元格的值 for row in sheet.iter_rows(values_only=True): for cell in row: print(cell)
这段代码的作用是打开名为“综合因子1.xlsx”的Excel文件,并输出每个单元格的值。但是,代码中有一个反斜杠在文件路径中,需要使用双反斜杠或正斜杠来代替,例如:
```
workbook = openpyxl.load_workbook('C:\\Users\\16269\\Desktop\\综合因子1.xlsx')
```
或者:
```
workbook = openpyxl.load_workbook('C:/Users/16269/Desktop/综合因子1.xlsx')
```
这样就可以正确加载Excel文件了。