在Excel中将Excel文件导入到SQL Azure

我已经阅读过这样的问题(在64bit支持Jet.OLEDB吗?)和SSO中的这个 (需要预置MSSQL),但是我还没有遇到适合我的正确解决scheme。

我在Azure虚拟机中有一些excel文件(xlsx),我想将所有这些文件都推送到Azure中的SQL数据库。 这将是一个重复的任务,(文件来源,并推到数据库) – 需要每天执行。

我打算使用这种方法 –

当前解决scheme

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

上述方法的问题是 – 它需要时间来编写和testing不同模式的excel文件。 我正在查看是否有其他选项可以避免自定义代码。 请注意,这里没有内部参与(所以我认为没有SSIS,没有BCP(?)等)。 这不是一次性迁移的活动。

其他选项?

1) 访问数据库引擎? :可以使用“Access数据库引擎”( 2010或2013 ?)读取excel文件而不是openXML或其他工具? 它似乎是在64位环境中Jet.OLEDB的替代品。 但是我不确定这个支持是否优于2007格式,如果这个工作只是读取excel文件(没有创build,操作),为什么要selectOpenXml SDK / NPOI / EPPlus?

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

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

感谢来自社区的想法。

根据我的经验,选项2将是最务实的。 无论您是想使用ExcelDataReader这样的库打开Excel文档还是以编程方式将文件首先转换为CSV并将其作为分隔文件读取,都是一个优先select/熟悉的问题。 无论哪种方式,BCP是使用自定义代码将数据导入SQL数据库的相对直接的方式。