【发布时间】: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 数据库引擎”(2010 或2013?)而不是 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