基于 DuckDB 引擎的高效数据分析:
根据分析结果,由 AI 直接生成 Markdown 格式分析报告。
报告结构:
# {标题}
**数据来源**: {源文件}
**生成时间**: {时间}
---
## 洞察结论
- {关键发现1}
- {关键发现2}
- {业务建议}
## 关键指标
| 指标 | 数值 | 说明 |
|------|------|------|
| {指标1} | {值} | {说明} |
| {指标2} | {值} | {说明} |
## 数据概览
- **数据行数**: {行数}
- **数据列数**: {列数}
- **字段列表**: {字段1}, {字段2}, ...
## 分析查询
### 查询 1
{SELECT语句}
**结果**:
{结果表格或摘要}
---
*报告由 feishu-table-analytics 技能生成*
将报告保存为 {文件名}_report.md。
基于 Chart.js 生成自包含 HTML 可视化报告:
python scripts/main.py \
--url "https://xxx.feishu.cn/base/xxx" \
--table-name "员工列表" \
--output employees.csv
python scripts/main.py \
--url "https://xxx.feishu.cn/sheets/xxx" \
--output data.xlsx \
--format excel
# 完整统计(推荐)
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode describe
# 简单模式
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode describe --simple
# 导出分析报告
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode describe --output report.json
# 基础查询
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode query \
--sql "SELECT * FROM data LIMIT 10"
# 聚合分析
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode query \
--sql "SELECT department, COUNT(*) as count FROM data GROUP BY department"
# 抽样验证
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode query \
--sql "SELECT * FROM data WHERE salary > 10000" --sample_fraction 0.1
# 导出结果
python scripts/duckdb_analyzer.py --file_path ./employees.csv --mode query \
--sql "SELECT * FROM data" --output result.xlsx
3.1 AI 生成报告基础结构
根据分析结果,由 AI 生成 Markdown 报告(洞察、指标、概览、查询摘要),保存为 {源文件名}_report.md。
报告结构:
# {标题}
**数据来源**: {源文件}
**生成时间**: {时间}
---
## 洞察结论
- {关键发现1}
- {关键发现2}
- {业务建议}
## 关键指标
| 指标 | 数值 | 说明 |
|------|------|------|
| {指标1} | {值} | {说明} |
## 数据概览
- **数据行数**: {行数}
- **数据列数**: {列数}
- **字段列表**: {字段1}, {字段2}, ...
## 分析查询
### 查询 1
{SELECT语句}
**结果**: {结果摘要}
---
*报告由 feishu-table-analytics 技能生成*
3.2 追加完整数据明细
将分析结果中的完整表格数据追加到报告末尾:
python scripts/append_data_to_report.py \
--report analysis_report.md \
--data analysis_result.json \
--section "数据明细"
脚本会自动读取 JSON 数据,生成 Markdown 表格追加到报告(最多显示100行)。
当用户明确要求"生成报告"、"可视化"、"出图"或"制作图表"时执行此步骤。
根据分析结果构造 JSON 配置:
KPI 卡片(顶部关键指标):
[
{"label": "总营收", "value": "¥1,755,905", "sub": "全年累计", "color": "green"},
{"label": "订单数", "value": "200", "sub": "5 品类", "color": "blue"}
]
图表配置:
洞察结论(insights):
数据表格(tables):
{
"title": "销售明细",
"columns": ["category", "total_sales", "order_count"],
"data": [
{"category": "Electronics", "total_sales": 42938.24, "order_count": 120}
]
}
python scripts/generate_report.py \
--title "数据分析报告" \
--subtitle "数据来源:employees.csv" \
--data '{"kpis": [...], "charts": [...], "insights": "...", "tables": [...]}' \
--output report.html
完整分析流程:
duckdb_analyzer.py --mode describe 了解数据结构输出产物:
| 参数 | 必填 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
--url | 是 | 飞书表格URL |
--table-name | 多维表格必填 | 数据表名称 |
--output | 是 | 输出文件路径 |
--format | 否 | 导出格式:csv或excel |
--no-record-id | 否 | 不包含record_id字段 |
| 参数 | 必填 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
--file_path | 是 | 数据文件路径 |
--mode | 是 | describe/query |
--sql | query模式必填 | SQL查询语句 |
--sample_fraction | 否 | 抽样比例(0-1) |
--output | 否 | 结果导出路径 |
--excel_sheet | 否 | Excel工作表名称 |
| 参数 | 必填 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
--report | 是 | MD 报告文件路径 |
--data | 是 | 分析结果 JSON 文件路径 |
--section | 否 | 章节标题,默认"数据明细" |
| 参数 | 必填 | 说明 |
|---|---|---|
| ------ | ------ | ------ |
--title | 是 | 报告标题 |
--data | 是 | JSON字符串,含kpis/charts/tables/insights |
--subtitle | 否 | 副标题 |
--output | 否 | 输出HTML文件路径,默认report.html |
--footer | 否 | 页脚文字 |
npm install -g @larksuite/cli
lark-cli config init --new
scripts/main.py 执行(内部封装了lark-cli调用)scripts/duckdb_analyzer.py 执行,禁止手动编写 Python 代码处理数据scripts/append_data_to_report.py 将完整数据追加到报告scripts/generate_report.py 执行(可选)| 类型 | 用途 | 配置示例 |
|---|---|---|
| ------ | ------ | ---------- |
| bar | 柱状图(分类对比) | {"type": "bar", "labels": [...], "datasets": [{"data": [...]}]} |
| horizontalBar | 水平柱状图(排名) | {"type": "horizontalBar", "labels": [...], "datasets": [{"data": [...]}]} |
| line | 折线图(趋势) | {"type": "line", "labels": [...], "datasets": [{"data": [...]}]} |
| doughnut/pie | 环形/饼图(占比) | {"type": "doughnut", "labels": [...], "datasets": [{"data": [...]}]} |
| radar | 雷达图(多维度) | {"type": "radar", "labels": [...], "datasets": [{"data": [...]}]} |
describe 模式了解数据结构--sample_fraction 验证共 1 个版本