開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、12章(Excelシート)、12.14(演習プロジェクト)、12.14.2(空行を挿入する)の解答を求めてみる。
コード
#!/usr/bin/env python3
import argparse
import openpyxl
parser = argparse.ArgumentParser()
parser.add_argument('N', type=int)
parser.add_argument('M', type=int)
parser.add_argument('filename', type=str)
args = parser.parse_args()
filename = args.filename
n = args.N
m = args.M
wb_old = openpyxl.load_workbook(filename)
wb_new = openpyxl.Workbook()
sheet_old = wb_old.active
sheet_new = wb_new.active
for row in range(1, sheet_old.max_row + 1):
if row < n:
row_new = row
else:
row_new = row + m
for col in range(1, sheet_old.max_column + 1):
cell_old = sheet_old.cell(row=row, column=col)
cell_new = sheet_new.cell(row=row_new, column=col)
cell_new.value = cell_old.value
wb_old.save(f'old_{filename}')
wb_new.save(f'{filename}')
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./blankRowInserter.py
usage: blankRowInserter.py [-h] N M filename
blankRowInserter.py: error: the following arguments are required: N, M, filename
% ./blankRowInserter.py 3 2 multiplicationTable.xlsx
% open old_multiplicationTable.xlsx multiplicationTable.xlsx
%
0 コメント:
コメントを投稿