3

多年来,我们的会员号码格式已多次更改,例如 00008、9538、746、0746、00746、100125 和其他各种排列是有效的、唯一的并且需要保留。从我们的数据库导出到大规模更新所需的自定义 Excel 模板会去除前导零,这样 00746 和 0746 都会被截断为 746。

在我们的例子中,插入撇号技巧或格式化为文本不起作用,因为当我们在 Excel 中打开数据时,数据似乎已经被更改。格式化为 zip 不起作用,因为我们有长度小于五位的有效数字不能添加零。而且我对“自定义”格式没有任何运气,因为这似乎需要向数字添加相同数量的前导零,或者为每个数字添加足够的零以使它们的长度相同。

有什么线索吗?我希望有某种方法可以将 Excel 设置为只接受它给出的内容并不管它,但情况似乎并非如此!我将不胜感激任何建议或意见。提前非常感谢大家!

更新 - 感谢大家的帮助!这里有一些更具体的。我们正在使用第 3 方会员管理应用程序——我们无法直接访问数据库,我们需要使用他们的“查询构建器”工具来获取我们想要大规模更新的数据。然后我们使用他们的“模板”格式导出,它被称为 XLSX 但幕后肯定有一些事情发生,因为如果我们尝试导入常规的旧 Excel,我们会得到一个错误。只有他们的模板有效。

数据在数据库中的格式很好,因为所有数字都在基于 Web 的管理工具中正确显示。此外,如果我导出为 CSV,将其另存为 .txt 并将其导入 Excel,则数字显示正常。

我所做的与下面 ooo 的解释类似——我用不正确的数字导出了模板,然后导出为 CSV/txt,然后将这些数字复制/粘贴到模板中并重新导入。我没有收到错误,这是我猜的,但是直到午夜之后我才能知道它是否成功!:-(

4

4 回答 4

5

假设数据库中的数据没有损坏,然后尝试从数据库导出到 csv 或文本文件。

然后可以执行以下操作以确保导入格式正确

带有逗号分隔符的文本文件:

在此处输入图像描述

在 Excel 数据/来自文本中并选择分隔,然后下一步

在此处输入图像描述

在此处输入图像描述

在导入向导的第 3 步中。对于您希望作为文本的每一列/字段,突出显示该列并选择文本

在此处输入图像描述

然后应将数据作为文本放置并保留前导零。

在此处输入图像描述

同样,所有这些都假设数据库包含未损坏的数据,并且您能够导出简单的文本或 csv 文件。它还假设您拥有 Excel 2010,但可以在所有版本之间进行细微的更改。

于 2012-10-03T22:14:37.643 回答
3

希望@ooo 的回答对您有用。我主要出于提供信息的目的提供另一个答案,并且不想处理评论的限制。

要理解的一件事是,Excel 非常积极地将“看起来像数字的”数据视为实际数字。如果您要通过双击打开 CSV 并让 Excel 执行它的操作(而不是使用 ooo 的仔细程序),这些数字仍然会以数字形式出现(没有前导零)。正如您所发现的,解决此问题的一种方法是将明确的非数字字符附加到您的数据中(在 Excel 得到它肮脏的手之前),以真正让Excel 相信它正在处理的是文本。

现在,如果上传到他们软件的文件是以 结尾的文件.xlsx,那么很可能当前的 Excel 格式(压缩的 XML 文档,Excel 2007 及更高版本使用)。我想你的意思是“常规的旧 Excel” .xls(它仍然适用于“兼容模式”下的新 Excel)。

因此,如果您到目前为止尝试的方法不起作用,在诉诸将字符附加到数据末尾之前,仍有一些途径可以探索。(我会根据需要更新这个答案。)

于 2012-10-03T23:23:24.693 回答
2

你在撇号的正确轨道上。在将数字添加到文件时,您需要将数字作为文本存储在 Excel 中。

你用什么来创建原始的 excel 文件/从数据库导出?这可能是您需要关注出口的地方。

例如,一种方法是您可能会修改数据库导出以'在数字前包含符号前缀,以便 excel 知道将它们显示为文本。

于 2012-10-03T21:34:52.177 回答
0

我使用公式=text(cell,"# of zeros of the field")添加前面的零。

例如,单元格C212345,我需要它有10 个字符长。我会放=text(c2,"0000000000").

结果将是0000012345

于 2017-03-14T16:06:18.777 回答