56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
货币/汇率转换模板
|
||
将指定列的金额从一种货币转换为另一种货币
|
||
"""
|
||
|
||
import pandas as pd
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
def main():
|
||
# 参数配置
|
||
file_path = "{file}"
|
||
output_path = "{output}"
|
||
column = "{column}" # 要转换的列名
|
||
from_currency = "{from_currency}" # 原货币
|
||
to_currency = "{to_currency}" # 目标货币
|
||
rate = {rate} # 汇率(默认1,实际使用时需要提供)
|
||
|
||
# 读取文件
|
||
df = pd.read_excel(file_path)
|
||
|
||
if column not in df.columns:
|
||
print(f"错误: 列 '{column}' 不存在")
|
||
print(f"可用列: {list(df.columns)}")
|
||
sys.exit(1)
|
||
|
||
# 转换货币
|
||
original_values = df[column].copy()
|
||
df[column] = df[column] * rate
|
||
|
||
# 添加元数据列(可选)
|
||
if "{add_meta}" == "true":
|
||
df[f"{column}_original"] = original_values
|
||
df[f"{column}_rate"] = rate
|
||
df[f"{column}_currency"] = to_currency
|
||
|
||
# 保存结果
|
||
df.to_excel(output_path, index=False)
|
||
|
||
print(f"货币转换完成")
|
||
print(f"文件: {{file_path}}")
|
||
print(f"列: {{column}}")
|
||
print(f"从 {{from_currency}} 转换为 {{to_currency}}")
|
||
print(f"汇率: {{rate}}")
|
||
print(f"输出: {{output_path}}")
|
||
|
||
# 显示统计信息
|
||
print(f"\n转换统计:")
|
||
print(f" 总行数: {{len(df)}}")
|
||
print(f" 原始总和: {{original_values.sum():.2f}} {{from_currency}}")
|
||
print(f" 转换后总和: {{df[column].sum():.2f}} {{to_currency}}")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|