Reza-galaxy21 commited on
Commit
46b6385
·
verified ·
1 Parent(s): cf202e9

Update utils.py

Browse files
Files changed (1) hide show
  1. utils.py +27 -6
utils.py CHANGED
@@ -1,21 +1,30 @@
1
  import pandas as pd
 
2
 
3
  def parse_excel_file(file_path):
4
- df = pd.read_excel(file_path)
 
 
5
 
6
- # نگاشت نام‌های مختلف ستون‌ها برای انعطاف بیشتر
 
 
 
 
 
 
7
  column_mapping = {
8
  "کد فهرست بها": ["کد فهرست بها", "کد"],
9
- "شرح": ["شرح"],
10
- "مقدار": ["مقدار"],
11
- "واحد": ["واحد"]
12
  }
13
 
14
  resolved_columns = {}
15
  for key, options in column_mapping.items():
16
  found = next((col for col in options if col in df.columns), None)
17
  if not found:
18
- raise ValueError(f"ستون «{key}» در فایل پیدا نشد.")
19
  resolved_columns[key] = found
20
 
21
  materials = []
@@ -29,3 +38,15 @@ def parse_excel_file(file_path):
29
  materials.append(material)
30
 
31
  return materials
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import pandas as pd
2
+ import json
3
 
4
  def parse_excel_file(file_path):
5
+ """
6
+ فایل اکسل را با فرض اینکه عنوان ستون‌ها در ردیف سوم (index=2) هستند، خوانده و اطلاعات مواد را استخراج می‌کند.
7
+ """
8
 
9
+ try:
10
+ # خواندن اکسل با فرض اینکه عنوان ستون‌ها در ردیف سوم قرار دارند
11
+ df = pd.read_excel(file_path, header=2)
12
+ except Exception as e:
13
+ raise ValueError(f"خطا در خواندن فایل اکسل: {str(e)}")
14
+
15
+ # نگاشت ستون‌ها برای پشتیبانی از نام‌های مختلف
16
  column_mapping = {
17
  "کد فهرست بها": ["کد فهرست بها", "کد"],
18
+ "شرح": ["شرح", "شرح کالا", "نام کالا"],
19
+ "مقدار": ["مقدار", "تعداد", "تعداد مورد نیاز"],
20
+ "واحد": ["واحد", "واحد شمارش", "نوع واحد"]
21
  }
22
 
23
  resolved_columns = {}
24
  for key, options in column_mapping.items():
25
  found = next((col for col in options if col in df.columns), None)
26
  if not found:
27
+ raise ValueError(f"ستون «{key}» در فایل پیدا نشد.")
28
  resolved_columns[key] = found
29
 
30
  materials = []
 
38
  materials.append(material)
39
 
40
  return materials
41
+
42
+
43
+ def save_to_json(data, output_path="material_db.json"):
44
+ """
45
+ ذخیره اطلاعات استخراج‌شده در قالب JSON.
46
+ """
47
+ try:
48
+ with open(output_path, "w", encoding="utf-8") as f:
49
+ json.dump(data, f, indent=2, ensure_ascii=False)
50
+ except Exception as e:
51
+ raise ValueError(f"❌ خطا در ذخیره فایل JSON: {str(e)}")
52
+