feat:解析新文件
This commit is contained in:
37
main.py
37
main.py
@@ -21,7 +21,8 @@ import process_cash_flow
|
||||
# ==================== 公司配置 ====================
|
||||
# 方式1: 直接在此处配置公司名称(对应 input 和 config 下的文件夹名)
|
||||
# 方式2: 在项目根目录的 config.json 中配置 "company": "公司名",会覆盖此处配置
|
||||
COMPANY_NAME = "泡泡玛特"
|
||||
# COMPANY_NAME = "泡泡玛特"
|
||||
COMPANY_NAME = "宁德时代"
|
||||
|
||||
|
||||
def get_company_name(script_dir):
|
||||
@@ -128,14 +129,14 @@ def process_file(file_path, file_type, config_dir):
|
||||
return None
|
||||
|
||||
|
||||
def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_file, company_name):
|
||||
def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, profitability_df, output_file, company_name):
|
||||
"""
|
||||
将资产负债表、利润表和现金流量表合并到一个 Excel 文件的不同 Tab 页
|
||||
将资产负债表、利润表、现金流量表、盈利能力表合并到一个 Excel 文件的不同 Tab 页
|
||||
"""
|
||||
print(f"\n{'='*60}")
|
||||
print(f"合并 Excel 文件")
|
||||
print(f"{'='*60}")
|
||||
|
||||
|
||||
with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
|
||||
if balance_sheet_df is not None:
|
||||
balance_sheet_df.to_excel(
|
||||
@@ -145,7 +146,7 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f
|
||||
header=False
|
||||
)
|
||||
print(f"✓ 已添加【资产负债表】Tab,共 {len(balance_sheet_df)} 行")
|
||||
|
||||
|
||||
if income_statement_df is not None:
|
||||
income_statement_df.to_excel(
|
||||
writer,
|
||||
@@ -154,7 +155,7 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f
|
||||
header=False
|
||||
)
|
||||
print(f"✓ 已添加【利润表】Tab,共 {len(income_statement_df)} 行")
|
||||
|
||||
|
||||
if cash_flow_df is not None:
|
||||
cash_flow_df.to_excel(
|
||||
writer,
|
||||
@@ -163,7 +164,16 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f
|
||||
header=True # 现金流量表保留列名
|
||||
)
|
||||
print(f"✓ 已添加【现金流量表】Tab,共 {len(cash_flow_df)} 行")
|
||||
|
||||
|
||||
if profitability_df is not None:
|
||||
profitability_df.to_excel(
|
||||
writer,
|
||||
sheet_name='盈利能力',
|
||||
index=False,
|
||||
header=False # 表头已写在 DataFrame 第一行
|
||||
)
|
||||
print(f"✓ 已添加【盈利能力】Tab,共 {len(profitability_df)} 行")
|
||||
|
||||
print(f"\n合并完成!输出文件: {output_file}")
|
||||
|
||||
|
||||
@@ -241,7 +251,8 @@ def main():
|
||||
balance_sheet_df = None
|
||||
income_statement_df = None
|
||||
cash_flow_df = None
|
||||
|
||||
profitability_df = None
|
||||
|
||||
# 处理资产负债表
|
||||
if 'balance' in files_by_type:
|
||||
try:
|
||||
@@ -263,6 +274,15 @@ def main():
|
||||
'income_statement',
|
||||
config_dir
|
||||
)
|
||||
# 从利润表原始文件构建「盈利能力」Tab
|
||||
try:
|
||||
profitability_df = process_income_statement.build_profitability_df(
|
||||
str(files_by_type['income'])
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"⚠️ 构建盈利能力表时出错: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
except Exception as e:
|
||||
print(f"❌ 处理利润表时出错: {e}")
|
||||
import traceback
|
||||
@@ -305,6 +325,7 @@ def main():
|
||||
balance_sheet_df,
|
||||
income_statement_df,
|
||||
cash_flow_df,
|
||||
profitability_df,
|
||||
str(output_file),
|
||||
company_name
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user