关于 SSRS2
SSRS2 是面向 .NET 团队的 RDLC 报表引擎,可在多种平台上运行现有报表。它支持导出为文档、表格、演示文稿、网页和图像格式,并可检查报表定义。
主要功能
- 01跨平台渲染 RDLC
- 02导出 PDF、Excel、Word 和 PPTX
- 03输出 HTML 和图像
- 04检查报表定义
- 05支持 Report Viewer 式交互
适用场景
- 01在 Linux 或 Docker 上运行现有 RDLC 报表
- 02将报表导出为可编辑的 PowerPoint 幻灯片
- 03渲染前检查报表定义
MCP 相关
SSRS2.Mcp 为编码 Agent 提供本地检查和预览报表的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://ssrs2.net/mcpclaude mcp add --transport http antoinegou-ssrs2 https://ssrs2.net/mcp{"mcpServers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}在 Cursor 中打开{"servers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}在 VS Code 中打开{"mcpServers":{"antoinegou-ssrs2":{"type":"http","url":"https://ssrs2.net/mcp"}}}{"mcpServers":{"antoinegou-ssrs2":{"serverUrl":"https://ssrs2.net/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://ssrs2.net/mcp需要授权https://ssrs2.net/mcp/licensed工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| help | any | 否 | true,或主题 (["markdown", "decks"]):仅参考资料。 |
| name | string|null | 否 | 文件名,不含扩展名(默认值:Markdown 标题,否则为 report)。 |
| rdlc | string|null | 否 | 报表定义的 XML(RDL 或 RDLC)。请提供 rdlc 或 markdown。 |
| format | string|null | 否 | pptx(默认值)、pdf、docx、xlsx、mhtml、tiff、png、csv 或 xml。 |
| culture | string|null | 否 | 未指定 Language 时所用的报表区域设置(en-US、de-CH);省略时为 en-US。 |
| markdown | string|null | 否 | Markdown 文本:文档,或包含 marp: true 的幻灯片。请提供 rdlc 或 markdown。 |
| pictures | object|null | 否 | Markdown 中按路径指定的图片:{"images/chart.png": "<base64>"};每张最大 5 MB,总计 20 MB。 |
| parameters | object|null | 否 | 按名称提供报表参数值(多值参数以逗号分隔)。 |
| sampleData | any | 否 | 每个数据集的行:{"DataSet": [{"Field": value}]},日期使用 ISO 文本。省略时,根据字段类型生成虚拟数据。 |
详细介绍
SSRS2 — .NET 跨平台 RDLC 报表引擎
在任何平台上运行已有的 RDLC 报表:导出为 PDF、Excel、Word、HTML 和图像,布局方式与 Microsoft 的 Report Viewer 一致。
https://github.com/user-attachments/assets/66406aec-b92b-40cf-b031-2d506de34857
可直接替换 Microsoft Report Viewer 中的 LocalReport — 可在 Windows、Linux、macOS、Docker、Kubernetes 和云环境中运行。无需 GDI+ 或 libgdiplus:在 Linux 上只需要 fontconfig,大多数系统都已安装(官方 .NET Docker 镜像需要 libfontconfig1,详见下文)。
快速开始
dotnet add package SSRS2.NETCore
using SSRS2.Reporting.NETCore;
var report = new LocalReport();
report.LoadReportDefinition(rdlcStream);
report.DataSources.Add(new ReportDataSource("Data", yourData));
byte[] pdf = report.Render("PDF");
现有的 .rdlc 文件无需修改即可使用,只需更改命名空间,现有的 LocalReport 代码就能继续运行。
在 Linux 容器中添加 fontconfig,官方 .NET 镜像未包含此组件:
RUN apt-get update && apt-get install -y --no-install-recommends libfontconfig1 && rm -rf /var/lib/apt/lists/*
免费试用 — 无需许可证密钥即可使用。激活前,输出中会包含一个小型水印。
在 ssrs2.net/pricing 购买许可证:密钥会在一分钟内通过电子邮件发送。将其设置为SSRS2_LICENSE环境变量,或调用Ssrs2.License.Activate("your-key")。
在浏览器中试用 — 在线设计器(测试版)可打开
.rdlc文件,预览 SSRS2 在 Linux 上的渲染效果,并导出为 PDF、Excel 或 Word。无需安装;只有在线保存报表时才需要账户。
为什么选择 SSRS2?
Microsoft 的 Report Viewer 仅适用于 .NET Framework 和 Windows,且没有 .NET 8、9 或 10 版本(截至 2026-10-01 已核实)。Microsoft 建议改用 Power BI 分页报表,该功能包含在 Power BI Pro 中,费用为每位用户每月 14 美元。如果你已有 RDLC 报表,并需要在现代 .NET 上运行,可选方案有限:
| SSRS2 | ReportViewerCore(免费) | Power BI 分页报表 | |
|---|---|---|---|
| Linux / Docker | ✅ 包含 PDF 和图像支持(需 libfontconfig1) | ⚠️ HTML、Excel、Word | ❌ 仅限云端 |
| 无 GDI+ 依赖 | ✅ | ❌ System.Drawing | 不适用 |
| .NET 8 / 9 / 10 | ✅ | ✅ | 不适用 |
| .NET Framework 4.7.2+ | ✅ | ❌ | 不适用 |
| macOS / ARM64 | ✅ | ⚠️ 部分支持 | ❌ |
| 可自托管 | ✅ | ✅ | ❌ |
| 支持 | 需另行购买 | 社区 | Microsoft |
| 数据主权 | ✅ 在你的基础设施上 | ✅ | ❌ 云端 |
导出格式
| 格式 | 渲染字符串 | 扩展名 |
|---|---|---|
| PDF(含超链接) | "PDF" | |
| Excel | "EXCELOPENXML" | .xlsx |
| Word | "WORDOPENXML" | .docx |
| PowerPoint(可编辑幻灯片) | "PPTX" | .pptx |
| HTML5 | "HTML5" | .html |
| HTML 4.0 | "HTML4.0" | .html |
| MHTML | "MHTML" | .mhtml |
| PNG | "PNG" | .png |
| JPEG | "JPEG" | .jpg |
| WebP | "WEBP" | .webp |
| TIFF(所有页面) | "IMAGE" | .tif |
| CSV | "CSV" | .csv |
| XML | "XML" | .xml |
不止于渲染
- 无需运行即可检查报表:
report.CheckDefinition()会返回定义中的每个问题(代码、项、属性和表达式),而不渲染报表。 - 由应用程序之外编写的报表:
RestrictedCode = true会将表达式和自定义代码限制为只能使用报表计算所需的内容:不能访问文件、环境、进程或反射(.NET 8、9 和 10)。 - PDF 设置: 报表标题和作者、密码和权限(AES-256),或用于存档的 PDF/A-2b。
- 构建自己的查看器:
Toggle、Sort、FindBookmark、FindDocumentMapNode和Drillthrough可实现与 Report Viewer 控件点击操作相同的功能。 - AI 编码 Agent:
dnx SSRS2.Mcp为 Claude Code、Cursor 或 VS Code 提供工具,可在你的计算机上检查和预览它们编写的报表(SSRS2.Mcp)。
平台支持
| 平台 | 状态 |
|---|---|
| Windows x64 | ✅ |
| Linux x64 和 ARM64 | ✅ |
| macOS | ✅ |
| Docker 容器 | ✅ |
| Azure App Service(ssrs2.net 所在的平台) | ✅ |
.NET Framework 支持
| 框架 | 状态 |
|---|---|
| .NET Framework 4.7.2 | ✅ |
| .NET Framework 4.8 | ✅ |
| .NET 8.0 (LTS) | ✅ |
| .NET 9.0 | ✅ |
| .NET 10.0 | ✅ |
从 Microsoft ReportViewer 迁移
// Before (Microsoft Report Viewer — Windows only)
using Microsoft.Reporting.WinForms;
// After (SSRS2 — runs anywhere)
using SSRS2.Reporting.NETCore;
// Same API. Same RDLC files. Any platform.
var report = new LocalReport();
report.LoadReportDefinition(rdlcStream);
report.DataSources.Add(new ReportDataSource("Data", yourData));
byte[] pdf = report.Render("PDF");
按自己的节奏迁移 — SSRS2 支持 .NET Framework 4.7.2/4.8 和 .NET 8/9/10。今天即可在现有的 .NET Framework 应用中采用,准备就绪后再迁移到 .NET 10。
许可
SSRS2 是一款商业产品,提供免费试用(输出带水印)。
- 每家公司一个许可证:每年 799 美元,或三年 1,999 美元 — 不收取按席位或按服务计费的费用
- 开发者、应用、服务和渲染次数均不限:不统计任何用量,且许可证密钥可离线验证
- 每个许可证均包含所有功能,并可使用许可证有效期内发布的所有版本;对于这些版本,许可证密钥永久有效
- 不包含:支持、迁移协助和定制工作(需另行购买),以及在其他公司安装的软件中随附 SSRS2(需另购单独的再分发许可证)
请在 ssrs2.net/pricing 在线购买;许可条款 仅有一页。
资源
| 资源 | 链接 |
|---|---|
| 🌐 网站 | ssrs2.net |
| 🎮 在线演示 | ssrs2.net/demo |
| 🎨 在线设计器(测试版) | designer.ssrs2.net |
| 📖 迁移指南 | ssrs2.net/ssrs-to-dotnet-core |
| 📊 功能对比 | ssrs2.net/compare |
| 💰 定价 | ssrs2.net/pricing |
| 📝 Medium 文章 | SSRS 到 .NET Core:3 种方案对比 |
| 🤖 Medium 文章 | 使用 AI Agent 设计 SSRS 报表 |
| 📦 NuGet | nuget.org/packages/SSRS2.NETCore |
支持
| 渠道 | 用途 |
|---|---|
| GitHub Issues | Bug 报告和功能请求 |
| ssrs2.net | 文档和演示 |
| [email protected] | 许可证、支持或迁移协助(需另行购买) |
SSRS2 — 面向现代 .NET 的企业级报表
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。