過去記事ではPythonでExcelファイルを編集・操作する方法を紹介していきましたが、今回はファイルそのものを新規作成する方法を紹介していきます。
コード自体は単純ですが、どのオブジェクトを扱っているのかを考えながら進めていくと理解が深まるのでオススメです。
新規作成する手順
- ワークブックオブジェクトを作る
- シートオブジェクトのタイトルを変更する
- 変更しない場合は「Sheet」となります。
- 保存先とファイル名を指定して保存
Excelファイルを扱うのでもちろん「openpyxl」モジュールをインポートする必要があります。
次に、ワークブックやワークシートオブジェクトを作成してから保存するという順番です。まずは、オブジェクトを先に作ってしまうところがポイントです。
オブジェクトとはデータの種類・性質とそのデータに対してできる処理をまとめて指す言葉です。数値データは四則計算できますが、文字データはできないですよね。このようにデータを正確に区別する必要があります。
コードの書き方
ファイルを新規作成するだけ
1 2 3 4 5 6 7 8 |
import openpyxl #ワークブックオブジェクトを作成 wb = openpyxl.Workbook() #保存 path = r"C:\Documents\sample.xlsx" wb.save(path) |
プログラム上ではワークブックオブジェクトを作っただけですが、ファイルを確認すると以下のように「Sheet」というワークシートもできています。
シートの名前を変えたいときは以下のように書きます。
シートの名前を変える
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import openpyxl #ワークブックオブジェクトを作成 wb = openpyxl.Workbook() #アクティブなワークシートを取得 ws = wb.active #ワークシートのタイトルを変更 ws.title = 'test1' #保存 path = r"C:\Documents\sample.xlsx" wb.save(path) |
このようにワークシートオブジェクトのtitle属性を変更すれば完了です。
active属性はワークブックで現在開かれているワークシートを返します。今回のように新規作成する場合は、一つのワークシートしかないのでこの方法でシートを取得しています。
その他のもワークシートを取得する方法は以下にまとめています。
PythonでExcel操作をするときには必ずファイル(ワークブック)の読み込みからシートの指定をする必要があります。 今回はそんな基本的な部分のコードの書き方を3ステップで紹介していきます。 1:openpyxlモジュールの[…]
もし、複数のワークシートを作成してそのタイトルを連番にしたい場合(例えば「test1~test5」など)は次のようにfor文と組み合わせるとできます。
シートを複数作成する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import openpyxl #ワークブックオブジェクトを作成 wb = openpyxl.Workbook() #先頭のシートの名前を変更 ws = wb.active ws.title = 'test1' #test2~5を作成 for i in range(2 ,6): wb.create_sheet(title='test{}'.format(i)) #保存 path = r"C:\Documents\sample.xlsx" wb.save(path) |
ワークブックオブジェクトを作成した段階では「Sheet」というタイトルのワークシートしか作成されていません。
なので以下の手順でコードを書いています。
- 7,8行目:「Sheet」のタイトルを「test1」に変更
- 11,12行目:test2~3をfor文で作成
- タイトルに番号をつけるためにフォーマットを使っています。
formatメソッドとfor文の使い方は以下にまとめています。
Pythonの文字列で値を変えたいときに使えるのが書式化のformatメソッドです。文字列の指定した位置に値を代入できます。 for文でループさせるときなどにも使える方法なので知っておくととっても便利です。 書式化とは? […]
Pythonのループ処理に使われる構文にはfor文とwhile文があります。今回はそのfor文の使い方解説をしていきます。 for文とは for文はループ処理を行う構文です。Pythonで書く場合はコロン(:)とインデントに注[…]
まとめ
ワークブックオブジェクトを作ってから保存するという手順でExcelファイルを新規作成することができます。
必要に応じてfor文やformatメソッドと組み合わせることができるのも面白いポイントですね。
プログラミング言語のなかでも人気の高いPythonを学習する教材を紹介します。 最近ではプログラミングスククールがたくさんあるので迷うと思います。 ですが、まずは無料教材から始めてみましょう。苦労した分だけ力がつきます。 […]