表示されているシートごとのファイルに xlsx を分割します。
split_xlsx.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
#
# split_xlsx.py
#
# Jan/24/2019
import sys
from openpyxl import load_workbook
#
# ---------------------------------------------------------------
def sheet_pick_up_proc(wb,sheetnames,nn_sheet):
sheet_target = sheetnames[nn_sheet]
for sheet in sheetnames:
if sheet != sheet_target:
del wb[sheet]
else:
print(sheet_target)
#
xlsx_out = "sheet_%d.xlsx" % nn_sheet
wb.save(xlsx_out)
#
# ---------------------------------------------------------------
sys.stderr.write ("*** 開始 ***\n")
#
xlsx_file = sys.argv[1]
sys.stderr.write(xlsx_file + "\n")
#
wa = load_workbook (filename = xlsx_file)
#
sheetnames = wa.sheetnames
print(sheetnames)
#for sheet in sheetnames:
# print(wa[sheet].sheet_state)
#
for icount in range(len(sheetnames)):
sys.stderr.write("icount = %d\n" % icount)
sheet = sheetnames[icount]
wa = load_workbook(filename = xlsx_file)
if wa[sheet].sheet_state == "visible":
try:
sheet_pick_up_proc(wa,sheetnames,icount)
except Exception as ee:
sys.stderr.write("*** error *** in sheet_pick_up_proc ***\n")
sys.stderr.write(str(ee) + "\n")
#
sys.stderr.write ("*** 終了 ***\n")
# ---------------------------------------------------------------
実行方法
./split_xlsx.py in01.xlsx