openpyxlを学び始めました。私は、最大値を見つける方法、セルの太字を太字にする、数式を適用する方法などを学んだ。今、問題に直面している。私は10枚のワークシートを含むファイルを持っています。これらの10枚のシートでは、まず4枚を取り出す必要があります。次に、各列で最大値を見つけて太字にしなければなりません。私はコードを書いたが、完全には動作しません。時には正しく動作することもあれば、正しく動作しないこともあります。Excelシートの列の最大値を見つけて太字にして強調表示します - openpyxl
Here is the Linkと入力と出力ファイルをサンプリングします。ここで
は、コードは次のとおりです。
import os
from openpyxl.formatting import Rule
from openpyxl.styles import Font, PatternFill, Border
from openpyxl.styles.differential import DifferentialStyle
import shutil
shutil.copy('../test.xlsx', 'test.xlsx')
def bold_max_columnValue(file):
wb = load_workbook(file)
for ws in wb.worksheets:
if ws.title in ['Accuracy', 'Precision', 'Recall', 'F1-Measure']:
dxf = DifferentialStyle(font=Font(bold=True))
range_cell = 'C5:C10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
range_cell = 'D5:D10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
range_cell = 'E5:E10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
range_cell = 'F5:F10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
range_cell = 'G5:G10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
range_cell = 'H5:H10'
rule = Rule(type='cellIs', dxf=dxf, formula=["=MAX("+ range_cell +")"])
ws.conditional_formatting.add(range_cell, rule)
wb.save('output-test.xlsx')
def iterate_files():
for file in os.listdir('.'):
stop = file.split('.')
if stop[-1] in ['xlsx']:
print(file)
bold_max_columnValue(file)
iterate_files()
print('Script Completed')
私はopenpyxlドキュメントを検討してきたが、それは私を助けていませんでした。
ありがとうございました。
何が機能しないかについての詳細情報を提供する必要があります。条件付き書式を使用しているので、ルールの評価はExcelで処理されます。しかし、多くの繰り返しステップがあるコードを単純化することから始めることができます。 –
2つの問題があります。 1.常にテーブルの最後の行を選択し太字で表示します。 2.複数の値を選択することがあります。 3.正しく動作しない場合があります(奇妙なこと) 入出力ファイル(https://drive.google.com/open?id=0BwBntjDiENh5X2VPTmlibHNoeVk)のスナップショットの[リンク]は ですコードの動作がやや受け入れられるようになると、後で繰り返すステップ) ありがとう@CharlieClark – Irfanullah