2020年2月22日土曜日

開発環境

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、12章(Excelシート)、12.14(演習プロジェクト)、12.14.1(掛け算の表を作成する)の解答を求めてみる。

コード

#!/usr/bin/env python3
import argparse
import os
import openpyxl
from openpyxl.cell.cell import get_column_letter
from openpyxl.styles import Font


print('1.')
parser = argparse.ArgumentParser()
parser.add_argument('number',  type=int)
args = parser.parse_args()
n = args.number
wb = openpyxl.Workbook()
sheet = wb.active
font_obj = Font(bold=True)

for row in range(1, n + 2):
    for col in range(1, n + 2):
        if row == col == 1:
            continue
        col_str = get_column_letter(col)
        cell = sheet[f'{col_str}{row}']
        if row == 1:
            cell.font = font_obj
            cell.value = col - 1
        elif col == 1:
            cell.font = font_obj
            cell.value = row - 1
        else:
            cell.value = (row - 1) * (col - 1)

wb.save('multiplicationTable.xlsx')

入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))

% ./multiplicationTable.py 10
1.
% open multiplicationTable.xlsx 
%

0 コメント:

コメントを投稿