2011-11-07 64 views
1

我已经编写了一个简单的ASP.NET MVC 2应用程序来存储数据,并可以使用Microsoft的openXML for excel文件动态创建excel文件。如何将数据从excel推送到SQL Server?

什么是推动用户在Excel中改变我的数据库的最佳方式是什么?我知道这可以通过文件上传来完成,但这对于最终用户导航到我的站点,选择上传,然后选择他们的文件而言颇为突出。

有没有办法使用VBA从Excel文件中进行1次单击发布? VBA可以直接与数据库交互,但从数据安全角度看,这似乎是危险的,并且逻辑重复。

Web服务与MVC体系结构一起工作吗?如何获得启用vba宏的文档将其自身发送到服务器?

+0

你是认真的 - 这将自身发送的文件?那将是一个巨大的安全问题! – Yahia

+0

@Yahia如何?是不是只是通过他们的网络浏览器和网站自动上传文件? – James

+1

为了上传成功,您需要在服务器上进行身份验证,这意味着此信息以某种方式内置于VBA中......您可以尝试使用“一次性令牌”或类似的方式 – Yahia

回答

0

对于那些寻找修补程序的人,我最终使用了vba的InternetExplorer.Application object并与我的网站上的上载表单进行交互。

对于上传表单上详细信息请查看: http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx

有关VBA的详细信息和InternetExplorer.Application对象退房: www.motobit.com/tips/detpg_uploadvbaie/

+0

如果您有答案问题,即使你自己回答,你也应该将其标记为答案:) – JimmyPena

0

您可以看看Sql服务器集成服务,以便将数据批量上传到sql server。一旦创建的集成服务可以使用普通的c#桌面程序或使用Windows服务运行。 但你可能

  • 需要确保这种情况发生在后台将不得不 异步任务。
  • 还需要确保它不给直接执行任何其他用户
0

我假定这是一个特定的用户访问正确固定 。我做了一些与你之前描述的东西非常相似的东西。

告诉用户将excel文件保存在他们的DropBox中并与您共享文件。 让服务器监听对此文件的更改并运行服务器端例程以导入数据。

免责声明:这不是一个安全的解决方案,但它很容易,将完成工作。

相关问题