多年来,我们的会员号码的格式已多次改变,例如00008,9538,746,0746,00746,100125以及各种其他排列有效,独特且需要保留。从我们的数据库导出到批量更新所需的自定义Excel模板中会删除前导零,这样00746和0746都会被截断为746.
插入撇号技巧或格式化为文本在我们的情况下不起作用,因为我们在Excel中打开它时数据似乎已经改变了。格式化为zip将不起作用,因为我们的长度小于五位的有效数字不能添加零。而且我对“自定义”格式化没有任何好运,因为这似乎要求向数字添加相同数量的前导零,或者为每个数字添加足够的零以使它们具有相同的长度。
任何线索?我希望有一些方法可以将Excel设置为仅仅采用它给出的内容而不管它,但似乎并非如此!我将不胜感激任何建议或意见。非常感谢大家!
更新 - 感谢大家的帮助!这里有一些更具体的细节。我们使用的是第三方会员管理应用程序 - 我们无法直接访问数据库,我们需要使用他们的“查询构建器”工具来获取我们想要批量更新的数据。然后我们使用他们的“模板”格式导出,称为XLSX,但幕后必须有一些东西,因为如果我们尝试导入常规的旧Excel,我们会收到错误。只有他们的模板有效。
数据在数据库中格式正常,因为所有数字都在基于Web的管理工具中正确显示。此外,如果我导出为CSV,将其保存为.txt并将其导入Excel,数字显示正常。
我所做的与ooo的解释类似 - 我导出的模板数字不正确,然后导出为CSV / txt,并将这些数字复制/粘贴到模板中并重新导入。我没有得到错误,这是我猜的,但我不知道它是否在午夜之后才成功! : - (
答案 0 :(得分:5)
假设数据库中的数据没有损坏,请尝试从数据库导出到csv或文本文件。
然后可以执行以下操作以确保正确格式化导入
带逗号分隔符的文本文件:
在Excel数据/来自文本和选定的分隔符中,然后是
导入向导的第3步。对于您想要作为文本的每个列/字段,突出显示该列并选择文本
然后应将数据作为文本放置并保留前导零。
同样,所有这些都假设数据库包含未损坏的数据,您可以导出简单的文本或csv文件。它还假设您拥有Excel 2010,但它可以在所有版本中进行微小的变化。
答案 1 :(得分:3)
希望@ ooo的答案适合你。我提供的另一个答案主要是出于提供信息的目的,并且不想处理评论的限制。
有一点需要理解的是,Excel将“数字化”数据视为实际数字非常积极。如果您通过双击打开CSV并让Excel执行其操作(而不是使用ooo的仔细程序),那么这些数字仍然会以数字形式出现(没有前导零)。正如您所发现的,抵消这种情况的一种方法是在您的数据上添加明确的非数字字符(在Excel获得它的肮脏之前),真正说服 Excel它正在处理的是文本。
现在,如果上传到他们软件的内容是以.xlsx
结尾的文件,则很可能 当前的Excel格式(Excel 2007使用的压缩XML文档)然后)。我认为“常规旧Excel”是指.xls
(在“兼容模式”下仍适用于较新的Excel)。
因此,如果您到目前为止所尝试的内容不起作用,在使用字符添加到数据末尾之前仍有一些途径需要探索。 (我会根据需要更新这个答案。)
答案 2 :(得分:2)
你和撇号一起走在正确的轨道上。 您需要在将文件添加到文件时将其作为文本存储在Excel中。
您用什么来创建原始excel文件/从数据库导出? 这可能是您需要关注出口的地方。
例如,一种方法是您可以修改数据库导出以在数字前包含'
符号前缀,以便excel知道将它们显示为文本。
答案 3 :(得分:0)
我使用公式=text(cell,"# of zeros of the field")
添加前面的零。
示例,单元格C2
有 12345 ,我需要它 10 个字符。我会放=text(c2,"0000000000")
。
结果将是 0000012345 。