2017-03-08 9 views
0

私は、Excelの特定の列をチェックし、重複する値を赤で強調表示するPythonメソッドを作成しています。彼らは重複した値を持っている理由を確認するために使用します。これはAsset Managementのためのもので、正確なシリアル番号や資産ID番号がないことを確認したいところです。OpenPyXL組み込みの条件付き書式を使用する:重複した固有の値

この時点では、列をチェックして重複値を赤で強調したいだけです。現時点では、このメソッドを起動していますが、重複した値を持つセルは強調表示されません。

(336,565,635,567,474,326,366,756,879,567,453,657,678,324,987,667,567,657,567)数字567が数回繰り返されています。 Excelで

def check_duplicate_values(self,wb): 
    self.wb=wb 
    ws=self.wb.active 
    dxf = DifferentialStyle(fill=self.red_fill()) 
    rule = Rule(type="duplicateValues", dxf=dxf, stopIfTrue=None, formula=['COUNTIF($A$1:$A1,A1)>1']) 
    ws.conditional_formatting.add('Sheet1!$A:$A',rule) #Not sure if I need this 
    self.wb.save('test.xlsx') 

、私はちょうど私が私が正しく自分のビルトインメソッドを使用していますかどうかわからないのですOpenPyXLにしかし、これを達成するために条件付き書式ルールを作成することができます。また、私の数式は間違っていますか?

答えて

0

どの組み込みメソッドを参照していますか? openpyxlはファイル形式ライブラリであるため、Excelワークシートに保存されている条件付き形式を管理することができます。残念なことに、ルールの詳細は仕様からはあまり明確ではないので、リバースエンジニアリングのフォームは一般的には必須ですが、Excelで作成されたルールは、実際に必要とされるルールよりも冗長であることには注意が必要です。

私はopenpyxlメーリングリストにさらなる質問をします。

+0

私は彼らのライブラリを特にopenpyxl.Rule()を使って "重複値"条件付き書式を特定の列に適用していますが、これを達成できません。私は自分の公式に何か問題があるかどうか、あるいはopenpyxl.Rule()を間違って使っているかどうかはわかりませんでした。 OpenPyXLページには、既存のExcelファイルに条件付き書式を適用する方法の例はほとんどありませんでした。 – pjmorin0001

関連する問題