我遇到了一个问题,即从用户内部网站导出的 .csv 文件。用户只需从网站中选择“导出”,导出就会自动打开 Excel。问题是 Excel 会根据用户和我假设的默认设置以两种不同的方式处理它。
版本 1:文件在 Excel 中打开,A 列中的所有数据都以逗号分隔。这是预期的过程。简单的文本转列功能允许用户将一列更改为文本(零件编号带有前导零),然后完美导出到 Excel。
版本 2:文件在 Excel 中打开,但系统不知何故识别了逗号分隔符并自动进行列拆分。这不是首选,因为项目编号未更改为文本,因此前导零被截断。
有什么想法可以改变设置来实现版本 1 吗?解决方案需要相当简单,因为有数百名外部用户访问特定于他们的数据。
顺便说一句 - 到目前为止测试的所有用户都使用同一版本的 Excel 2010。外部用户可能会使用 2007 及更新版本。
谢谢。
答案1
WindowsRegion and Language
设置决定默认使用哪个符号作为List separator
。对于选择逗号作为 的用户List separator
,Excel 将按此方式解析 CSV 文件。对于将分号设置为默认的用户,情况也是如此。
这个答案对此进行了详细解释:如何强制 Excel 打开按列排列数据的 CSV 文件
一些解决方案
- 在用户端修复此问题的一种方法是将列表分隔符设置为
;
。但这可能不太可行。 - 另一个解决方案是使用用户系统上非常不常见的分隔符作为默认分隔符。例如
#
。这将导致数据出现在 A 列中全部用户。 - 如果目的是向用户提供 Excel 数据,请考虑向用户提供 Excel 文件而不是 CSV 文件。使用 Excel 打开 CSV 文件时,Excel 不仅会对分隔符做出假设,还会对编码、数据类型、封装做出假设……这可能会造成比您目前预期的更多混乱。我写了一篇(相当长的)关于此的文章这里。