我的办公室在将数据导入SQL数据库之前使用excel来准备我们的数据。但是,我们一直在表达以下错误。
从一台计算机导入数据时,它会丢失所有前导零。但是,当从不同的计算机导入时,它会完美导入。
前导零的示例是我们的项目编号需要格式化为“001,002,003,... 010,011,012,... 100,101,102等”。
1)excel文件存储在服务器上,因此文件没有区别。 2)如果用户交换工作站,结果将保留在计算机上,并且不会与用户切换。 3)数据格式为文本。它已从“数据”选项卡和“格式单元格”格式化为文本。
excel中是否有特定于计算机的设置,而不是影响导出数据的电子表格?或者是否存在非特定的特定设置会导致此问题?
答案 0 :(得分:0)
在将数据插入数据库之前,不确定填充数据的好处是......(占用更多空间,搜索速度较慢等)。听起来你正在为输出(?)格式化它,这可能在其他地方更有效率。
但无论如何 - 这里有一些关于SELECT(sql)语句的想法:
RIGHT(1000 + [excel field], 3)
或另一个
REPLICATE('0', 3 - LEN([excel field])) + [excel field]
您可以对Excel字段本身执行的操作(在导入之前)使用'
(撇号)作为前缀。请注意,如果您在Excel中输入0007
,它会将其更改为7
,但如果您输入'0007
,则会保留前导零。
答案 1 :(得分:0)
根据您需要的前导零的数量,您可以在Excel中选择数据/列,进入Excel>>格式>>自定义>>在“类型”字段中键入您需要的多个零(即,对于带有前导零的9位数字,为000000000),它将自动以正确的前导零数作前缀,以使数字字符串具有正确的长度(即4000 = 00004000 )。
请注意,这仅适用于数字数据,而不适用于文本,但根据情况,以数字格式保留数据可能更有用 - 您仅提供列出的数值数据的示例,并且通常保留数字格式是有利于分析。
答案 2 :(得分:0)
最好避免使用'TEXT'格式选项。令人困惑的是,它不会强制单元格的内容成为文本数据类型,并且当公式引用“TEXT”格式时会造成严重破坏。
要添加到上一个答案(关于这是一个好主意的所有警告),您可以使用TEXT worksheet function
=TEXT(A1,"000")
如果需要,保证带有前导零的实际文本字符串。