openpyxlでLibreOffice Calcのシートを作成する
openpyxlを使うと、簡単にシートを追加でき、同時に名前のつけることが出来る
LibreOfficeでシートを追加し、それに名前をつけるのは面倒です。
これが、複数シートを追加し、それに名前をつけるとなると、もっと面倒です。
それをopenpyxlを使うと、簡単にシートを追加でき、同時に名前のつけることが出来ます。
複数のシートを追加し、同時に名前を作るのも簡単に行うことが出来ます。
今回のブログ記事では、openpyxlでLibreOffice Calcのシートを作成する方法をご紹介します。
なお、今回の使用するPythonのファイルですが、create_sheets.pyにしました。
※この記事ではLinux(Xbunstu)で行いましたが、Windows、Macでも同じ作業でopenpyxlでLibreOffice Calcのファイルを作ることが出来ます。
openpyxlでLibreOffice Calcのシートを作成する方法
1. VS Codeでopenpyxlを扱えるようにする
VS Codeでopenpyxlを扱えるようにします。
以下のコードを入力します。
import openpyxl
これは、openpyxlをインポート(取り込む)という意味のコードです。
プログラミングに詳しくない方には意味が分からないと思いますので、これは、VS Codeでopenpyxlを扱えるようにするという意味に捉えてください。
2. シートを新規に追加したいLibreOffice Calcのファイルを読み込む
シートを新規に追加したいLibreOffice Calcのファイルを読み込みます。
以下のコードを入力します。
wb = openpyxl.load_workbook( "シートを新規に追加したいLibreOffice Calcのファイル" )
ここで注意してほしいのは、読み込むLibreOffice Calcのファイル形式はxlsx形式のものでなければならないということです。
通所のLibreOffice Calcのファイル形式はxlsx形式はodf形式なのですが、この形式だと読み込めません。
LibreOffice Calcのファイルをopenpyxlで扱う場合は、保存する際に、ファイル形式をExcel 2007-365(.xlsx)を選んでxlsx形式にして下さい。
今回は例としてsample.xlsxを読み込みたいと思います。
コードは以下のようになります。
wb = openpyxl.load_workbook( "sample.xlsx" )
3. VS Codeにシート名のリストを表示させる
一応、読み込んだLibreOffice CalcのファイルのシートがVS Codeで分かるようにします。
以下のコードを読み込みます。
print( wb.sheetnames )
これでVS Codeで読み込んだLibreOffice CalcのファイルのシートがVS Codeで分かるようになります。
4. シートを追加する
シートを追加するコードを入力します。
以下のコードを入力します。
wb.create_sheet( title="追加するシート名" )
今回は例としてシート2というシートを追加します。
コードは以下になります。
wb.create_sheet( title="シート2" )
5. 追加したシート名を確認する
一応、実際にシート名をつけたシートが、追加されたかをVS Codeで分かるようにします。
以下のコードを入力します。
print( wb.sheetnames )
6. ファイルを上書き保存する
最後にファイルを上書き保存します。
以下のコードを入力します。
wb.save( "シートを新規に追加したいLibreOffice Calcのファイル" )
今回はsample.xlsxというファイルを使用していますので、以下のようにコードを入力します。
wb.save( "sample02.xlsx" )
以下は今まで書いたコードをまとめたものです。
import openpyxl
#シートを新規に追加したいLibreOffice Calcのファイルを読み込む
wb = openpyxl.load_workbook( "sample.xlsx" )
#シート名のリストを表示
print( wb.sheetnames )
#シートを追加する
wb.create_sheet( title="シート2" )
#シート名の確認
print( wb.sheetnames )
#ワークブックを上書き保存
wb.save( "sample.xlsx" )
VS Codeの右上の▷ボタンをクリックします。
sample.xlsx”を開くと、シート2が追加されています。
既存のLibreOffice Calcのファイルに、名前付きのシートを複数追加する方法
1. 既存のLibreOffice Calcのファイルに、名前付きのシートを追加する方法の1〜3までの作業を行う
既存のLibreOffice Calcのファイルに、名前付きのシートを追加する方法の1〜3までの作業を行います。
2. 複数のシートを追加するコードを入力する
複数のシートを追加するコードを入力します。
コードは以下のようになります。
wb.create_sheet( index=順番の数字,title="追加するシート名" )
index=の後に、順番を数字で入力するのですが、ここで注意してほしいことがあります。
Pythonでは、順番は初めは0から始まります。
ですので1,2,3,4,5としたい場合は。0,1,2,3,4となります。
今回はシート2、シート3、シート4、シート5を追加したいと思います。
シート2はシート1の後に追加したいと思います。
シート1は1番目になりますので0です。
ですのでシート2は2番めになるので1となります。
そのような感じで数字を入力するので、シート3は2、シート4は3,シート5は4となります。
コードは以下のように入力します。
wb.create_sheet( index=1,title="シート2" )
wb.create_sheet( index=2,title="シート3" )
wb.create_sheet( index=3,title="シート4" )
wb.create_sheet( index=4,title="シート5" )
3. 既存のLibreOffice Calcのファイルに、名前付きのシートを追加する方法の5、6までの作業を行う
既存のLibreOffice Calcのファイルに、名前付きのシートを追加する方法の5、6までの作業を行います。
なお、以下は今まで書いたコードをまとめたものです。
import openpyxl
#シートを新規に追加したいLibreOffice Calcのファイルを読み込む
wb = openpyxl.load_workbook( "sample.xlsx" )
#シート名のリストを表示
print( wb.sheetnames )
#シートを追加する
wb.create_sheet( index=1,title="シート2" )
wb.create_sheet( index=2,title="シート3" )
wb.create_sheet( index=3,title="シート4" )
wb.create_sheet( index=4,title="シート5" )
#シート名の確認
print( wb.sheetnames )
#ワークブックを上書き保存
wb.save( "sample.xlsx" )
VS Codeの右上の▷ボタンをクリックします。
sample.xlsx”を開くと、シート2が追加されています。