数据导入 – Excel到SQL Azure?

是否有任何可用的工具,使从Excel工作表(甚至Access)的数据导入SQL Azure容易? 我可以编写一个C#脚本(我假设现在是最好的),但是我想我会检查是否有其他工具。 我有一个简单的Excel工作表导入,但它的成千上万的logging,而宁愿做一个自动化的工具。

帮帮我?

选项1,复制和粘贴

这是一个非常粗糙的解决scheme,但是我之前使用过,当然还有less量的数据。 只需在Excel中select行和列,确保它们与数据库表模式相关联。 复制到剪贴板。 在Visual Studio中打开与数据库的连接,select最后一个空行并粘贴。

就像我说的,一个非常粗糙的解决scheme,但如果它的工作,并节省您的时间,这是至关重要的。 先尝试一小排select,不要忘记排除任何自动递增的列。 如果您首先转换为CSV,则会将任何可能无法导入表格架构的Excel格式化。 我必须诚实地说,我不知道这个方法如何处理更大的数据集,显然这取决于Excel文档中的数据,列的数量等。您可能需要将数据以块的forms移动,但很可能比其他方法更快。

选项2,CSV到DataTable

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

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 

您还可以使用SQL Server导入和导出数据(32位)将数据从Excel文件传输到SQL Azure上的表。 这是非常快的。 确保当你select一个目的地时,它是SqlServer的.Net Framework数据提供者。 您将不得不设置数据源,用户ID,密码和初始目录属性。