機能
Excelの行と列を入れ替えるPythonプログラムです。
サンプル動画
youtu.be
プログラム
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])
使い方
- Pythonを実行する
実行コマンド
python matrix_swaper.py 入力ファイル 出力ファイル
python matrix_swaper.py input.xlsx output.xlsx
参考文献
www.oreilly.co.jp
qiita.com
www.py4u.net