在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数据库的相对直接的方式。
- C#Azure文件存储CloudFile.OpenWrite与OpenXml.SpreadsheetDocument问题…需要FileMode和FileAccess选项?
- 如何在Azure上运行excel?
- VSTO是否在Windows Azure上运行?
- 在Azure上使用Excel
- Ajax请求添加到Excel的Azure ASP.net Web服务中
- Server.MapPath访问被拒绝在Azure上
- 尝试从Mac Excel 2016连接到Azure SQL Server时发生ODBC“无效连接string”
- 从networking上的Excel文件中获取数据
- Excelparsing使用NuGet NPOI使用ASP.Net核心2.0