多年来,我们的会员编号格式发生了几次变化,例如00008、9538、746、0746、00746、100125和各种其他排列都是有效的、唯一的,需要保留。从我们的数据库导出到批量更新所需的自定义Excel模板中,去掉了前导零,比如00746和0746都被截断为746。
插入撇号技巧或设置文本格式在我们的例子中不起作用,因为当我们在Excel中打开数据时,它似乎已经被更改了。格式化为zip将不起作用,因为我们有长度小于5位的有效数字,并且不能向它们添加零。而且我在“自定义”格式上没有任何运气,因为这似乎需要向数字添加相同数量的前导零,或者向每个数字添加足够多的零以使它们的长度相同。
有什么线索吗?我希望有一些方法可以将Excel设置为只接受它提供的内容,而不去管它,但情况似乎并非如此!如果您有任何建议或建议,我将不胜感激。提前感谢大家!
更新-感谢大家的帮助!以下是更多细节。我们使用的是第三方会员管理应用程序--我们不能直接访问数据库,我们需要使用他们的“查询构建器”工具来获取我们想要批量更新的数据。然后我们使用他们的“模板”格式导出,这被称为XLSX,但幕后一定有什么事情在发生,因为如果我们试图导入一个常规的旧Excel,我们会得到一个错误。只有他们的模板有效。
数据在数据库中的格式是正确的,因为所有的数字都在基于web的管理工具中正确显示。此外,如果我导出为CSV,将其另存为.txt并将其导入到Excel中,则数字显示正常。
我所做的类似于下面ooo的解释--我导出了带有不正确数字的模板,然后导出为CSV/txt,并将这些数字复制/粘贴到模板中,然后重新导入。我没有得到一个错误,这是我猜的东西,但我将无法确定它是否成功,直到午夜!:-(
发布于 2012-10-04 06:14:38
假设数据库中的数据没有损坏,然后尝试从数据库导出到csv或文本文件。
然后,可以执行以下操作以确保正确格式化导入
带有逗号分隔符的文本文件:
在Excel Data/From文本中,选择分隔,然后单击下一步
在导入向导的步骤3中。对于要作为文本的每个列/字段,突出显示该列并选择文本
然后应将数据作为文本放置,并保留前导零。
同样,所有这些都假设数据库包含未损坏的数据,并且您能够导出简单的文本或csv文件。它还假设您有Excel2010,但它可以在所有版本之间进行微小的变化。
发布于 2012-10-04 07:23:25
希望@ooo的答案适用于你。我提供了另一个答案,主要是为了提供信息,我不想处理评论的限制。
要理解的一件事是,Excel非常积极地将“看起来像数字的”数据视为实际的数字。如果您要通过双击打开CSV并让Excel执行它的操作(而不是使用ooo的谨慎过程),这些数字仍然会显示为数字(没有前导零)。正如您已经发现的,解决此问题的一种方法是将明确的非数字字符附加到您的数据上(在Excel得到它之前),让Excel真正相信它所处理的是文本。
现在,如果上传到他们的软件的是一个以.xlsx
结尾的文件,那么它很可能是当前的Excel格式(Excel2007和更高版本使用的压缩XML文档)。我想你所说的“普通的旧Excel”指的是.xls
(它仍然可以在“兼容模式”下使用新的Excel)。
因此,如果您到目前为止所做的尝试都不起作用,那么在求助于将字符附加到数据末尾之前,仍然有一些方法可以探索。(我将根据需要更新此答案。)
发布于 2012-10-04 05:34:52
有了撇号,您就走上了正确的道路。在将数字添加到文件中时,您需要将数字以文本形式存储在excel中。
您使用什么来创建原始的excel文件/从数据库导出?这很可能是您在出口时需要关注的地方。
例如,一种方法是,您可以修改数据库导出,使其在数字之前包含'
符号前缀,以便excel知道将它们显示为文本。
https://stackoverflow.com/questions/12717200
复制相似问题