diff --git a/.gitignore b/.gitignore index 776dadc..d0c282a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ dist log *.spec temp +.env # Claude 临时文件 .claude/ diff --git a/extract_vba.py b/extract_vba.py index fb93707..aa832dd 100644 --- a/extract_vba.py +++ b/extract_vba.py @@ -11,11 +11,17 @@ import re from pathlib import Path from typing import Dict, List, Tuple, Optional +# 加载 .env 配置文件 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + print("警告: 未安装 python-dotenv 库,将使用默认配置") + print("建议运行: pip install python-dotenv") + # ==================== 配置区域 ==================== -# 在此配置要处理的xlsm文件路径 -# 支持相对路径(相对于脚本所在目录)或绝对路径 -# 留空或设为None则使用交互模式(自动查找Excel文件夹) -TARGET_XLSM_FILE = r"C:\Users\Administrator\Desktop\新BOM\AutoBOM\YTHN-100.A0.532-BOM-1.2版 Claude.xlsm" # 例如: r"Excel\myfile.xlsm" 或 r"D:\path\to\file.xlsm" +# 从 .env 文件读取配置,如果未设置则使用 None(交互模式) +TARGET_XLSM_FILE = os.getenv("TARGET_XLSM_FILE", "").strip() or None # ================================================= # VBA项目相关常量 diff --git a/import_vba.py b/import_vba.py index 61bb989..09848a5 100644 --- a/import_vba.py +++ b/import_vba.py @@ -13,6 +13,14 @@ import tempfile from pathlib import Path from typing import Dict, Any +# 加载 .env 配置文件 +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + print("警告: 未安装 python-dotenv 库,将使用默认配置") + print("建议运行: pip install python-dotenv") + try: import win32com.client as win32 except ImportError: @@ -21,11 +29,8 @@ except ImportError: sys.exit(1) # ==================== 配置区域 ==================== -# 在此配置元数据文件路径(vba_metadata.json) -# 支持相对路径(相对于脚本所在目录)或绝对路径 -# 元数据文件包含 VBA 代码的映射信息,导入器会根据此文件将代码导入到对应的 xlsm 文件中 -# 留空或设为None则使用默认模式(自动查找脚本所在目录下的VBA文件夹) -TARGET_METADATA_FILE = r"C:\Users\Administrator\Desktop\新BOM\AutoBOM\VBA\vba_metadata.json" # 例如: r"VBA\vba_metadata.json" 或 r"D:\path\to\vba_metadata.json" +# 从 .env 文件读取配置,如果未设置则使用 None(默认模式) +TARGET_METADATA_FILE = os.getenv("TARGET_METADATA_FILE", "").strip() or None # ================================================= # 常量定义 diff --git a/requirements.txt b/requirements.txt index 2baecf2..b90e3d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,6 @@ pywin32>=306; sys_platform == 'win32' # olevba库方法 - 不需要Excel oletools>=0.60 + +# 环境变量管理 +python-dotenv>=1.0.0