Python Learning: Automate Boring Stuff with Python | Chapter 11 : My Solution to Multiplication Table Maker

Easier done than said ….like actually

03:35:23 Coffee with a drop of sleep in my eyes


I am rather tired at the moment but have enough energy to solve this task: Multiplication table challenge..

# Usage: python multiplication.py <N>

import sys
import os
import openpyxl
import logging
from openpyxl.styles import Font

logging.basicConfig(level=logging.DEBUG,
                    format="%(asctime)s - %(levelname)s - %(message)s")

if len(sys.argv) == 2:
    limit = int(sys.argv[1])
    filename = os.path.join(".", "multiplication{}.xlsx".format(limit))
    # TODO: create xlsx
    wb = openpyxl.Workbook()
    sheet = wb.get_active_sheet()
    if not sheet:
        wb.create_sheet(title="Multiplication Table")
    sheet = wb.get_active_sheet()
    fontObj = Font(bold=True)
    # TODO:print first row
    topRow = list(range(1, limit + 1))
    topRow = [" "] + topRow
    i = 1
    for val in topRow:
        curr_cell = sheet.cell(row=1, column=i)
        curr_cell.font = fontObj
        curr_cell.value = val
        i += 1
        # create table
        i = 1
        for row in range(1, limit + 1):
            cur = sheet.cell(row=row + 1, column=1)
            cur.font = fontObj
            cur.value = row
            for col in range(1, limit + 1):
                sheet.cell(row=row + 1, column=col+1).value = row * col
                i += 1
    wb.save(filename)
else:
    logging.error("Usage: python multiplication.py <N>")

I expected this to be perplexing but was an enjoyable process.