【问题标题】:Import Excel files to SQL Azure, within Azure在 Azure 中将 Excel 文件导入 SQL Azure
【发布时间】:2015-05-26 00:05:13
【问题描述】:

我在 SSO 中阅读了诸如this(64 位是否支持 Jet.OLEDB?)和this(需要本地 MSSQL)之类的问题,但我没有找到适合我的正确解决方案。

我在 Azure VM 中有一些 excel 文件 (xlsx),我想将所有这些文件推送到 Azure 中的 SQL 数据库。这将是一项重复性任务,(文件来自源并必须推送到数据库) - 需要每天执行。

我打算使用这种方法 -

当前解决方案 -

自定义代码:一个 .NET 应用程序,它使用 OpenXML SDK/NPOI/EPPlus 读取文件并手动将它们推送到 SQL 数据库(使用 .Net SQLBulkCopy)。应用在虚拟机中运行。

上述方法的问题在于 - 它需要时间来编码和测试不同模式的 excel 文件。我正在寻找是否有其他选项可以避免自定义代码。请注意,这里没有本地参与(所以我假设没有 SSIS,没有 BCP(?)等)。这不是一种一次性迁移活动。

其他选项?

1) Access 数据库引擎?:可以使用“Access 数据库引擎”(20102013?)而不是 openXML 或其他工具来读取 excel 文件吗?它似乎是 64 位环境中 Jet.OLEDB 的替代品。但我不确定这是否也支持 excel 2007 格式,如果工作只是读取 excel 文件(不创建、操作),为什么你会选择这个 vs OpenXml SDK/NPOI/EPPlus

2) Azure 中的 BCP?:BCP 可以在 Azure 中使用吗?不太确定这一点。如果是这样,将convertXLSX 转为 CSV 然后使用 BCP 上传到 SQL 数据库是否有意义,从而最大限度地减少我必须编写的代码量?

3) ExcelDataReader?:如果自定义代码是选项,ExcelDataReader 可以是跨平台的(我不需要跨平台能力)并且支持 XLS 和 XLSX。据说 ExcelDataReader 更快 - 但不确定与使用 OpenXML SDK 或 NPOI/EPPlus 等工具读取文件相比有多快

欣赏社区的想法。

【问题讨论】:

    标签: excel azure azure-sql-database openxml bcp


    【解决方案1】:

    根据我的经验,选项 2 将是最实用的。是否要使用 ExcelDataReader 之类的库打开 Excel 文档,或者先以编程方式将文件转换为 CSV 并作为分隔文件读取,这是一个偏好/熟悉的问题。无论哪种方式,BCP 都是使用自定义代码将数据导入 SQL 数据库的相对简单的方法。

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 2016-02-22
      • 2023-04-03
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2020-05-07
      相关资源
      最近更新 更多