【Python】Excelの行と列を入れ替える

機能

Excelの行と列を入れ替えるPythonプログラムです。

サンプル動画

youtu.be

プログラム

#! python3
# 機能
#  Excelの行と列を入れ替える
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python matrix_swaper.py 入力ファイル 出力ファイル
#  python matrix_swaper.py input.xlsx output.xlsx

import sys
import openpyxl
from copy import copy

def swap_matrix(src_sheet, dst_sheet):
    for row in range(1, src_sheet.max_row + 1):
        for col in range(1, src_sheet.max_column + 1):
            src_cell = src_sheet.cell(column=col, row=row)
            dst_cell = dst_sheet.cell(column=row, row=col)
            dst_cell.value = src_cell.value
            if src_cell.has_style:
                dst_cell.font = copy(src_cell.font)
                dst_cell.border = copy(src_cell.border)
                dst_cell.fill = copy(src_cell.fill)
                dst_cell.number_format = copy(src_cell.number_format)
                dst_cell.protection = copy(src_cell.protection)
                dst_cell.alignment = copy(src_cell.alignment)

def walk_sheet(src_path, dst_path):
    src_wb = openpyxl.load_workbook(src_path)
    dst_wb = openpyxl.Workbook()
    dst_wb.remove(dst_wb.active)

    for src_sheet in src_wb.worksheets:
        dst_sheet = dst_wb.create_sheet()
        dst_sheet.title = src_sheet.title
        swap_matrix(src_sheet, dst_sheet)

    dst_wb.save(dst_path)

if len(sys.argv) != 3:
    sys.exit('使い方:python matrix_swaper.py 入力ファイル 出力ファイル')

walk_sheet(sys.argv[1], sys.argv[2])

使い方

  1. Pythonを実行する

実行コマンド

python matrix_swaper.py 入力ファイル 出力ファイル
python matrix_swaper.py input.xlsx output.xlsx

参考文献

www.oreilly.co.jp

qiita.com

www.py4u.net