访问 Excel 单元格的 header string-value
Accessing header string-value of an Excel cell
我在使用 Python 2.7 创建的 Excel 文件 (.xlsx) 上有一个 table:
在第一列可以看到勾选的个体(几何体)(分别是'3001','3002'和“3003”)。所有几何体都有一个 RelativeThickness 定律,一个 MaxThickness 定律和一个 最大厚度位置 定律,不断发展沿着几何。如果一个条件某些法律不受尊重。
例如:沿着几何演化的规律实际上是曲线。如果我在法则“MaxThickness”上设置一个标准“Only allow 1 maximum on the curve”并且我将这个标准应用于我的 3 个人,它是为 3001 和 3002 和 '[= 设置 'OK' 100=]' 对于 3003(+ 着色红色或绿色)因为 3001 和 3002 沿曲线只有 1 个最大值,但 3003 有 2 个最大值。在“TOTAL”列中总结了所有标准对所有定律的全局影响。
我想遍历每一行并检查何时有“N.OK”。如果有“N.OK”,我希望 Python 的代码 return 我 header 相关的(例如: Python 不会 return 我为 3001 和 3002 做任何事情,但对于3003 它将 return 我“MaxThickness”、“MaxThicknessPosition”和“总计")。
应该是这样的(但我不知道如何访问header和return它的字符串值):
for row in sheet1.iter_rows(min_row=1, max_col=6, max_row=4):
for cell in row:
if cell.value == 'N.OK':
header = cell.header
"sheet1" 是我在 Excel 文件上的活动 sheet(wb=Workbook() 和 sheet1=wb.active)。
重要提示: 我必须留在 Python 2.7 并且我不能使用 pandas(我不能使用 cmd window 使用 conda,anaconda,miniconda,pip,...因为我没有管理员权限)并且我已经尝试手动下载和安装它但是我对其中压缩的 C 文件有问题。我找到了 that,但我不确定我是否理解它是如何工作的。
如果可以的话,我也想"ignore" "TOTAL" 专栏。我需要打印或存储个人被拒绝的原因(基于不遵守的法律)才能说“3003 由于 MaxThickness 和 MaxThicknessPosition 而被拒绝”但是我不想打印或存储 "TOTAL is not respected".
非常感谢你能帮我解决这个问题!
您只需要创建一些东西来查找 headers。
headers = dict((c.column, c.value for c in ws[1]))
for row in ws.iter_rows((min_row=1, max_col=6, max_row=4):
for cell in row:
if cell value == "N.OK":
header = headers[column]
不管怎样,我认为来到 Python 的人被迫使用 Python 2.7 是非常愚蠢的。包括 openpyxl 在内的库将很快不再与 Python 2.
一起使用
我在使用 Python 2.7 创建的 Excel 文件 (.xlsx) 上有一个 table:
在第一列可以看到勾选的个体(几何体)(分别是'3001','3002'和“3003”)。所有几何体都有一个 RelativeThickness 定律,一个 MaxThickness 定律和一个 最大厚度位置 定律,不断发展沿着几何。如果一个条件某些法律不受尊重。
例如:沿着几何演化的规律实际上是曲线。如果我在法则“MaxThickness”上设置一个标准“Only allow 1 maximum on the curve”并且我将这个标准应用于我的 3 个人,它是为 3001 和 3002 和 '[= 设置 'OK' 100=]' 对于 3003(+ 着色红色或绿色)因为 3001 和 3002 沿曲线只有 1 个最大值,但 3003 有 2 个最大值。在“TOTAL”列中总结了所有标准对所有定律的全局影响。
我想遍历每一行并检查何时有“N.OK”。如果有“N.OK”,我希望 Python 的代码 return 我 header 相关的(例如: Python 不会 return 我为 3001 和 3002 做任何事情,但对于3003 它将 return 我“MaxThickness”、“MaxThicknessPosition”和“总计")。
应该是这样的(但我不知道如何访问header和return它的字符串值):
for row in sheet1.iter_rows(min_row=1, max_col=6, max_row=4):
for cell in row:
if cell.value == 'N.OK':
header = cell.header
"sheet1" 是我在 Excel 文件上的活动 sheet(wb=Workbook() 和 sheet1=wb.active)。
重要提示: 我必须留在 Python 2.7 并且我不能使用 pandas(我不能使用 cmd window 使用 conda,anaconda,miniconda,pip,...因为我没有管理员权限)并且我已经尝试手动下载和安装它但是我对其中压缩的 C 文件有问题。我找到了 that,但我不确定我是否理解它是如何工作的。
如果可以的话,我也想"ignore" "TOTAL" 专栏。我需要打印或存储个人被拒绝的原因(基于不遵守的法律)才能说“3003 由于 MaxThickness 和 MaxThicknessPosition 而被拒绝”但是我不想打印或存储 "TOTAL is not respected".
非常感谢你能帮我解决这个问题!
您只需要创建一些东西来查找 headers。
headers = dict((c.column, c.value for c in ws[1]))
for row in ws.iter_rows((min_row=1, max_col=6, max_row=4):
for cell in row:
if cell value == "N.OK":
header = headers[column]
不管怎样,我认为来到 Python 的人被迫使用 Python 2.7 是非常愚蠢的。包括 openpyxl 在内的库将很快不再与 Python 2.
一起使用