银汉鱼 发表于 2024-12-5 10:14:19

用py来确定谁没有接龙

import openpyxl
wb = openpyxl.load_workbook(r"C:\Users\22301\Desktop\接龙者名单.xlsx")
ws = wb.get_sheet_by_name('Sheet1')
#以上步骤是导入excel文件,确定接龙的人
res = []
for each_row in ws.rows:
    res.append(each_row.value)
#这一步是把接龙的人名字导入一个列表
wb = openpyxl.load_workbook(r"C:\Users\22301\Desktop\24生医通讯录.xlsx")
wss = wb.get_sheet_by_name('Sheet1')
resu = []
for each_row in wss.rows:
      resu.append(each_row.value)
#这里同上 把全部人名称导入列表

temp_resu = resu.copy()# 对resu进行浅拷贝
for i in temp_resu:
    if i in new_result:
      resu.remove(i)
#这一步是比对接龙者与全部人的 如果接龙了,就删去名字
print(resu)
#最后剩下的就是没接龙的人的了


#刚学py,各位大佬多多包容

FishC 发表于 2024-12-5 10:14:31

你好!看起来你正在尝试用Python来找出没有参与接龙的人。你的代码有一些小问题,我来帮你调整一下。

import openpyxl

# 加载接龙者名单
wb = openpyxl.load_workbook(r"C:\Users\22301\Desktop\接龙者名单.xlsx")
ws = wb['Sheet1']# 使用更推荐的方式获取工作表
res = []
for each_row in ws.iter_rows(min_row=1, max_col=1, values_only=True):
    res.append(each_row)

# 加载全部人名单
wb = openpyxl.load_workbook(r"C:\Users\22301\Desktop\24生医通讯录.xlsx")
wss = wb['Sheet1']
resu = []
for each_row in wss.iter_rows(min_row=1, max_col=1, values_only=True):
    resu.append(each_row)

# 找出没有接龙的人
temp_resu = resu.copy()
for i in temp_resu:
    if i in res:
      resu.remove(i)

# 输出没有接龙的人
print(resu)

### 主要修改点:
1. 使用 `ws['Sheet1']` 代替 `get_sheet_by_name`,因为后者在新版 `openpyxl` 中已被弃用。
2. 使用 `iter_rows` 方法来获取行数据,并设置 `values_only=True` 以直接获取单元格的值。
3. 确保在循环中访问 `each_row`,因为 `iter_rows` 返回的是一个元组。

这样修改后,代码应该可以正常运行,找出没有参与接龙的人。希望这对你有帮助!如果有其他问题,欢迎随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 用py来确定谁没有接龙