
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。
今回の内容
- CSVファイルを読み込む
- ドルから円へ変換して新しいエクセルへ入力する
- 入力されたセルを中央揃えする
言葉での説明では分かりにくいので、まずは出力を見てみましょう。やっていることは至ってシンプルです。
出力
元ファイルのcsvファイル「us doll.csv」の中身です。A列に”ドル(金額)”が入力されています。
プログラムを実行すると、エクセルファイルが作られ、そのA列には”円”表示になっています。
これは先ほどのcsvファイルの”ドル”を”円”に変換した値です。(ドルに105を乗じて円に変換しています)
要は、タイトルにもある通り、計算結果を新しいエクセルファイルとして保存するというものです。
使用するのは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')
コメント
- 11行目 「e_df=df[[‘USドル’]]*105」でドルに105を乗じて円に変換
- 12行目 「ws[‘A1’]=‘円’」でA1セルに「円」を入力
- 14行目 「for row in dataframe_to_rows〜」で1行ずつ値を取得する
- 17行目 「for row in ws:〜」でセルを中央揃えする