excel opening optimization
This commit is contained in:
@@ -30,14 +30,12 @@ class BaseHandler:
|
||||
except Exception as e:
|
||||
raise Exception(f"⚠️ Ошибка при получении структуры {self.file_path}: {e}")
|
||||
|
||||
def process(self):
|
||||
raise NotImplementedError
|
||||
|
||||
class YandexHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skiprows=[0,1,3])
|
||||
# проверяем наличие нужных листов
|
||||
if "Получено от потребителей" not in dfs or "Возвращено потребителям" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Получено от потребителей" in xls.sheet_names and "Возвращено потребителям" in xls.sheet_names:
|
||||
dfs = self.read(xls,sheet_name=["Получено от потребителей","Возвращено потребителям"], skiprows=[0,1,3])
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
# вызываем функцию evaluating
|
||||
validated_data = yandex_handler.evaluating(dfs)
|
||||
@@ -64,8 +62,10 @@ class YandexHandler(BaseHandler):
|
||||
doc_creator.fill_document_items_report(doc_key, validated_data[0], validated_data[1])
|
||||
class WBHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read()
|
||||
if "Sheet1" not in dfs :
|
||||
xls= self.struct()
|
||||
if "Sheet1" in xls.sheet_names:
|
||||
dfs = self.read(xls)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data = wb_handler.evaluating(dfs)
|
||||
print("Реализация WB завершена, валидированных строк:", len(validated_data[0]), "Реализация", len(validated_data[1]), "Возвраты", validated_data[2], "Дата")
|
||||
@@ -91,8 +91,10 @@ class WBHandler(BaseHandler):
|
||||
doc_creator.fill_document_items_report(doc_key, validated_data[0], validated_data[1])
|
||||
class OZONHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skiprows=14, skipfooter=17)
|
||||
if "Отчет о реализации" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Отчет о реализации" in xls.sheet_names:
|
||||
dfs = self.read(xls, skiprows=14, skipfooter=17)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data = ozon_handler.evaluating(dfs)
|
||||
print("Реализация OZON завершена, валидированных строк:", len(validated_data[0]), "Реализация", len(validated_data[1]), "Возвраты", validated_data[2], "Дата")
|
||||
@@ -120,8 +122,10 @@ class OZONHandler(BaseHandler):
|
||||
|
||||
class OZONPurchasesHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skiprows=[0,3,4,5,6,7,8,9,10,11], skipfooter=1)
|
||||
if "Отчёт о выкупленных товарах" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Отчёт о выкупленных товарах" in xls.sheet_names:
|
||||
dfs = self.read(xls, skiprows=[0,3,4,5,6,7,8,9,10,11], skipfooter=1)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data, date = ozon_purchases_handler.evaluating(dfs)
|
||||
print("Выкупы OZON завершены, валидированных строк:", len(validated_data), "Реализация", date, "Дата")
|
||||
@@ -140,8 +144,10 @@ class OZONPurchasesHandler(BaseHandler):
|
||||
doc_creator.fill_document_items_purchase(doc_key, validated_data)
|
||||
class WBPurchasesHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skiprows=[0,3,4,5,6,7,8], skipfooter=7)
|
||||
if "Sheet1" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Sheet1" in xls.sheet_names:
|
||||
dfs = self.read(xls, skiprows=[0,3,4,5,6,7,8], skipfooter=7)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
validated_data, date = wb_purchases_handler.evaluating(dfs)
|
||||
print("Выкупы WB завершены, валидированных строк:", len(validated_data), "Реализация", date, "Дата" )
|
||||
@@ -160,8 +166,10 @@ class WBPurchasesHandler(BaseHandler):
|
||||
doc_creator.fill_document_items_purchase(doc_key, validated_data)
|
||||
class OZONComHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skipfooter=1)
|
||||
if "Лист_1" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Лист_1" in xls.sheet_names:
|
||||
dfs = self.read(xls, skipfooter=1)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
df = dfs["Лист_1"]
|
||||
# контрагент
|
||||
@@ -186,8 +194,10 @@ class OZONComHandler(BaseHandler):
|
||||
doc_creator.fill_document_items_to_real(doc_key, validated_data)
|
||||
class WBComHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skipfooter=1)
|
||||
if "Лист_1" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Лист_1" in xls.sheet_names:
|
||||
dfs = self.read(xls, skipfooter=1)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
df = dfs["Лист_1"]
|
||||
# контрагент
|
||||
@@ -213,8 +223,10 @@ class WBComHandler(BaseHandler):
|
||||
|
||||
class YandexComHandler(BaseHandler):
|
||||
def process(self):
|
||||
dfs = self.read(skipfooter=1)
|
||||
if "Лист_1" not in dfs:
|
||||
xls= self.struct()
|
||||
if "Лист_1" in xls.sheet_names:
|
||||
dfs = self.read(xls, skipfooter=1)
|
||||
else:
|
||||
raise Exception(f"В файле {self.file_path.name} отсутствуют необходимые листы")
|
||||
df = dfs["Лист_1"]
|
||||
# контрагент
|
||||
|
||||
Reference in New Issue
Block a user