是否有任何可用的工具可以轻松地将数据从 Excel 工作表(甚至 Access)导入 SQL Azure?我可以编写一个 C# 脚本(我假设这是目前最好的),但我想我会检查以防万一还有其他工具。我有一个简单的 Excel 表要导入,但它有数万条记录,我宁愿用自动化工具来做。
帮助?
是否有任何可用的工具可以轻松地将数据从 Excel 工作表(甚至 Access)导入 SQL Azure?我可以编写一个 C# 脚本(我假设这是目前最好的),但我想我会检查以防万一还有其他工具。我有一个简单的 Excel 表要导入,但它有数万条记录,我宁愿用自动化工具来做。
帮助?
您还可以使用 SQL Server 导入和导出数据(32 位)将数据从 excel 文件传输到 sql azure 上的表。它非常快。确保在选择目标时,它是 SqlServer 的 .Net Framework 数据提供程序。您还必须设置数据源、用户 ID、密码和初始目录属性。
选项 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