本文目录导读:

- Python 脚本(最灵活,适合复杂数据处理)
- SQL 脚本(适合数据库管理员)
- Shell + 命令行工具(轻量级,适合Linux服务器)
- 专业报表工具(低代码/可视化)
- 企业级一站式自动化方案(推荐尝试)
- 总结建议
Python 脚本(最灵活,适合复杂数据处理)
Python 是生成报表的首选,配合 pandas(数据处理)和 openpyxl / xlsxwriter(Excel写入)或 matplotlib / plotly(图表)。
从 CSV/数据库生成 Excel 报表
场景:每日从数据库导出数据,自动生成格式化的销售/运营报表。
import pandas as pd
from datetime import date, timedelta
# 1. 读取数据 (假设CSV,也可以是数据库)
yesterday = date.today() - timedelta(days=1)
df = pd.read_csv(f'report_{yesterday}.csv')
# 2. 数据清洗与统计
summary = df.groupby('部门').agg({
'销售额': 'sum',
'订单数': 'count'
}).reset_index()
# 3. 写入Excel,并设置格式
with pd.ExcelWriter(f'日报_{yesterday}.xlsx', engine='openpyxl') as writer:
summary.to_excel(writer, sheet_name='汇总', index=False)
# 可以写入多个sheet:原始数据、图表数据等
print(f"报表已生成:日报_{yesterday}.xlsx")
带图表的自动化周报
场景:生成带折线图和饼图的周报。
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_sql('SELECT * FROM weekly_sales', connection)
# 生成图表
plt.figure(figsize=(10,6))
plt.plot(df['日期'], df['收入'], marker='o')
plt.savefig('weekly_chart.png')
# 写入Excel时嵌入图片
from openpyxl import Workbook
from openpyxl.drawing.image import Image
wb = Workbook()
ws = wb.active
ws['A1'] = '周报自动生成'
img = Image('weekly_chart.png')
ws.add_image(img, 'C1')
wb.save('周报.xlsx')
邮件自动发送报表
场景:脚本生成后自动发送给团队。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
# 附件就是上面生成的report.xlsx
msg = MIMEMultipart()
with open('report.xlsx', 'rb') as attachment:
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment', filename='日报.xlsx')
msg.attach(part)
# 发送(使用公司的SMTP服务器)
server = smtplib.SMTP('smtp.company.com')
server.sendmail('from@company.com', ['manager@company.com'], msg.as_string())
SQL 脚本(适合数据库管理员)
直接用 SQL 生成汇总表,并导出为 CSV(很多数据库工具支持自动导出)。
MySQL / PostgreSQL 生成周汇总
-- 将汇总结果插入统计表或直接导出
SELECT
DATE_FORMAT(order_date, '%Y-%u') AS 周数,
SUM(amount) AS 总销售额,
COUNT(DISTINCT user_id) AS 活跃用户
FROM orders
WHERE order_date >= CURDATE() - INTERVAL 7 DAY
GROUP BY 周数
INTO OUTFILE '/tmp/weekly_summary.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"';
存储过程自动生成日报表(SQL Server)
CREATE PROCEDURE GenerateDailyReport
AS
BEGIN
DECLARE @today DATE = GETDATE();
-- 插入到报表历史表
INSERT INTO ReportHistory (ReportDate, Metric, Value)
SELECT @today, '新注册用户', COUNT(*) FROM Users WHERE CreatedDate = @today;
-- 同时输出结果(可被调度任务捕获)
SELECT * FROM ReportHistory WHERE ReportDate = @today;
END;
Shell + 命令行工具(轻量级,适合Linux服务器)
使用 csvkit + awk 生成统计
#!/bin/bash
# 每天凌晨运行:从日志生成CSV报表
INPUT_FILE="/var/log/app/access.log"
OUTPUT_FILE="/reports/daily_report_$(date +%Y%m%d).csv"
# 统计状态码分布
grep "$(date +%Y-%m-%d)" $INPUT_FILE | awk '{print $9}' | sort | uniq -c | \
awk -v date=$(date +%Y-%m-%d) 'BEGIN{print "Date,Status,Count"} {print date","$2","$1}' > $OUTPUT_FILE
echo "Report generated: $OUTPUT_FILE"
使用 crontab 定时执行
# 每天上午8点运行Python脚本 0 8 * * * /usr/bin/python3 /scripts/generate_report.py # 每周一运行SQL导出 0 7 * * 1 psql -U dbuser -d dbname -f /sql/weekly_report.sql -o /reports/week.csv
专业报表工具(低代码/可视化)
如果不想写太多脚本,以下工具内置了强大的自动化机制:
| 工具 | 特点 | 适用场景 |
|---|---|---|
| Power BI / Tableau | 连接数据源后,自动刷新报表 | 企业级商业智能 |
| Google Data Studio | 免费,连接Google Sheets/数据库 | 团队协作,定期邮件 |
| Metabase | 开源,允许SQL查询并定时推送 | 中小公司内部数据 |
| Apache Superset | 支持复杂SQL,图表丰富,可定时导出 | 数据仓库报表 |
企业级一站式自动化方案(推荐尝试)
如果您希望零代码、开箱即用,可以采用 SeaTable 智能表格 这类工具:
- 脚本功能:内置 Python 运行环境,可编写脚本自动读取表格数据、生成统计表。
- 触发器:可设置“当新增记录时”自动运行脚本生成报表。
- 可视化:直接基于表格数据生成动态图表,无需写代码。
总结建议
- 个人 / 小型团队:首选 Python (pandas) + crontab,灵活且免费。
- 公司数据库管理员:使用 SQL 存储过程 + 定时任务。
- 非技术人员:考虑 Power BI / SeaTable 等可视化工具。
您目前需要处理的数据源是什么?是 Excel 文件、MySQL 数据库,还是 API 接口?告诉我具体场景,我可以为您提供更精确的 10-20 行核心脚本。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播