如何将数据从Excel中推送到SQL Server?

我写了一个简单的ASP.NET MVC 2应用程序来存储数据,并可以使用Microsoft的openXML for excel文件dynamic创buildexcel文件。

什么是最好的方式来推动用户在Excel中的更改到我的数据库? 我知道这可以通过file upload完成,但这对于最终用户导航到我的网站,select上传,然后select他们的文件是相当强大的。

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

Web服务与MVC体系结构一起工作吗? 我如何获得启用vbamacros的文档自己发送到服务器?

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

  • 需要确保这种情况发生在后台,并且必须是asynchronous任务。
  • 还需要确保它没有给予任何其他用户的直接执行访问权限

我假设这是一个特定的用户。 我做了一些非常类似于你之前描述的东西。

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

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

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

有关上传表单的更多信息,请参阅: http : //haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx

有关VBA和InternetExplorer.Application对象的更多信息,请参阅: http://www.motobit.com/tips/detpg_uploadvbaie/