LoginSignup
0
0

More than 3 years have passed since last update.

【xlsxwriter】pandas+xlsxwriterで条件付き書式Excelシート作成【pandas】メモ

Posted at

概要

  • 客先がExcelシートでヒートマップを見たがっていた。
  • openpyxlだと、実装できなかった。(やり方が悪かった?)
  • xlsxwriterをpandasのto_excelのengineとして使用
  • 条件付き書式設定をxlsxwriterで行う
  • セル指定は、xl_rangeを用いる。(セルを数値で指定)

ソースコード

全体
# xl_rangeを使えば、"B2:C3"をxl_range(2,2,3,3)と表現できる。
from xlsxwriter.utility import xl_range
import xlsxwriter
import pandas as pd
import numpy as np

# test用データフレーム
df = pd.DataFrame(np.arange(0,9,1).reshape(3,3))

# workbook生成
workbook = xlsxwriter.Workbook(r'./output_storage/hoge.xlsx')
# xlsxwriterでは、mode='a'は使えない。
writer = pd.ExcelWriter(r'./output_storage/hoge.xlsx',mode='w',engine='xlsxwriter')
sheet_name = 'hoge'

# データフレームをシートに書き込む
df.to_excel(writer,sheet_name=sheet_name,startrow=0,index_label='huga')

# 条件付き書式の設定
ws = writer.sheets[sheet_name]
ws.conditional_format(xl_range(2,2,3,3),
                {'type': '3_color_scale',
                       'min_color': "#44c242",
                       'mid_color': "#ebeb44",
                       'max_color': "#eb4444"})
writer.close()
  • こんな感じで、エクセルに条件付き書式設定を行うことができる。
    image.png

まとめ

  • Excelでほしがるお客さんがまだまだ多いため、勉強する必要があるかもしれない。
  • pandasとの親和性もよく、比較的柔軟に対応できそうだった。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0