spanish-quizzer

An app to quiz you on Spanish vocabulary and verb conjugations
git clone https://git.ashermorgan.net/spanish-quizzer/
Log | Files | Refs | README

commit 60462fae7e5578df42620f092cd5f3a37af3e6b4
parent b7c8d91575adf888c286a03a558106923b5bec4e
Author: AsherMorgan <59518073+AsherMorgan@users.noreply.github.com>
Date:   Wed, 22 Jul 2020 20:45:41 -0700

Implement xlsx-builder script.

Diffstat:
Axlsx-builder.py | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 88 insertions(+), 0 deletions(-)

diff --git a/xlsx-builder.py b/xlsx-builder.py @@ -0,0 +1,88 @@ +# Import dependencies +import csv +import openpyxl +from openpyxl.styles.borders import Border, Side + + + +# Converts a csv of verbs to a spreadsheet +def createXlsx(csvPath, xlsxPath): + # Load csv + rows = [] + with open(csvPath, encoding="utf-8") as f: + for row in csv.reader(f): + rows.append(row) + + # Rearrange csv data + data = [["English", "Infinitive", "Yo", "Tú", "Él", "Nosotros", "Ellos"]] + for row in rows[1:]: + data += [["", "", row[5], row[6], row[7], row[8], row[9]]] + data += [[row[0], row[1], row[11], row[12], row[13], row[14], row[15]]] + data += [["", "", row[17], row[18], row[19], row[20], row[21]]] + + # Create spreadsheet + vk = openpyxl.Workbook() + + # Get border styles + thick = Side(border_style='thick', color="FF000000") + thin = Side(border_style='thin', color="FF000000") + + # Set data + sh = vk.active + sh.page_setup.fitToHeight = False + for row in range(len(data)): + for column in range(len(data[row])): + # Get cell + cell = sh.cell(row=row + 1, column=column + 1) + + # Set cell value + cell.value = data[row][column] + + # Get cell borders + border = Border( + left=cell.border.left, + right=cell.border.right, + top=cell.border.top, + bottom=cell.border.bottom + ) + + # Set inner borders + if column > 1: + # Conjugation columns only + border.top = thin + border.bottom = thin + if row % 3 == 1: + # Present tense rows only + border.top = thick + border.left = thin + border.right = thin + + # Set outside borders + if column == 0: + border.left = thick + if column == len(data[row]) - 1: + border.right = thick + if row == 0: + border.top = thick + if row == len(data) - 1: + border.bottom = thick + + # Update cell borders + cell.border = border + + # Set page margins + sh.page_margins.left = 0.25 + sh.page_margins.right = 0.25 + sh.page_margins.top = 0.75 + sh.page_margins.bottom = 0.25 + sh.page_margins.header = 0.3 + sh.page_margins.footer = 0 + + # Save spreadsheet + vk.save(xlsxPath) + + + +# Create spreadsheet from Verbs.csv +if (__name__ == "__main__"): + createXlsx("Vocab/Verbs.csv", "Vocab/Verbs.xlsx")