如何将带有多行行的Excel文档导入SQL?

时间:2015-12-24 07:05:47

标签: sql-server excel vba excel-vba ms-office

我想将带有单个工作表的Excel工作簿导入SQL服务器,但在尝试导入和导出数据后,我发现源文档存在问题。我的excel文档是多行的,所以当我尝试导入该向导时,想要导入每列中的每一行,但我想用ID导入我的数据,并在一列中插入具有单个ID的每一行。 我怎么能这样做?

请查看我的示例图片,希望有助于理解我想要做的事情。 excel to sql problem

2 个答案:

答案 0 :(得分:0)

用bcp我们可以插入数据intotables使用以下查询
exec xp_cmdshell 'bcp MyTasks.dbo.emp out d:\f\yes.xls -T -c -U nagababu -P Test123 ' exec xp_cmdshell 'bcp "SELECT * FROM MyTasks.dbo.emp" queryout d:\f\PersonData_n.xls -c -S (local) -T -L 1' exec xp_cmdshell 'bcp MyTasks.dbo.emp format nul -c -t, -f d:\f\EmployeeData_n.xls -S (local) -T' 我们必须在从表格到表格中导入数据时使用而不是输出
用它来导入daata到表     exec xp_cmdshell 'bcp MyTasks.dbo.emp in d:\f\yes.xls -T -c -U nagababu -P Test123 '

答案 1 :(得分:0)

我会操纵excel数据以使其对数据库友好。为此,我将添加一个额外的工作表,并将数据从第一张表复制到新表。

然后,由于你想要col A中每一行的ID,我会将col A(新工作表中)中的值更改为复制第一张工作表中相同单元格的值的公式,除非它是空白在这种情况下,使用公式从单元格上方的单元格复制值。

类似于:=IF(ISBLANK(Sheet1!A2), A1, Sheet1!A2)

这将为您提供一列ID,每行都有一个值。导入和导出数据流程现在应该很愉快。