とても変わったものに出会いました。Excelワークシートのセルを単色で塗りつぶそうとすると、隣接するセルが塗りつぶされ、時には数十個も塗りつぶされます。コードの他の場所でまったく同じことを成功させているのは奇妙です。異なるのはこの場所だけです。何が間違っている可能性があるのか についてのアイデアが徐々になくなってきており、ここの誰かが同様の問題を抱えて解決したのではないかと考えました。私の関連コードは次のとおりです。
__incorrectUnitsColour__='FF33CC'
cell, sheet =GetCellFromDest(str(named_range.destinations),wb) # Returns the cell pointed to by the named_range, this should work fine as I use it a lot in other places.
cell.style.fill.fill_type=openpyxl.style.Fill.FILL_SOLID
cell.style.fill.start_color.index=__incorrectUnitsColour__
何が間違っている可能性があるかについて何か考えがある場合は、喜んで聞いてください。正しい方向に考えさせるためだけに働く必要さえありません;)
上記のコードに次を追加しました。
print cell.row
print cell.column
期待どおり、 を返します2 G
。また、数回実行するごとに、セルが強調表示される範囲が増加することも確認しました。openpyxl
同じ範囲を使用して同じワークシート内の他のセルを強調表示すると、これよりもさらに独特です。
ワークシートの設定に何か問題があると強く感じていますが、何が原因かわかりません。また、このエラーは、同じワークシート内の複数のセルをプログラムで強調表示しようとした場合にのみ表示されます。
異なるワークシート内のセルの強調表示がさらに奇妙になる原因は、最終的に同じ範囲のセルが強調表示されることです。
フォローアップの質問:openpyxl
ワークシート/ワークブックのデータはキャッシュされますか? これはそのような行動を説明するからです。