Finance Report Analyzer
Analyze financial data from uploaded Excel/PDF files and generate interactive reports with sparkline trend charts. Supports output to PDF, DOCX, Markdown, an...
Like a lobster shell, security has layers — review code before you run it.
License
SKILL.md
Finance Report Analyzer
Generate financial analysis reports from uploaded Excel/PDF files with inline SVG sparkline trend charts and multi-format output.
Quick Start
python3 scripts/generate_report.py input.xlsx -o pdf --company "公司名" --ticker "000001.SZ"
Output Formats
-o flag controls output. HTML is always generated as the base; other formats convert from HTML.
| Flag | Output | Requires |
|---|---|---|
-o html | HTML only | (built-in) |
-o pdf | HTML + PDF (default) | wkhtmltopdf or chromium |
-o doc | HTML + DOCX | pandoc |
-o md | HTML + Markdown | pandoc or markdownify |
Workflow
Step 1: Acquire Data File
Try in order:
-
Feishu chat file attachment — Download via API:
# Get token TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \ -H 'Content-Type: application/json' \ -d '{"app_id":"APP_ID","app_secret":"APP_SECRET"}' | python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])") # Get file_key from message curl -s "https://open.feishu.cn/open-apis/im/v1/messages/{message_id}" -H "Authorization: Bearer $TOKEN" # Download curl -s "https://open.feishu.cn/open-apis/im/v1/messages/{message_id}/resources/{file_key}?type=file" \ -H "Authorization: Bearer $TOKEN" -o /tmp/data.xlsxGet app credentials: read
channels.feishu.appId/appSecretfrom openclaw.json. -
Feishu Doc/Bitable link — Use feishu_doc/feishu_bitable tools
-
Local file — Use directly
-
Pasted text — Parse and save as xlsx
Step 2: Generate Report
python3 scripts/generate_report.py /tmp/data.xlsx -o pdf \
--company "百济神州-U" --ticker "688235.SH" --output-dir /tmp/reports
Step 3: Web Search Enhancement (Optional)
Search for industry benchmarks:
web_search("{company} 行业对比 市场份额 {year}")
Step 4: Deliver File via Feishu API
The message tool may send paths as text. Use direct Feishu API to send real file messages:
# 1. Upload file to get file_key
UPLOAD=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/files' \
-H "Authorization: Bearer $TOKEN" \
-F 'file_type=stream' \
-F "file_name=report.html" \
-F "file=@/path/to/report.html")
FILE_KEY=$(echo "$UPLOAD" | python3 -c "import json,sys; print(json.load(sys.stdin)['data']['file_key'])")
# 2. Send file message to chat
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id' \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d "{\"receive_id\":\"CHAT_ID\",\"msg_type\":\"file\",\"content\":\"{\\\"file_key\\\":\\\"$FILE_KEY\\\"}\"}"
Report Features
- Sparkline trend charts: Each metric row has an inline SVG showing the trend (solid=actual, dashed=forecast)
- Forecast markers: Predicted values marked with ⟡ symbol and yellow background
- Color coding: Green=positive, Red=negative
- Responsive: Works on mobile and desktop
- Print-ready: CSS print styles included
Metric Definitions
See references/metrics.md for financial metric calculations.
Files
5 totalComments
Loading comments…
