从Excel导入数据到SQL Server无法导入所有数据

使用“导入和导出数据”工具将数据从Excel导入到SQL Server时,发生了一件奇怪的事情。

简而言之,我可以在Excel中看到数据,但所有数据都不会导入。

我有一个Excel工作簿包含一个电子表格。 我可以看到列中的数据,一切都很好。 当我使用导入向导导入数据时,可以看到列和预览数据,但执行导入时数据不会全部转移。 没有错误,导入过程结束 – 它只是插入一堆空值到表中。

这似乎发生的最多的数字 – 所以,假设我有三列的名字,姓氏和身份证号码。 我会得到所有的名字和姓氏,以及一些身份证号码。 我无法find发生的事情的模式。

我之前曾经发生过这种情况,我注意到在导入过程中有两个电子表格可供select:DataImport和DataImport $ – 第一个将如上所述失败,第二个将无误地导入。 这一次只有一个电子表格可供select。

我主要在64位系统上使用XLS文档和32位导入向导,但我愿意尝试任何操作。

任何想法为什么有两个电子表格(有时),为什么这个导入会失败?

戴夫

您的问题的答案可能涉及如何将数据存储在Excel中。

我遇到了同样的问题。 我有一个列包含两种types的值:数字和数字与破折号。 (例如51000和2009-00949)我需要将它们导入为NVARCHAR或VARCHAR,但是SQL导入向导(SQL2005)只能导入数字而不导入数字,而不是使用破折号或带有破折号的数字而不是数字,这取决于哪个types在第一个logging中。 未导入的值在该字段中将具有“空”值,导致我的logging无用。

我尝试使用Excel(数字,文本,一般等)中的格式|单元格菜单选项和SQL(nvar,nvarchar,varchar,sqlvariant,float)中的各种映射选项没有成功。

解决scheme是使用Excel中的Data | Text To Columns选项,而不是单元格格式化选项将数值存储为文本。 当我在列上使用它时,数字值(例如51000)转换为以文本值forms存储的数字(左上angular出现绿色小三angular形错误),带有短划线的数字保留为文本。 我不得不以这种格式保留数据,出现绿色小三angular形错误,否则将无法成功导入到SQL中。 当列中的数据以这种格式存储时,两种types的列数据(带短划线的数字和数字)与其他logging数据正确导入,列中没有空值。

我的问题是,我正在导入的文件是一个较老的和有点恶意的Excel文件。 我打开文件并将其保存为.xlsx文件,然后导入成功,没有空数据。

我能够通过sorting数据来解决问题,使文本数据处于顶端。 这样SQL Server知道它是文本数据,而不是数字数据。

您正在使用导入向导,不是吗? 单击向导的“select源表和视图”页上的“ Edit Mappings ”,然后检查每个源列的“types”,“可为空”和“大小”列。 这听起来像是没有得到正确的映射。

最有可能的是,空白行导致Sql Server忽略其余的数据。 Bu确定你能分享excel文件的模式和前五行吗? 正确的三个和下两个logging。

select该列的所有行,并将types更改为Excel中的文本然后select整个列并将types更改为文本将肯定工作。

我也有这个问题。 我能解决它的唯一方法是将.xlsx文件保存为.csv文件,然后将.csv文件用于SQL Server“导入数据”。

看来Microsoft Excel和Microsoft SQL Server之间的集成将会更加清晰。

我的版本是:Excel 2013. SQL Server 2012。

我遇到完全相同的问题使用.xlsx文件解决了我的问题。

最后格式化单元格一般为我工作的地方有数字值,早些时候显示%s,但现在解决了。