如何将 Excel 工作表上传到 Lightswitch Web 客户端中的 SQL 表?
Posted
技术标签:
【中文标题】如何将 Excel 工作表上传到 Lightswitch Web 客户端中的 SQL 表?【英文标题】:How do I upload an Excel sheet to a SQL table in a Lightswitch web client? 【发布时间】:2014-03-03 17:05:56 【问题描述】:我在 Visual Studio 2013 中有一个使用 vb.net 的电灯开关项目。我希望用户能够单击一个按钮并让 lightswitch 找到一个 excel 文件,并根据预先确定的列映射将该文件上传到 sql 表。
我的偏好是使用 Visual Studio 的 Office 集成扩展,我通过从以下链接下载它来使用 VS 2013:http://www.ge.tt/71iuRQv/v/0 但是,Office 集成的文档和示例对于将 excel 电子表格显示在 lightswitch Web 客户端的显示中似乎非常重要,而不是放入我需要的 sql 数据表中。以下是我一直在关注的示例: http://blogs.msdn.com/b/bethmassi/archive/2012/07/18/new-and-improved-office-integration-pack-extension-for-lightswitch.aspx
或者,我有一个现有的存储过程,我可以通过从客户端向服务器发送一个 Web API 扩展来请求服务器调用这个存储过程。根据 Beth Masi 和 Paul van Bladel 的示例,我已经为其他存储过程提供了此功能。 (*** 不允许我发布链接...)
这种方法的不利之处在于存储的过程很旧而且很乱。
我已经搜索和搜索,但还没有找到任何人使用灯开关解决 VS 2013 的这个问题。有什么有用的建议吗?
【问题讨论】:
【参考方案1】:我使用Matt Sampson 详述的方法来存储word文件,效果很好。由于它只存储原始二进制文件,因此它也可以处理 Excel 文件。
如果您在 LightSwitch 中创建表,请使用 Binary
类型。如果您使用 SQL 创建脚本,请使用 varbinary(MAX)
。
您需要创建自定义 Silverlight 对话框才能访问 OpenFileDialog
对象。然后以FileStream
的形式打开文件。
最后,您需要为控件的关闭方法添加一个处理程序,然后将控件显示给用户。最有可能在一个按钮中完成。这需要在主调度程序上完成。
代码示例是用 C# 编写的,但我只是使用了网络上众多可用的翻译器之一,并复制/粘贴了 VB.NET 代码。
【讨论】:
【参考方案2】:另一种选择可能是考虑使用 DTSEXEC 运行时执行 SSIS 包来执行上传 - 特别是如果目标 Excel 电子表格具有预定义的布局和内容数据类型。
更简单的是,您也许可以使用SQL Server BULK INSERT 命令来完成工作 - 尽管这需要 SQL 客户端连接到您的数据库。
HTH
【讨论】:
以上是关于如何将 Excel 工作表上传到 Lightswitch Web 客户端中的 SQL 表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 react.js 上传 Excel 工作表文件并将数据显示到表格中
需要 Id 才能在 gridview 中上传 excel 工作表