リストデータを既存のエクセルファイルに書き込みしたいんだけど、
やり方がわからない…。
なるほど…。
では今回は、「openpyxlでリストをセルに書き込みする方法」を
できるだけわかりやすく解説いたします。
一次元配列(リスト)をopenpyxlでセルに書き込みする方法
まずは簡単な一次元配列(リスト)を書き込みする例を見ていきましょう。
「append()」を使って書き込みをします。
ひとまず全コードと実行結果をお見せします。
解説は後ほど行います。
全コード
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
list = ['あ', 'い', 'う']
ws.append(list)
wb.save('output.xlsx')
ws.append(list)
実行結果
事前準備
- openpyxlのインストール
既存のエクセルファイルを編集するには「openpyxl」のインストールが必要です。
openpyxlのインストール方法
openpyxlを初めて使用する場合は、下記コードを入力・実行して、インストールしてください。
pip install openpyxl
※openpyxlを使用したことがある場合は、このインストール作業は不要です。
インストールに関する詳細や、インストールができなかった場合の対処法は下記記事で解説しております。
また、既存ファイルを開いて保存する方法など、基本解説も行っておりますのでご参考ください。
解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
リスト(配列)については下記記事をご参考ください。
リストを書き込み
ws.append(list)
上記一文にて、リスト(配列)データをエクセルファイルに書き込みすることができます。
ワークシートが入った変数に続けて「.append()」を書きます。
()内に「リストデータが入った変数」を書いて完了です。
<テンプレ>
【 ワークシート.append(リストデータ) 】
もう一度、実行結果を見てみましょう。
リストの要素1つ1つが各セルに入っていることがわかります。
一次元配列は、A1・B1・C1というように1行に書き込まれます。
1列に書き込みたい場合は少し工夫が必要です。
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
list = ['あ', 'い', 'う']
for i, value in enumerate(list, start=1):
ws.cell(row=i, column=1, value=value)
wb.save('output.xlsx')
上記コードにて、一次元配列を1列に書き込むことができます。
少し複雑ですので、今回は解説を割愛させていただきます。
二次元配列(リスト)をopenpyxlでセルに書き込みする方法
二次元配列をエクセルファイルに書き込みするにはfor文を使う必要があります。
for文については、下記記事をご参考ください。
import openpyxl
wb = openpyxl.load_workbook('input.xlsx')
ws = wb['Sheet1']
list = [
['あ', 'い', 'う'],
['か', 'き', 'く'],
['さ', 'し', 'す']
]
for row in list:
ws.append(row)
wb.save('output.xlsx')
基本的には前項で解説した方法にfor文を追加しただけです。
for row in list:
ws.append(row)
13行目は前項と同じで、一次元配列を1行に書き込む方法です「あ、い、う」
「あ、い、う」の次に「か、き、く」を書き込む必要があります。
2番目のリストである「か、き、く」にバトンタッチするために、for文でリストを順次進めています。
「あ、い、う」が書き込み終わったら、「row」には「か、き、く」が入り、エクセルに書き込まれます。
次の「さ、し、す」も同様です。
全てのリストが書き込まれると、プログラムは終了となります。
うまく動作しない場合の対処法
エラーが出る
No such file or directory: ○○
これは、読み込むファイルやフォルダが見つからないというエラーです。
読み込むファイルのファイル名と構文のファイル名が一致しているか確認しましょう。
詳しい解説は、下記記事をご参考ください。
Permission denied: ○○
操作しようとしているファイルにアクセスできないというエラーです。
「ファイルを開いている状態なので編集できない」と言っていることが多いので、開いていれば閉じて再度トライしましょう。
詳しい解説は、下記記事をご参考ください。
Worksheet ○○ does not exist
「指定したシートがありません」というエラーです。
指定のシート名が間違っていないか、「sheet1」など先頭が小文字になっていないか確認しましょう。
詳しい解説は、下記記事をご参考ください。
○○ is not defined
今まで出てきていない変数などを処理しようとした時に出るエラーです。
変数名などが間違っていないかチェックしましょう。
詳しい解説は、下記記事をご参考ください。
その他のエラー
その他のエラーが出た場合は、エラー文をコピーしてNETで検索してみましょう。
最後に
openpyxlでリストデータをセルに書き込みする方法を解説いたしました。
当ブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
挫折せずにPythonを独学で学習する方法は特におすすめです。
最後までお読みいただき、ありがとうございました。がんばってください!