在更新一版,更方便了

This commit is contained in:
2025-08-17 15:50:21 +08:00
parent 556f8d8020
commit 3414df5317
36 changed files with 2128 additions and 20246 deletions
+14 -7
View File
@@ -90,15 +90,20 @@ class PurchaseOrderMerger:
def get_purchase_orders(self) -> List[str]:
"""
获取output目录下的采购单Excel文件
获取result目录下的采购单Excel文件
Returns:
采购单文件路径列表
"""
logger.info(f"搜索目录 {self.output_dir} 中的采购单Excel文件")
# 采购单文件保存在data/result目录
result_dir = "data/result"
logger.info(f"搜索目录 {result_dir} 中的采购单Excel文件")
# 确保目录存在
os.makedirs(result_dir, exist_ok=True)
# 获取所有Excel文件
all_files = get_files_by_extensions(self.output_dir, ['.xls', '.xlsx'])
all_files = get_files_by_extensions(result_dir, ['.xls', '.xlsx'])
# 筛选采购单文件
purchase_orders = [
@@ -107,7 +112,7 @@ class PurchaseOrderMerger:
]
if not purchase_orders:
logger.warning(f"未在 {self.output_dir} 目录下找到采购单Excel文件")
logger.warning(f"未在 {result_dir} 目录下找到采购单Excel文件")
return []
# 按修改时间排序,最新的在前
@@ -394,9 +399,11 @@ class PurchaseOrderMerger:
# 采购单价(必填)- E列(4)
output_sheet.write(r, price_col, float(row['采购单价']), price_style)
# 生成输出文件名
# 生成输出文件名,保存到data/result目录
timestamp = datetime.now().strftime("%Y%m%d%H%M%S")
output_file = os.path.join(self.output_dir, f"合并采购单_{timestamp}.xls")
result_dir = "data/result"
os.makedirs(result_dir, exist_ok=True)
output_file = os.path.join(result_dir, f"合并采购单_{timestamp}.xls")
# 保存文件
output_workbook.save(output_file)
@@ -443,4 +450,4 @@ class PurchaseOrderMerger:
self.merged_files[file_path] = output_file
self._save_merged_files()
return output_file
return output_file
+5 -3
View File
@@ -671,9 +671,11 @@ class ExcelProcessor:
logger.warning("未提取到有效商品信息")
return None
# 生成输出文件名
# 生成输出文件名,保存到data/result目录
file_name = os.path.splitext(os.path.basename(file_path))[0]
output_file = os.path.join(self.output_dir, f"采购单_{file_name}.xls")
result_dir = "data/result"
os.makedirs(result_dir, exist_ok=True)
output_file = os.path.join(result_dir, f"采购单_{file_name}.xls")
# 填充模板并保存
if self.fill_template(products, output_file):
@@ -944,4 +946,4 @@ class ExcelProcessor:
except Exception as e:
logger.warning(f"解析规格'{spec_str}'时出错: {e}")
return None
return None