【Python x エクセル】 計算結果を新しいエクセルファイルに入力する方法

Python備忘録。内容は初心者向けです。

今回の内容

  • CSVファイルを読み込み
  • ドルから円へ変換して新しいエクセルへ入力
  • 入力されたセルを中央揃え



使用するのはopenpyxl

使用するのは、エクセルファイルを読み書きできるPythonライブラリopenpyxlです。

サンプルコード


import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import Alignment

wb=Workbook()
ws=wb.active

df=pd.read_csv('usdoll.csv',encoding='shift_jis')

e_df=df[['USドル']]*105
ws['A1']='円'

for row in dataframe_to_rows(e_df,index=None,header=None):
    ws.append(row)

for row in ws:
    for cell in row:
        cell.alignment = Alignment(horizontal = 'center', 
                                        vertical = 'center',
                                        wrap_text = False)
        
wb.save('doll yen exchange.xlsx')

コメント

  • 「e_df=df[[‘USドル’]]*105」でドルに105を乗じて円に変換
  • 「ws[‘A1’]=‘円’」でA1セルに「円」を入力
  • 「ws_new=wb〜」 で新しいシートを「ws_new」へ代入
  • 「ws_new[‘A1’]〜」 で新しいシートのA1セルに文字列を入力
  • 「for row in ws:〜」でセルを中央揃え

「ws_new[‘A1’]〜」でA1セルに「円」という文字列をいれてますが、もうすこしスマートなやり方があるかもしれませんww

出力


「us doll.csv」の中身。ドルが入力されています。


プログラムを実行すると、ドルに105を乗じて円に変換した数値が入力。新しいエクセルファイルが作成されました。A1セルは「円」になっています。