我在使用Python 2.7创建的Excel文件(.xlsx)上有一张表:
在第一列上,您可以查看被检查的个体(几何形状)(分别为' 3001 ',' 3002 '和' 3003 ')。所有几何都有一个沿几何演化的 RelativeThickness 律,一个 MaxThickness 律和一个最大厚度的位置律。如果不遵守某些法律的标准,则有一些标准(此处未显示)说“ OK ”或“ N.OK ”(不是OK)。
例如:实际上,沿几何形状演化的定律是曲线。如果我对“ MaxThickness ”定律设置“ 仅允许曲线上有1个最大值”的准则,并将此准则应用于我的3个人,则将“ <对于 3001 和 3002 的em> OK '和 3003 的' N.OK '(+颜色为红色或绿色),因为 3001 和 3002 沿曲线只有1个最大值,而 3003 有2个最大值。 “ 总计”列中汇总了所有条件对所有法律的总体影响。
我想遍历每一行,并检查何时有“ N.OK ”。如果出现“ N.OK ”,我希望Python的代码向我返回相关标头(例如: Python对于 3001不会返回任何内容< / em>和 3002 ,但对于 3003 ,它将返回“ MaxThickness ”,“ MaxThicknessPosition ”和“ < em> TOTAL “)。
就是这样(但我不知道如何访问标题并返回其字符串值):
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文件上的活动工作表(wb = Workbook()和sheet1 = wb.active)。
重要提示::我必须继续使用Python 2.7,并且不能使用熊猫(我不能使用cmd窗口来使用conda,anaconda,miniconda,pip等,因为我可以(没有管理员权限),我已经尝试手动下载并安装它,但是其中压缩的C文件存在问题。我找到了that,但不确定自己是如何工作的。
如果可能的话,我也想“忽略”“ TOTAL”列。我需要打印或存储为什么拒绝某个人(基于不遵守的法律)才能说出“ 3003由于MaxThickness和MaxThicknessPosition 而被拒绝”,但我没有想要打印或存储“不尊重TOTAL”。
非常感谢您能帮助我!
答案 0 :(得分:1)
您只需要创建一些内容来查找标题即可。
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。