【发布时间】:2013-04-18 17:38:09
【问题描述】:
我有一个 SQL Server 2012 数据库,我需要从该数据库构建带有图表的每日自动报告。创建图表的最佳解决方案是什么?
我正在考虑使用 C# 和 Excel 自动化所有内容,但我希望会有更好/更简单的解决方案。
谢谢
【问题讨论】:
标签: c# sql-server reporting sql-server-2012
我有一个 SQL Server 2012 数据库,我需要从该数据库构建带有图表的每日自动报告。创建图表的最佳解决方案是什么?
我正在考虑使用 C# 和 Excel 自动化所有内容,但我希望会有更好/更简单的解决方案。
谢谢
【问题讨论】:
标签: c# sql-server reporting sql-server-2012
我会谦虚地推荐我公司编写的 Web 和数据框架(它是免费的、开源的和公共领域的),名为 PowerShell Pipeworks。这使您可以使用如下代码绘制图表:
Select-Sql -TableName DBTable | Out-Html -AsBarGraph
它还有一个 cmdlet,Start-At,可以正常运行,所以你的脚本类似于
Start-At -Time "9:00 AM" -Everyday -ScriptBlock {
Select-Sql -TableName DBTable -ConnectionStringOrSetting SqlConnectionSecretSetting | Select-Object @{Name='DisplayedProperty';Expression={$_.CalculatedValue} | Out-Html -AsBarGraph |New-WebPage -UseJQueryUI | Set-Content $pathToHtmlFile
}
【讨论】:
您可以从命令行使用sqlchart 绘制任何sql 查询图表。例如这会生成一个 730x250 的 .png 文件:
sqlchart -D stockdb -P 1433 -servertype mssql -host localhost -e "select * from ohlc where sym='AMZN' AND (date > CURDATE()-60)" -o amazon-candlestick-dark.png --chart candlestick --height 250 --width 730 --theme dark
然后,您可以使用标准脚本语言将其附加到电子邮件中。在 linux 上发送电子邮件的说明是 here
【讨论】:
您可以尝试使用 C# 从 SQL 获取数据,然后使用 Create Excel (.XLS and .XLSX) file from C# 中的库生成图形(我自己之前使用 EPPlus 生成图形)。这两个步骤都非常简单和标准。
【讨论】:
在 SSRS 中安装和设计报告 - 按计划通过电子邮件发送/存储它们。
Powershell 也是一个选项,如果您需要有关 Powershell 的更多详细信息,请告诉我。
【讨论】:
如果您想要“包含电池”的解决方案,您可以尝试DBxtra,它可以从 SQL Server 和其他数据库创建报告,并使用 Schedule Server 选项自动导出或通过电子邮件发送。
【讨论】:
以下是有关 powershell 解决方案的详细信息:
【讨论】:
试试 Grafana。您也可以将其链接到 SQL 数据库。 https://grafana.com/
【讨论】: