我有一个脚本,它循环遍历 A 列的第 2 行到第 25 行,现在我想写一些与每个用户相关的东西(A 列信息)并将其显示在 B 列上。这一切都通过 openpyxl
import openpyxl
wb_obj = openpyxl.load_workbook(path)
sheet_obj = wb_obj.active
for col in sheet_obj.iter_cols(min_row=2, max_col=1, max_row=25):
for cell in col:
print(cell.value)
for test in sheet_obj.iter_cols(min_row=2, max_col=2, max_row=25):
for cel in col:
sheet_obj[cel] = int(input())
起初我尝试使用这个 for 循环两次来跟踪但是这不起作用。它询问第一个输入但是它无法在 sheet_obj[cel] 语句中工作
有人知道如何让它工作吗?
不确定我是否理解问题,但这里有一些提示:
如果您不需要以任何方式设置数据样式,我建议您使用 pandas。像下面的例子 -
import pandas as pd
df = pd.read_excel(...)
# Create your column 'B' here...
df.to_excel(...)
如果您真的需要坚持使用 openpyxl,我会尝试以另一种方式遍历您的工作表。类似于下面的示例 -
for row in range(2, 25):
for col in range(2, 25):
cell = sheet_obj.cell(
row=row, column=col
)
cell.value = int(input())
这就是我在基于 openpyxl 的lib 上所做的。
抱歉没有完全回答。我试图只添加评论,但我没有足够的声誉。
我在这里解决了我的问题是我使用的代码 第一个问题是它需要一个字符串,所以我使用了 str 命令 然后我的问题是单元格提供信息的方式,所以我尝试使用坐标子命令获取正确的信息,这样我就会收到“B4”而不是单元格工作表 B4
代码:
for row in range (2,25):
for col in range(2,3):
cell = sheet_obj.cell(
row=row, column=col
)
name = sheet_obj.cell(row = row, column =1)
sheet_obj[str(cell.coordinate)] = int(input())
我希望这对可能遇到同样问题的人有所帮助。特别感谢 Eric Mendes 帮助我走上正轨