【问题标题】:Data Import - Excel to SQL Azure? [closed]数据导入 - Excel 到 SQL Azure? [关闭]
【发布时间】:2013-03-18 17:43:35
【问题描述】:

是否有任何可用的工具可以轻松地将数据从 Excel 工作表(甚至 Access)导入 SQL Azure?我可以编写一个 C# 脚本(我假设这是目前最好的),但我想我会检查以防万一还有其他工具。我有一个简单的 Excel 表要导入,但它有数万条记录,我宁愿用自动化工具来做。

帮助?

【问题讨论】:

  • 根据documentation,SSIS 和 bcp 都支持。你看过了吗?
  • 不是基于控制台的工具吗?我想我希望有 GUI 的东西
  • bcp 是一个命令行工具,SSIS 包是在 Visual Studio 中开发的。它们是否“易于”使用取决于谁在使用它们;它们并非旨在成为最终用户工具。
  • 你在运行 Visual Studio 吗?
  • 是的,我很确定我也安装了 SSIS。我将不得不再玩一些,但我不记得它是我在 VS 中拥有的最稳定的插件

标签: c# sql-server excel azure-sql-database


【解决方案1】:

您还可以使用 SQL Server 导入和导出数据(32 位)将数据从 excel 文件传输到 sql azure 上的表。它非常快。 确保在选择目标时,它是 SqlServer 的 .Net Framework 数据提供程序。您还必须设置数据源、用户 ID、密码和初始目录属性。

【讨论】:

  • 如果我能以一千票赞成,我会的。
【解决方案2】:

选项 1,复制和粘贴

这是一个非常粗略的解决方案,但我以前使用过它,诚然,它的数据量较小。只需在 Excel 中选择行和列,确保它们与您的数据库表架构相关。复制到剪贴板。在 Visual Studio 中打开与数据库的连接,选择最后一个空行并粘贴。

就像我说的那样,这是一个非常粗略的解决方案,但如果它有效并且可以节省您的时间,那才是最重要的。首先尝试选择少量行,不要忘记排除任何自动递增的列。如果您首先转换为 CSV,您将取消任何可能无法导入表架构的 Excel 格式。老实说,我不知道这种方法如何处理更大的数据集,显然它将取决于 Excel 文档中的数据、列数等。您可能需要分块移动数据,但很可能是比其他方法更快。

选项 2,CSV 转 DataTable

第二种方法需要一些编码,但可以让您更好地控制数据如何映射到数据表。它基本上涉及将文档从 Excel 转换为 CSV,读入循环行的 DataTable 对象并插入到 SQL 数据库表中。

Dim dt As DataTable = New DataTable("myData")
Dim DataFile As FileInfo = New FileInfo("c:\myspreadsheet.csv")

Dim MyConnection As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & DataFile.Directory.FullName & "';Extended Properties='text;HDR=NO';Jet OLEDB:Engine Type=96;")
Dim oledataAdapter As OleDbDataAdapter
oledataAdapter = New OleDbDataAdapter("SELECT * FROM [" & DataFile.Name & "]", MyConnection)

oledataAdapter.Fill(dt) 'Bind the csv to the data table

'LOOP AND INSERT HERE...
For Each DataRowObj As DataRow In dt.Rows

Next

【讨论】:

  • Azure 是否支持 Jet.OLEDB(我猜它全是 64 位)?
  • 很有可能,但如果不是,我猜你可以使用 LumenWorks CSV 库。它在 Nuget 上可用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2018-03-09
  • 2014-05-10
  • 2015-10-15
  • 2010-10-20
相关资源
最近更新 更多