
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。
Pythonとエクセルの組み合わせは操作を自動化することによって毎日の作業を一瞬で終わらせることも可能です。業務効率化に直結するからこそ取り組み甲斐もあります!!今回の記事では「csvファイルに入力されているデータをエクセルへ転記する方法」を解説したいと思います。
使用するのはopenpyxl
今回使用するのは、エクセルファイルを読み書きできるPythonライブラリ「openpyxl」です。
openpyxlのなかのDataframe_to_rowという関数(データを1行ずつ取得できる関数)を使用します。
ここではopenpyxlがインストールされているのを前提として書き進めていきます。
- openpyxlはエクセルを扱うことができるライブラリです。
- Dataframe_to_row関数でデータを1行ずつ取得します。
- PandasやNumpyで使用可能です。
サンプルコード
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
wb=Workbook()
ws=wb.active
df=pd.read_csv('fruits.csv',encoding='shift_jis')
for row in dataframe_to_rows(df,index=None,header=None):
ws.append(row)
wb.save('果物の価格.xlsx')
コメント
- Pythonファイルと同じフォルダに「fruits.csv」を保存しておく
- 7行目 df=pd〜 でcsvファイル「fruits.csv」を読み込む
- 8行目 for row in dataframe〜 でcsvファイルの中身を1行ずつ取得する
- 9行目 ws.append(row)で取得した値をwsへ書き込み
- 10行目 wb.save〜でエクセルファイルとして保存する
出力
元ファイル:「fruits.csv」ファイルの中身です。
プログラムを実行すると、このようなエクセルファイルが作成されました。
「header=None」を「header=True」に書き換えるとこうなります。A1に「果物」、B1に「価格」が入力されています。
注記
うまくいかないときは「encoding=’shift_jis’」を「encoding=’utf-8’」などへ変えると良いかもしれません。macかwindowsかで変わります。
続きはこちら
csvファイルの特定の列をエクセルへ転記する方法 Dataframe_to_row / openpyxl / Python