2016-08-26 15 views
0

セルをExcelに適用する(デフォルトのフォントとセルを変更する)。私は、セル1つずつ属性を設定することができます Openpyxl - スタイルを変数として作成

from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font, Color 

ws1.cell(row=1,column=1).font=Font(color=colors.WHITE,size=9) 
ws1.cell(row=1,column=1).fill=PatternFill(fill_type="solid", start_color='0000FF', end_color='0000FF') 
...and so on 

は、テンプレートのスタイルを作成することによって、これを行うためのより効率的な方法がありますので、私は唯一の

ws1.cell(row=1,column=1).style=TemplateStyle 
+0

これはopenpyxlバージョン2.4で可能です –

+0

偶然、http://openpyxl.readthedocs.io/en/latest/styles.htmlの 'Styling Merged Cells'セクションをご覧ください。少なくとも個々のセルをスタイリングする代わりになると思われます。 – BenWS

+0

@BenWS私はその部分をチェックしましたが、私は個々の属性のスタイリングに関する部分しか持っていませんでした。セルをループする方法はわかっていますが、可能であれば、属性テンプレートや変数だけでなく、スタイルテンプレートを作成することで、コードをより効率的にしようとしています。私はそのページで何かを見逃しましたか? –

答えて

0

たぶん「という名前のスタイルのようなものを書くことができます'はオプションです。私はこれが@Charlie Clarkが話していたものだと思います。あなたは、限られた説明を見つけることができます。openpyxl 2.4.0 documentation

これは次のようになります。

from openpyxl.styles import NamedStyle, Font, PatternFill 

template_style = NamedStyle(name="template_style") 
template_style.font = Font(color=colors.WHITE,size=9) 
template_style.fill = PatternFill(fill_type="solid", start_color='0000FF', end_color='0000FF') 

ws1.cell(row=1, column=1).style = template_style 

私はNamedStyleの括弧内の名前を参照するかどうかはわかりませんが、私はそれはそれが関連付けられている変数と同じである必要はないことを知っています。ドキュメントは変数と名前の両方を大括弧で囲んで使用しているので、同じように選択します。

関連する問題