PythonでExcelファイルを操作する方法!OpenPyXLモジュールの使い方まとめ

PythonのOpenPyXLモジュールを使用することで、Excelファイルの自動化処理を実現できます。

本記事では、OpenPyXLモジュールを使ったExcelファイルの操作方法について詳しく解説します。

OpenPyXLモジュールを使用して、Excelファイルを操作する方法を知りたいです。

OpenPyXLモジュールを使用することで、PythonでExcelファイルの自動化処理を実現できます。この記事では、Excelファイル内のデータを読み込んだり、書き込んだりする方法、セルや範囲を操作する方法、グラフを作成する方法などについて解説します。

目次

受講者数No.1!初心者からプロへ導く信頼のスクール

    短期間で習得可能!未経験から実践力を磨く充実のプログラム

    今なら無料相談でAmazonギフトカードがもらえる!

    OpenPyXLのインストール

    Pythonは、データ分析や処理に非常に便利なプログラミング言語です。Excelと同様に、Pythonにはデータを表形式で扱うためのモジュールがあります。その中でもOpenPyXLモジュールは、Excelファイルを操作するために最適なツールの1つです。

    OpenPyXLを使用するには、まずPython環境にインストールする必要があります。

    以下のコマンドを使用して、OpenPyXLをインストールできます。

    pip install openpyxl

    Excelファイルの読み込み

    OpenPyXLを使用してExcelファイルを読み込むには、次のようなコードを使用します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルの値を取得する
    value = sheet['A1'].value
    
    # ワークブックを閉じる
    workbook.close()

    この例では、”sample.xlsx”という名前のExcelファイルを開き、”Sheet1″という名前のワークシートを取得しています。次に、”A1″というセルの値を取得しています。最後に、ワークブックを閉じています。

    Excelファイルの書き込み

    Excelファイルにデータを書き込むには、次のようなコードを使用します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.Workbook()
    
    # シートを取得する
    sheet = workbook.active
    
    # セルに値を設定する
    sheet['A1'] = 'Hello'
    sheet['B1'] = 'World'
    
    # Excelファイルを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、新しいExcelファイルを作成し、”Hello”という値を”A1″セルに、”World”という値を”B1″セルに設定しています。最後に、ワークブックを保存して閉じています。

    シートの作成

    新しいシートを作成するには、以下のようなコードを使用します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.Workbook()
    
    # 新しいシートを作成する
    new_sheet = workbook.create_sheet('New Sheet')
    
    # Excelファイルを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、新しいシートを”New Sheet”という名前で作成しています。作成した後に、Excelファイルを保存して閉じています。

    シートを読み込む方法

    OpenPyXLを使用して、Excelファイル内のシートを読み込むには、次のようにコードを記述します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # シート内のデータを読み込む
    for row in sheet.iter_rows(min_row=1, values_only=True):
        print(row)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、”sample.xlsx”というExcelファイルを開いて、”Sheet1″という名前のシートを取得しています。その後、iter_rows()メソッドを使用して、各行の値を取得しています。values_only引数をTrueに設定することで、セルの式や書式を無視して、値だけを取得できます。また、min_row引数を使用して、読み込みを開始する行を指定することもできます。最後に、ワークブックを閉じます。

    また、iter_cols()メソッドを使用して、列を単位にしてデータを読み込むこともできます。以下は、”Sheet1″のA列からC列までのデータを読み込む例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # シート内のデータを読み込む
    for col in sheet.iter_cols(min_row=1, min_col=1, max_col=3, values_only=True):
        print(col)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、iter_cols()メソッドを使用して、A列からC列までのデータを取得しています。min_colmax_col引数を使用して、取得する列の範囲を指定することができます。

    シートのコピー

    シートをコピーするには、以下のようなコードを使用します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # コピー元のシートを取得する
    source_sheet = workbook['Sheet1']
    
    # 新しいシートを作成し、コピー元のシートをコピーする
    new_sheet = workbook.copy_worksheet(source_sheet)
    
    # Excelファイルを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、”Sheet1″という名前のシートを取得して、新しいシートにコピーしています。

    シートの一覧を取得する

    OpenPyXLを使用して、Excelファイル内のすべてのシートの一覧を取得するには、以下のようにコードを記述します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートの一覧を取得する
    sheet_names = workbook.sheetnames
    
    # ワークブックを閉じる
    workbook.close()
    
    # シートの一覧を表示する
    print(sheet_names)

    この例では、”sample.xlsx”というExcelファイルを開き、sheetnames属性を使用してすべてのシート名を取得しています。最後に、ワークブックを閉じて、取得したシート名を表示しています。

    また、シート名を含むリストを取得した後に、各シートを操作することもできます。以下は、シートの一覧を取得して、各シートのデータを読み取る例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートの一覧を取得する
    sheet_names = workbook.sheetnames
    
    # 各シートのデータを読み込む
    for sheet_name in sheet_names:
        sheet = workbook[sheet_name]
        for row in sheet.iter_rows(min_row=1, values_only=True):
            print(row)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、各シートのデータを読み込むために、iter_rows()メソッドを使用して、各行の値を取得しています。values_only引数をTrueに設定することで、セルの式や書式を無視して、値だけを取得できます。また、min_row引数を使用して、読み込みを開始する行を指定することもできます。最後に、ワークブックを閉じます。

    ワークシートからセルの情報を取得する

    OpenPyXLを使用して、Excelファイル内のワークシートからセルの情報を取得するには、以下のようにコードを記述します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルの値を取得する
    cell_value = sheet['A1'].value
    
    # セルの書式を取得する
    cell_format = sheet['A1'].number_format
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    print('Cell Value:', cell_value)
    print('Cell Format:', cell_format)

    この例では、”sample.xlsx”というExcelファイルを開き、”Sheet1″という名前のシートを取得しています。次に、sheetオブジェクトを使用して”A1″のセルの値と書式を取得しています。最後に、ワークブックを閉じて、取得した情報を表示しています。

    また、iter_rows()iter_cols()を使用して、複数のセルからデータを取得することもできます。以下は、”Sheet1″のA列からC列までのセルの値を取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルの値を取得する
    for row in sheet.iter_rows(min_row=1, min_col=1, max_col=3, values_only=True):
        print(row)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、iter_rows()メソッドを使用して、A列からC列までのセルの値を取得しています。min_colmax_col引数を使用して、取得する列の範囲を指定することができます。

    新規のワークブックを生成する方法

    OpenPyXLを使用して、新規のワークブックを生成するには、Workbook()関数を使用します。

    以下は、新規のワークブックを作成し、”Sheet1″という名前のシートを追加する例です。

    import openpyxl
    
    # 新規のワークブックを生成する
    workbook = openpyxl.Workbook()
    
    # シートを取得する
    sheet = workbook.active
    
    # シートの名前を変更する
    sheet.title = 'Sheet1'
    
    # ワークブックを保存する
    workbook.save('new_workbook.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、openpyxl.Workbook()関数を使用して、新規のワークブックを生成しています。active属性を使用して、現在アクティブなシートオブジェクトを取得し、title属性を使用して、シートの名前を”Sheet1″に変更しています。その後、workbook.save()メソッドを使用して、ワークブックを保存しています。最後に、ワークブックを閉じます。

    セルの結合

    セルを結合するには、以下のようなコードを使用します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルを結合する
    sheet.merge_cells('A1:B1')
    
    # Excelファイルを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、”A1″と”B1″のセルを結合しています。

    セルの書式設定

    セルの書式設定には、以下のようなコードを使用します。

    import openpyxl
    from openpyxl.styles import Font, colors
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルの書式設定をする
    font = Font(color=colors.RED, bold=True)
    sheet['A1'].font = font
    
    # Excelファイルを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、”A1″のセルに赤色の太字のフォントを設定しています。

    cellオブジェクトからセル情報を取得する方法

    OpenPyXLを使用して、Excelファイル内のワークシートからCellオブジェクトを取得し、そのオブジェクトからセルの情報を取得するには、以下のようにコードを記述します。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルを取得する
    cell = sheet['A1']
    
    # セルの値を取得する
    cell_value = cell.value
    
    # セルの書式を取得する
    cell_format = cell.number_format
    
    # セルの行番号を取得する
    row_number = cell.row
    
    # セルの列番号を取得する
    column_letter = cell.column_letter
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    print('Cell Value:', cell_value)
    print('Cell Format:', cell_format)
    print('Row Number:', row_number)
    print('Column Letter:', column_letter)

    この例では、”sample.xlsx”というExcelファイルを開き、”Sheet1″という名前のシートを取得しています。次に、sheetオブジェクトから”A1″のセルのオブジェクトを取得しています。その後、Cellオブジェクトを使用して、セルの値、書式、行番号、列番号を取得しています。最後に、ワークブックを閉じて、取得した情報を表示しています。

    また、iter_rows()iter_cols()を使用して、複数のセルからデータを取得することもできます。以下は、”Sheet1″のA列からC列までのセルのオブジェクトを取得して、各セルの情報を表示する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルを取得する
    for row in sheet.iter_rows(min_row=1, min_col=1, max_col=3):
        for cell in row:
            # セルの値を取得する
            cell_value = cell.value
    
            # セルの書式を取得する
            cell_format = cell.number_format
    
            # セルの行番号を取得する
            row_number = cell.row
    
            # セルの列番号を取得する
            column_letter = cell.column_letter
    
            # 取得した情報を表示する
            print('Cell Value:', cell_value)
            print('Cell Format:', cell_format)
            print('Row Number:', row_number)
            print('Column Letter:', column_letter)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、iter_rows()メソッドを使用して、A列からC列までのセルのオブジェクトを取得しています。その後、各セルから情報を取得し、表示しています。セルごとに情報を取得することで、より詳細な処理が可能になります。

    cellオブジェクトのプロパティ

    以下の表に、OpenPyXLのCellオブジェクトの主要なプロパティとそれらが持つ値について説明します。

    プロパティ説明
    valueセルに格納されている値を取得します。
    data_typeセルの値のデータ型を取得します。可能な値には、numbersdatesformulasstringsnullがあります。
    number_formatセルの書式を取得します。文字列形式で取得されます。
    fontセルのフォントを取得します。Fontオブジェクトが返されます。
    fillセルの塗りつぶしを取得します。PatternFillオブジェクトが返されます。
    borderセルの罫線を取得します。Borderオブジェクトが返されます。
    alignmentセルの配置を取得します。Alignmentオブジェクトが返されます。
    protectionセルの保護状態を取得します。Protectionオブジェクトが返されます。
    rowセルが所属する行番号を取得します。
    columnセルが所属する列番号を取得します。
    coordinateセルの座標を取得します。例えば、”A1″、”B2″など。
    commentセルのコメントを取得します。Commentオブジェクトが返されます。
    cellオブジェクトのプロパティ

    これらのプロパティを使用して、Cellオブジェクトからセルの情報を詳細に取得することができます。たとえば、valueプロパティを使用してセルの値を取得し、number_formatプロパティを使用して書式を取得することができます。また、fontプロパティを使用して、セルのフォントの情報を取得することができます。

    行番号と列番号でセルの値を取得する

    OpenPyXLを使用して、行番号と列番号を指定してセルの値を取得するには、sheet.cell()メソッドを使用します。このメソッドには、取得するセルの行番号と列番号を指定する必要があります。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートから、A列の1行目のセルの値を取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # 行番号と列番号を指定してセルの値を取得する
    cell_value = sheet.cell(row=1, column=1).value
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    print('Cell Value:', cell_value)

    この例では、sheet.cell()メソッドを使用して、1行目のA列のセルの値を取得しています。row引数には行番号、column引数には列番号を指定することで、取得したいセルを指定できます。最後に、ワークブックを閉じて、取得した情報を表示しています。

    また、複数のセルからデータを取得する場合は、iter_rows()iter_cols()を使用して、指定された範囲内のすべてのセルを反復処理することができます。

    以下は、”Sheet1″のA列からC列までのセルの値を取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # セルの値を取得する
    for row in sheet.iter_rows(min_row=1, min_col=1, max_col=3):
        for cell in row:
            # セルの行番号を取得する
            row_number = cell.row
    
            # セルの列番号を取得する
            column_letter = cell.column_letter
    
            # セルの値を取得する
            cell_value = cell.value
    
            # 取得した情報を表示する
            print('Row Number:', row_number)
            print('Column Letter:', column_letter)
            print('Cell Value:', cell_value)
    
    # ワークブックを閉じる
    workbook.close()

    この例では、iter_rows()メソッドを使用して、A列からC列までのセルのオブジェクトを取得しています。その後、各セルから行番号、列番号、セルの値を取得しています。最後に、取得した情報を表示しています。

    セルの値を書き込む方法

    OpenPyXLを使用して、Excelファイル内のワークシートのセルに値を書き込むには、Worksheetオブジェクトのcell()メソッドを使用して、Cellオブジェクトを取得し、そのvalue属性に書き込む値を設定します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートのA1セルに”Hello, World!”という文字列を書き込む例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A1セルに値を書き込む
    cell = sheet.cell(row=1, column=1)
    cell.value = 'Hello, World!'
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、sheet.cell()メソッドを使用して、A1セルのCellオブジェクトを取得しています。その後、取得したCellオブジェクトのvalue属性に、書き込む値を設定しています。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    数式を書き込む方法

    OpenPyXLを使用して、Excelファイル内のワークシートに数式を書き込むには、Worksheetオブジェクトのcell()メソッドを使用して、Cellオブジェクトを取得し、そのvalue属性に数式を設定します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートのA2セルにSUM関数を使用して、A1とB1の値を合計する数式を書き込む例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A2セルに数式を書き込む
    cell = sheet.cell(row=2, column=1)
    cell.value = '=SUM(A1:B1)'
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、sheet.cell()メソッドを使用して、A2セルのCellオブジェクトを取得しています。その後、取得したCellオブジェクトのvalue属性に、SUM関数を使用した数式を設定しています。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    集計表のサイズを取得する方法

    OpenPyXLを使用して、Excelファイル内のワークシートのサイズ(つまり、使用されている行数と列数)を取得するには、Worksheetオブジェクトのmax_rowmax_columnプロパティを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートから、使用されている行数と列数を取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # 使用されている行数と列数を取得する
    max_row = sheet.max_row
    max_column = sheet.max_column
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    print('Max Row:', max_row)
    print('Max Column:', max_column)

    この例では、sheet.max_rowsheet.max_columnプロパティを使用して、使用されている行数と列数を取得しています。最後に、ワークブックを閉じて、取得した情報を表示しています。

    特定の範囲のcellオブジェクトを取得する方法

    OpenPyXLを使用して、Excelファイル内のワークシートから特定の範囲のCellオブジェクトを取得するには、Worksheetオブジェクトのiter_rows()メソッドまたはiter_cols()メソッドを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートから、B列の1行目から5行目までのCellオブジェクトを取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # B列の1行目から5行目までのセルのオブジェクトを取得する
    cells = sheet['B1':'B5']
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    for row in cells:
        for cell in row:
            print(cell.coordinate, cell.value)

    この例では、sheetオブジェクトに対して、範囲指定を行ってCellオブジェクトを取得しています。指定した範囲のセルのオブジェクトが、リストとしてcells変数に格納されます。その後、取得したCellオブジェクトを反復処理して、各セルの情報を表示しています。

    また、iter_rows()メソッドを使用して、行指向で範囲内のすべてのセルのオブジェクトを取得することもできます。以下は、”Sheet1″のA列からC列までのセルのオブジェクトを取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A列からC列までのセルのオブジェクトを取得する
    cells = sheet.iter_rows(min_row=1, min_col=1, max_col=3)
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    for row in cells:
        for cell in row:
            print(cell.coordinate, cell.value)

    この例では、iter_rows()メソッドを使用して、A列からC列までのすべてのセルのオブジェクトを取得しています。取得したCellオブジェクトを反復処理して、各セルの情報を表示しています。

    これらの方法を使用して、OpenPyXLを使用してExcelファイル内のワークシートから特定の範囲のCellオブジェクトを取得することができます。

    columnsプロパティで1列取得する方法

    OpenPyXLを使用して、Excelファイル内のワークシートから特定の列のCellオブジェクトを取得するには、Worksheetオブジェクトのcolumnsプロパティを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートから、B列のセルのオブジェクトを取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # B列のセルのオブジェクトを取得する
    cells = sheet.columns[1]
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    for cell in cells:
        print(cell.coordinate, cell.value)

    この例では、sheet.columnsプロパティを使用して、各列のCellオブジェクトを反復処理することができます。インデックスを使用して、指定した列のCellオブジェクトを取得しています。取得したCellオブジェクトを反復処理して、各セルの情報を表示しています。

    columnsプロパティを使用することで、特定の列のCellオブジェクトを取得することができます。また、rowsプロパティを使用して、特定の行のCellオブジェクトを取得することもできます。

    rowsプロパティで1行取得する方法

    OpenPyXLを使用して、Excelファイル内のワークシートから特定の行のCellオブジェクトを取得するには、Worksheetオブジェクトのrowsプロパティを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートから、2行目のセルのオブジェクトを取得する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # 2行目のセルのオブジェクトを取得する
    cells = sheet.rows[1]
    
    # ワークブックを閉じる
    workbook.close()
    
    # 取得した情報を表示する
    for cell in cells:
        print(cell.coordinate, cell.value)

    この例では、sheet.rowsプロパティを使用して、各行のCellオブジェクトを反復処理することができます。インデックスを使用して、指定した行のCellオブジェクトを取得しています。取得したCellオブジェクトを反復処理して、各セルの情報を表示しています。

    rowsプロパティを使用することで、特定の行のCellオブジェクトを取得することができます。また、columnsプロパティを使用して、特定の列のCellオブジェクトを取得することもできます。

    ワークシートを削除する方法

    OpenPyXLを使用して、Excelファイル内のワークシートを削除するには、Workbookオブジェクトのremove()メソッドを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet2″という名前のシートを削除する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを削除する
    sheet = workbook['Sheet2']
    workbook.remove(sheet)
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、workbook.remove()メソッドを使用して、”Sheet2″という名前のシートを削除しています。その後、workbook.save()メソッドを使用して、ワークブックを保存しています。

    Workbookオブジェクトのremove()メソッドを使用することで、Excelファイル内のワークシートを削除することができます。注意点として、削除したシートに含まれるセルの情報は削除され、元のExcelファイルが変更されるため、慎重に使用する必要があります。

    セルの幅と高さを設定する方法

    OpenPyXLを使用して、Excelファイル内のワークシートのセルの幅と高さを設定するには、Worksheetオブジェクトのcolumn_dimensionsrow_dimensions属性を使用して、それぞれの列と行の幅と高さを設定します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートのA列と1行のセルの幅と高さを設定する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A列の幅を設定する
    sheet.column_dimensions['A'].width = 20
    
    # 1行の高さを設定する
    sheet.row_dimensions[1].height = 30
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、sheet.column_dimensions属性を使用して、A列の幅を20に設定しています。また、sheet.row_dimensions属性を使用して、1行目の高さを30に設定しています。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    セルの結合を解除する方法

    OpenPyXLを使用して、Excelファイル内のワークシートでセルの結合を解除するには、Worksheetオブジェクトのunmerge_cells()メソッドを使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートで、A1からB2までのセルを結合した後に、結合を解除する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A1からB2までのセルを結合する
    sheet.merge_cells('A1:B2')
    
    # セルの値を設定する
    cell = sheet.cell(row=1, column=1)
    cell.value = 'Merged Cells'
    
    # 結合を解除する
    sheet.unmerge_cells('A1:B2')
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、sheet.merge_cells()メソッドを使用して、A1からB2までのセルを結合しています。その後、結合したセルに値を設定し、sheet.unmerge_cells()メソッドを使用して、結合を解除しています。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    ウィンドウを固定する方法

    OpenPyXLを使用して、Excelファイル内のワークシートでウィンドウを固定するには、Worksheetオブジェクトのfreeze_panes属性を使用します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートで、A1からB2までの範囲を固定する例です。

    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # A1からB2までの範囲を固定する
    sheet.freeze_panes = 'C3'
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、sheet.freeze_panes属性を使用して、C3のセルを左上隅として、A1からB2までの範囲を固定しています。つまり、A列と1行のセルが固定され、スクロールするときに固定された領域が表示されるようになります。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    レコード単位で書き込む方法

    OpenPyXLを使用して、Excelファイル内のワークシートにレコード単位で書き込むには、Worksheetオブジェクトのappend()メソッドを使用して、リストやタプルなどのイテラブルオブジェクトをシートに追加します。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートに、以下のレコードを追加する例です。

    NameAgeCountry
    John25USA
    Lisa28Canada
    Bob32UK
    import openpyxl
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # レコードを定義する
    records = [
        ['John', 25, 'USA'],
        ['Lisa', 28, 'Canada'],
        ['Bob', 32, 'UK']
    ]
    
    # レコードをシートに追加する
    for record in records:
        sheet.append(record)
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、レコードをリストの形式で定義し、sheet.append()メソッドを使用して、それらのレコードをシートに追加しています。レコードを追加すると、新しい行が自動的に作成され、各レコードの各値がセルに書き込まれます。最後に、workbook.save()メソッドを使用して、変更を保存し、ワークブックを閉じています。

    グラフを作成する方法

    OpenPyXLを使用して、Excelファイル内のワークシートにグラフを作成するには、openpyxl.chartモジュールを使用します。このモジュールには、様々なタイプのグラフを作成するためのクラスが用意されています。

    以下は、”sample.xlsx”というExcelファイルの”Sheet1″という名前のシートに、折れ線グラフを作成する例です。

    import openpyxl
    from openpyxl.chart import LineChart, Reference
    
    # Excelファイルを開く
    workbook = openpyxl.load_workbook('sample.xlsx')
    
    # シートを取得する
    sheet = workbook['Sheet1']
    
    # データ範囲を指定する
    values = Reference(sheet, min_col=2, min_row=1, max_col=3, max_row=5)
    
    # グラフを作成する
    chart = LineChart()
    chart.title = "Sample Chart"
    chart.x_axis.title = "X-Axis"
    chart.y_axis.title = "Y-Axis"
    chart.add_data(values)
    
    # グラフをワークシートに追加する
    sheet.add_chart(chart, "A7")
    
    # ワークブックを保存する
    workbook.save('sample.xlsx')
    
    # ワークブックを閉じる
    workbook.close()

    この例では、openpyxl.chartモジュールのLineChartクラスを使用して、折れ線グラフを作成しています。データ範囲は、openpyxl.chartモジュールのReferenceクラスを使用して、B1からC5までのセル範囲を指定しています。

    次に、グラフのタイトル、X軸のラベル、Y軸のラベルを設定し、データを追加しています。最後に、Worksheetオブジェクトのadd_chart()メソッドを使用して、グラフをワークシートに追加しています。

    グラフオブジェクトの種類

    OpenPyXLでサポートされているグラフの種類は多岐にわたります。以下に、一部の代表的なグラフオブジェクトとその種類を表にまとめました。

    グラフオブジェクト種類
    LineChart折れ線グラフ
    BarChart棒グラフ
    ColumnChart縦棒グラフ
    StackedBarChart積み上げ棒グラフ
    StackedColumnChart積み上げ縦棒グラフ
    AreaChart面グラフ
    ScatterChart散布図
    BubbleChartバブルチャート
    PieChart円グラフ
    DoughnutChartドーナツグラフ
    RadarChartレーダーチャート
    StockChart株価チャート
    代表的なグラフオブジェクトとその種類

    これらのグラフオブジェクトを使用することで、PythonコードからExcelファイル内のワークシートに様々な種類のグラフを作成することができます。各グラフオブジェクトには、タイトル、X軸とY軸のラベル、データシリーズなどのプロパティを設定するためのメソッドが提供されています

    リスキリングでキャリアアップしてみませんか?

    リスキリング(学び直し)は、経済産業省が推奨しており、

    今だけ、最大70%のキャッシュバックを受けることができます。

    リスキリング 給付金が出るスクール紹介

    最大70%の給付金が出るおすすめのプログラミングスクール!

    国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

    興味のある方はすぐに確認しましょう。

    まとめ

     本記事では、PythonのOpenPyXLモジュールを使用してExcelファイルを自動化処理する方法について解説しました。Excelファイル内のデータを読み込んだり、書き込んだりする方法、セルや範囲を操作する方法、グラフを作成する方法など、様々な操作方法を紹介しました。

    Excelファイルはビジネスにおいて頻繁に使用される重要なツールの1つであり、OpenPyXLモジュールを使用することで、手動での大量データ処理を効率的に行うことができます。Pythonを使ったExcelファイルの自動化処理に興味のある方は、本記事を参考にしてみてはいかがでしょうか。

    OpenPyXLモジュールを使ってExcelファイルを自動化処理する方法が理解できたので、非常に参考になりました。

    Excelファイルはビジネスにおいて重要なツールの1つであり、PythonのOpenPyXLモジュールを使用することで、手動での大量データ処理を効率的に行うことができます。今回の記事を参考にして、自動化処理を実現してみてはいかがでしょうか。

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!
    目次