将Excel导入SQL时,保留前导零

在将数据导入SQL数据库之前,我的办公室使用Excel来准备数据。 但是,我们遇到了以下错误。

从一台计算机导入数据时,将丢失所有前导零。 但是,从其他计算机导入时,它会完美导入。

前导零的一个例子是我们的产品号码需要被格式化为“001,002,003,010,011,012,… 100,101,102等”。

1)excel文件存储在服务器上,所以文件没有区别。 2)如果用户交换工作站,结果将停留在计算机上,不与用户交换。 3)数据被格式化为文本。 它已被格式化为数据选项卡和格式单元格的文本。

在Excel中是否有一个特定于计算机的设置,而不是影响导出数据的电子表格? 或者是否有一个非特定的具体设置,这将导致这个?

根据您需要的前导零的数量,您可以在Excel中select您的数据/列,进入Excel >>格式>>自定义>>然后input您需要的许多零到types字段(即000000000为9位带前导零的数字),它将自动以前导零的正确数目使数字string的长度正确(即4000 = 00004000)。

请注意,这只适用于数字数据,而不适用于文本,但根据情况,以数字格式保留数据可能更有用 – 这是仅列出所列数字数据的示例,并且通常保留数字格式对于分析。

不知道在将数据插入数据库之前填充数据的好处是…(需要更多的空间,更慢的search等)。 听起来你正在格式化它的输出(?),这可能会更有效地完成其他地方。

但无论如何 – 这里是您的SELECT(sql)语句的一些想法:

RIGHT(1000 + [excel field], 3) 

或另一个会

 REPLICATE('0', 3 - LEN([excel field])) + [excel field] 

您可以对Excel字段本身执行的操作(在导入之前)以' (撇号) '作为前缀。 注意,如果您在Excel中键入0007 ,它将更改为7 ,但是如果键入'0007 ,它将保留前导零。

最好避免使用“TEXT”格式选项。 令人困惑的是,它不强制单元格的内容为文本数据types,并且当公式引用“TEXT”格式时会造成严重破坏。

要添加到以前的答案(所有的注意事项,如果这是一个好主意),您可以使用TEXT工作表函数

 =TEXT(A1,"000") 

以保证实际的文本string与前导零(如果需要的话)。

Interesting Posts