Install
openclaw skills install finance-report-analyzerAnalyze financial data from uploaded Excel/PDF files and generate interactive reports with sparkline trend charts. Supports output to PDF, DOCX, Markdown, and HTML. Use when: (1) User uploads Excel/CSV/PDF with financial data, (2) User asks for financial analysis or company report, (3) User wants visual reports from financial statements, (4) User mentions stock ticker + financial analysis, (5) User shares a Feishu sheet/doc link with financial data.
openclaw skills install finance-report-analyzerGenerate financial analysis reports from uploaded Excel/PDF files with inline SVG sparkline trend charts and multi-format output.
python3 scripts/generate_report.py input.xlsx -o pdf --company "公司名" --ticker "000001.SZ"
-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 |
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.xlsx
Get app credentials: read channels.feishu.appId/appSecret from openclaw.json.
Feishu Doc/Bitable link — Use feishu_doc/feishu_bitable tools
Local file — Use directly
Pasted text — Parse and save as xlsx
python3 scripts/generate_report.py /tmp/data.xlsx -o pdf \
--company "百济神州-U" --ticker "688235.SH" --output-dir /tmp/reports
Search for industry benchmarks:
web_search("{company} 行业对比 市场份额 {year}")
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\\\"}\"}"
See references/metrics.md for financial metric calculations.