辞書のリストをopenpyxlでxlsxに書き込むpythonコードを作ったので備忘録として残します。
1 2 3 |
write_data_list = [{'商品ID':'aaaa1','商品名':'bbbb1','価格':'cccc1'},\ {'商品ID':'aaaa2','商品名':'bbbb2','価格':'cccc2'},\ {'商品ID':'aaaa3','商品名':'bbbb3','価格':'cccc3'} |
このような辞書型のリストデータを持っていたとして
これをopenpyxlを使ってエクセルファイルにエクスポートする関数はこちらになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import openpyxl #xlsx形式で変換エクスポートする def xlsx_export(write_data_list): #エクセルファイルを新規作成 wb = openpyxl.Workbook() #シートを選択 sheet = wb['Sheet'] #ヘッダーの書き込み header_list = ['商品ID','商品名','価格'] x = 65 for i in header_list: sheet[chr(x) + str(1) ] = i x += 1 #エクセルの2行目から書き込み k = 2 for j in write_data_list: #セルに書き込み sheet['A' + str(k) ] = j['商品ID'] sheet['B' + str(k) ] = j['商品名'] sheet['C' + str(k) ] = j['価格'] k += 1 #Excelファイルの保存 wb.save('test.xlsx') |
これを実行すると表のようになります。
商品ID | 商品名 | 価格 |
aaaa1 | bbbb1 | cccc1 |
aaaa2 | bbbb2 | cccc2 |
aaaa3 | bbbb3 | cccc3 |
ちなみに
1 2 3 4 5 6 7 |
#ヘッダーの書き込み header_list = ['商品ID','商品名','価格'] x = 65 for i in header_list: sheet[chr(x) + str(1) ] = i x += 1 |
の部分のx=65というのは
1 2 3 |
x=65 print(chr(x)) #A |
になり大文字アルファベット順の指定をしています。