【发布时间】:2014-09-06 15:20:29
【问题描述】:
我们的 ASP.NET Web 应用程序允许用户从 Excel 导入数据。我们目前托管在我们自己的服务器上,因此可以从 Web 服务器和 SQL 服务器访问文件系统。该过程目前的工作方式如下:
- 将上传的文件保存到服务器上的临时文件夹
- 执行T-SQL,通过OLEDB将上传的文件直接从文件系统读取到SQL临时表中
- 执行 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?
【问题讨论】:
标签: c# asp.net excel azure azure-sql-database