working single group

This commit is contained in:
alex 2022-01-23 20:50:27 -05:00
parent ae2a5c286f
commit 0c180a7f42
4 changed files with 81 additions and 7 deletions

3
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.xlsx *.xlsx
*# *#
__pycache__ __pycache__
test_out

View File

@ -1,11 +1,17 @@
from openpyxl import load_workbook import argparse
wb = load_workbook(filename = 'names.xlsx') parser = argparse.ArgumentParser(description='Process some intzzz')
parser.add_argument('--in', '-i', dest='file_in', required=True)
parser.add_argument('--out', '-o')
parser.add_argument('--range', '-r', dest='cell_range')
names = [] args = parser.parse_args()
for row in wb.active.iter_rows(): from spreadsheet import get_names_list
name = " ".join(list(map(lambda cell: cell.value, row)))
names.append(name)
names = get_names_list(args.file_in, args.cell_range)
print(names) print(names)
from directory import create_directories
create_directories(args.out, names)

10
xlsx_dir_map/directory.py Normal file
View File

@ -0,0 +1,10 @@
import os
from pathlib import Path
def create_directory(name):
Path(name).mkdir(parents=True, exist_ok=True)
def create_directories(outdir, paths):
for path in paths:
fullpath = f"{outdir}/{path}" if outdir is not None else path
create_directory(fullpath)

View File

@ -0,0 +1,57 @@
from openpyxl import load_workbook
ALPHA = {
'A': 1,
'B': 2,
'C': 3,
'D': 4,
'E': 5,
'F': 6,
'G': 7,
'H': 8,
'I': 9,
'J': 10,
'K': 11,
'L': 12,
'M': 13,
'N': 14,
'O': 15,
'P': 16,
'Q': 17,
'R': 18,
'S': 19,
'T': 20,
'U': 21,
'V': 22,
'W': 23,
'X': 24,
'Y': 25,
'Z': 26
}
def parse_range(cellrange):
cell1 = cellrange.split(":")[0]
cell2 = cellrange.split(":")[1]
min_col = ALPHA[cell1[0]]
min_row = int(cell1[1:])
max_col = int(ALPHA[cell2[0]])
max_row = int(cell2[1:])
return (min_row, min_col, max_row, max_col)
def get_names_list(filename, cellrange):
wb = load_workbook(filename = filename)
names = []
min_row = min_col = max_row = max_col = None
if cellrange:
min_row, min_col, max_row, max_col = parse_range(cellrange)
for row in wb.active.iter_rows(min_row=min_row, min_col=min_col, max_row=max_row, max_col=max_col, values_only=True):
name = " ".join([str(cell) for cell in row if cell is not None])
names.append(name)
return [name for name in names if name != ""]