这是我们的一些用户看到的一个奇怪的问题,我已经能够确认,这对我来说完全没有意义。
基本上,我开发的应用程序有时会以 CSV 或 TSV 格式导出文件,这些文件通常会被加载到 Excel 中进行处理,然后再加载回我们的系统。数据区分大小写,并且发生这种情况的字段包含以加号开头的文本(例如+Data +Like +This
)
在某些情况下,导入文件时某些文本的大小写似乎会发生变化。这种情况似乎只有在您未在导入对话框中将列更改为文本格式时才会发生,不过我也见过不这样做就不会发生这种情况的情况。
以下是一些图片,它们说明了我的意思。以下是 Notepad++ 中显示的原始数据。请注意,第 50 行是“+Mario +Party +Kit”,大小写正确。
这是导入后 Excel 中的文本,但未更改任何格式选项。由于单元格以 + 开头,因此被解释为公式,但您可以在顶部栏中看到大小写已更改为“+mario +party +Kit”。(用户通常会立即导入,然后查找并替换 = 为 ` 以将其修复为公式)
但是,如果我将该列作为文本导入(选择该列并在“文本导入”对话框中选择文本作为格式),您会看到大小写被保留了下来。
有人能解释一下这里发生了什么吗?我们有导入为文本的解决方法,但用户经常会忘记这个步骤,最终浪费时间。我读过很多关于数字格式的类似问题,这至少在某些用例中是有意义的,但这里的大小写更改对我来说毫无意义。
我已确认这发生在 Excel 2007、2010 和 2013 以及多台计算机上。以下是链接到我的示例中显示的文件。
答案1
如果您稍微思考一下文本被解释为公式这一事实 - 您应该意识到这就是罪魁祸首以及您遇到问题的原因。
格式为的字符串是对名称管理器中+DefinedName
的引用 (在帮助中查找,对于所有 Excel 版本来说解释都不同)DefinedName
将单元格/导入的列格式化为文本,或者'
在所有前导=
,+
和-
字符前添加 (是否需要更多?)
其他可能的替代方案:(正如Techie007
如何设置 Excel 始终将 CSV 文件的所有列导入为文本?