从 LightSwitch HTML 客户端导出到 Excel
本文关键字:Excel 客户端 LightSwitch HTML | 更新日期: 2023-09-27 18:30:15
因为网络上的许多LightSwitch帖子都与已弃用的Silverlight桌面应用程序有关,而不是HTML 5客户端应用程序,我希望您能在这里帮助我正确了解当前的技术状态。
我的目标:
- 将数据从查询(处理参数)导出到相当复杂的(多个工作表,可能是预定义的图表)Excel电子表格
- 尽可能少的代码(意味着:我不关心开发数据流并构建 HTML 标头和类似的东西,但将其放在库中会很好)
- 可以使用模板并用数据填充它
- Visual Studio 2013 兼容
- 用户端无需额外安装:用户应该只能下载Excel文件
- 服务器/开发环境是 IIS 7、MS SQL Microsoft Visual Studio 2013
我发现:
- Office Integration Pack -> [NO GO] Stackoverflow post:它已针对 Web 浏览器应用程序弃用
- Microsoft报表查看器 ->看起来不错,但必须尝试一下以查看它是否适用于模板
- SQL Server Reporting Service ->只找到旧帖子,可能不是HTML客户端的最快选择
- Telerik Reporting -> [NO GO] 可能不再支持 HTML 客户端
- 活动报告示例 ->看起来正在积极开发,可能值得投资(它是商业的)
-
DevExpress -> 本来是我最喜欢的选择之一(据我所知),但它们不支持 LightSwitch HTML 客户端,而且似乎它们通常根本不继续支持 LightSwitch。
-
OpenXML ->令人印象深刻的开源项目,允许模板,需要一些编码工作,但看起来值得信赖
- SpreadsheetLight (基于 OpenXML)
- EPPlus(基于OpenXML)->没有找到任何LightSwitch示例,但在服务器端可能很好
我的想法:目前我正朝着OpenXML的方向发展:
- 活动项目
- 提供文档(最新示例)
- 阅读有关模板的某处
谢谢,如果您知道其他方法,或者让我知道是否有使用这些工具之一的经验。
问候斯派基
我使用过SQL报告服务,按照您的说法进行设置有点冗长,但是一旦有了它,它对于LightSwitch HTML非常有用
当您生成报告时,从 Lightswitch 本身 我使用以下代码将报告的确切版本下载为 PDF 格式。 这可以对 Excel 文件完成。 这只是在按钮的执行代码上
var InvoiceNum = screen.Invoice.InvoiceID;
window.open("http://yourservername/ReportServer_databasename/Pages/ReportViewer.aspx?%2fInvoice&rs:Command=Render&InvoiceID=" + InvoiceNum + "&rs:Format=PDF");
这将相关信息通过 Lightswitch 直接从数据库传递到报告。 删除此项: "&rs:Format=PDF");
如果您希望在浏览器窗口中查看报告。这样,您可以选择将报告保存为所需的任何格式。我想我会包括这个扩展思想,因为我发现它非常有用。
请务必注意,正如我发现的那样,/ReportServer_databasename
对于下载它们至关重要。 仅使用Reports_databasename
意味着末尾的扩展不起作用。
链接到文件扩展名:http://msdn.microsoft.com/en-gb/library/ms154040.aspx
希望这有帮助。
我找到了这篇博文(不是MSDN的成员,所以很遗憾无法投票)https://hgminerva.wordpress.com/2012/05/28/how-to-export-data-to-csv-using-microsoft-lightswitch-web-application/
它很好地解决了这个问题。这里也发布了一个更新的版本,用C#:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e5f0d29d-5133-4297-8d59-33a208bda903/removing-controlavailable-after-adding-controlavailable?referrer=http://social.msdn.microsoft.com/Forums/vstudio/en-US/e5f0d29d-5133-4297-8d59-33a208bda903/removing-controlavailable-after-adding-controlavailable?forum=lightswitch
第三个答案也解决了导出多个页面的小问题。
所有功劳都归功于 hgminerva 的原始 VB 和 Otis Ranger 的更新和 C# 版本