我们的ASP.NET Web应用程序允许用户从Excel导入数据。我们目前托管在我们自己的服务器上,因此可以从Web服务器和SQL服务器访问文件系统。该工艺目前是这样的:如何以编程方式将Excel文档导入到Azure SQL表中?
- 保存上传的文件到临时文件夹在服务器上
- 执行T-SQL来从文件系统到SQL临时表通过OLEDB
- 执行T-直接读取上传的文件根据需要SQL读取从临时表和处理数据(例如,比较现有的数据和更新/插入适当的)
第2步看起来是这样的:
Select * into #MY_TEMP_TABLE
From OpenRowSet(
'Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=PATH_TO_MY_UPLOADED_FILE; HDR=YES',
'Select * From MY_WORKSHEET_NAME%')
与(例如)使用EPPlus将文件读入.NET数据表,然后逐行插入数据相比,这是非常快速和直接的。
我们正在开发Azure应用程序(Azure网站和SQL数据库,而不是VM)。我们可以将文件上传到blob存储并将其内容写入一个字节数组中,但之后我们仍然使用逐行处理方法,这种方法很慢并且很脆弱。
有没有一种快速的方式来以编程方式批量上传Excel到Azure中的SQL?