【问题标题】:How to import Excel document programmatically into Azure SQL table?如何以编程方式将 Excel 文档导入 Azure SQL 表?
【发布时间】:2014-09-06 15:20:29
【问题描述】:

我们的 ASP.NET Web 应用程序允许用户从 Excel 导入数据。我们目前托管在我们自己的服务器上,因此可以从 Web 服务器和 SQL 服务器访问文件系统。该过程目前的工作方式如下:

  1. 将上传的文件保存到服务器上的临时文件夹
  2. 执行T-SQL,通过OLEDB将上传的文件直接从文件系统读取到SQL临时表中
  3. 执行 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


    【解决方案1】:

    我会看一下来自 ComponentOne 之类的商业 Excel 组件之一。将电子表格的内容读入内存,然后使用标准 ADO.Net 技术将其写入 Azure SQL 数据库。

    这可能会更可靠,您可以使用重试逻辑来处理暂时性故障 (http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/transient-fault-handling)。

    请注意,您需要了解 Azure SQL 数据库中的限制行为以及它可能如何影响您的应用:http://msdn.microsoft.com/en-us/library/azure/dn338079.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-12
      • 1970-01-01
      • 2014-11-11
      • 2019-06-10
      • 2014-04-07
      • 1970-01-01
      • 2010-09-07
      相关资源
      最近更新 更多