99 lines
3.1 KiB
Python
99 lines
3.1 KiB
Python
from modules.svgcreator import SvgCreator
|
|
import pandas as pd
|
|
|
|
class SvgCreatorModel:
|
|
arr_errors = []
|
|
def __init__(self, svg_path, excel_path, output_path):
|
|
self.svg_path = svg_path
|
|
self.excel_path = excel_path
|
|
self.output_path = output_path
|
|
|
|
|
|
def extract_excel(self):
|
|
df = pd.read_excel(self.excel_path)
|
|
# Iterate over rows and columns to print each cell
|
|
for index, row in df.iterrows():
|
|
svg = row["motiv"]
|
|
tx1 = row["tx1"]
|
|
num = str(row["num"]).split('.')[0]
|
|
tx2 = row["tx2"]
|
|
tx3 = row["tx3"]
|
|
tx4 = row["tx4"]
|
|
|
|
# Check for NaN values and replace them with None
|
|
svg = svg if pd.notna(row["motiv"]) else None
|
|
tx1 = tx1 if pd.notna(row["tx1"]) else None
|
|
num = num if pd.notna(row["num"]) else None
|
|
tx2 = tx2 if pd.notna(row["tx2"]) else None
|
|
tx3 = tx3 if pd.notna(row["tx3"]) else None
|
|
tx4 = tx4 if pd.notna(row["tx4"]) else None
|
|
|
|
if(svg == None):
|
|
continue
|
|
self.create_svg(svg, tx1, tx2, tx3, tx4, num)
|
|
|
|
self.write_error_excel()
|
|
self.arr_errors = []
|
|
|
|
|
|
def write_error_excel(self):
|
|
df = pd.DataFrame(self.arr_errors)
|
|
df.to_excel(self.output_path+"/errors.xlsx")
|
|
|
|
|
|
def create_svg(self, svg, tx1, tx2, tx3, tx4, num):
|
|
obj = SvgCreator(self.svg_path+"/"+svg+".svg")
|
|
if obj.svg_path == 0:
|
|
print("Pfad existiert nicht")
|
|
print(self.svg_path+"/"+svg+".svg")
|
|
tuple_error = [svg, "Pfad existiert nicht"]
|
|
self.arr_errors.append(tuple_error)
|
|
|
|
|
|
allow_exp = True
|
|
try:
|
|
if not None == tx1:
|
|
tx1 = tx1.split("(")[0]
|
|
if tx1[-1] == " ":
|
|
tx1 = tx1[:-1]
|
|
|
|
obj.update_text("tx1", tx1)
|
|
if not None == tx2:
|
|
tx2 = tx2.split("(")[0]
|
|
if tx2[-1] == " ":
|
|
tx2 = tx2[:-1]
|
|
|
|
obj.update_text("tx2", tx2)
|
|
if not None == tx3:
|
|
tx3 = tx3.split("(")[0]
|
|
if tx3[-1] == " ":
|
|
tx3 = tx3[:-1]
|
|
|
|
obj.update_text("tx3", tx3)
|
|
if not None == tx4:
|
|
tx4 = tx4.split("(")[0]
|
|
if tx4[-1] == " ":
|
|
tx4 = tx4[:-1]
|
|
|
|
obj.update_text("tx4", tx4)
|
|
if not None == num:
|
|
num = num.split("(")[0]
|
|
if num[-1] == " ":
|
|
num = num[:-1]
|
|
|
|
obj.update_text("num", num)
|
|
except Exception as e:
|
|
tuple_error = [svg, e]
|
|
self.arr_errors.append(tuple_error)
|
|
allow_exp = False
|
|
|
|
if allow_exp:
|
|
try:
|
|
obj.export_svg(self.output_path+"/", svg+" "+tx1, 300)
|
|
except Exception as e:
|
|
tuple_error = [svg, "Export fehlgeschlagen"]
|
|
self.arr_errors.append(tuple_error)
|
|
allow_exp = False
|
|
|
|
|