强制excel停止对csv导入数据应用“自动更正”[关闭]
Posted
技术标签:
【中文标题】强制excel停止对csv导入数据应用“自动更正”[关闭]【英文标题】:force excel to stop applying "auto-corrections" to csv import data [closed] 【发布时间】:2009-04-07 18:28:52 【问题描述】:注意:这个问题几乎是受骗的:
stop Ms Excel auto-formatting numeric strings as numbers
我说“几乎”是因为没有提出这个具体问题......
问题: 有没有办法在导入 Excel 之前将“模式”附加到 CSV 文件,让 Excel 能够理解 CSV 文件的正确格式处理 CSV 文件并且无需最终用户干预即可手动正确格式化字段?
我所说的模式是指生成基于文本的定义的任何方法,该定义可以保存在客户 X 的机器上的某个位置,然后在必须进行通常的 CSV 导入时引用,包括但不限于 XSD、VBMacro 或Excel 对此类操作的任何约定(如果有)。
背景: Excel 习惯于在从纯文本(例如 CSV 文件)打开时修改输入数据来“提供帮助”。
有关此含义的示例,请参阅以下各种链接:
http://ask.metafilter.com/28449/Preventing-Excel-applying-time-formatting-to-imported-data
http://excel.tips.net/Pages/T002588_Handling_Leading_Zeros_in_CSV_Files.html
http://social.msdn.microsoft.com/Forums/en-US/isvvba/thread/aae07b39-865f-4c68-a07f-7cad2dfd6733
http://social.msdn.microsoft.com/forums/en-US/vsto/thread/80285088-b476-418f-9613-a2c499c8da7b/
我们必须经常向客户 X 发送 CSV 文件,而且我们无法直接修改 CSV 文件以将它们“变形”为 Excel 将完全按照预期呈现的格式。
此外,客户 X 并不总是拥有受过 Excel 培训的人员才能正确执行导入。
【问题讨论】:
[既然我有代表这样做,就直接评论问题。] 我不明白的是:当然,CSV 是由第三方制作的。但是如果你必须将这些传递给客户,那你为什么不能修复它们呢?或者您是说您是某些原始数据的来源,而第三方 CSV 生产者介于您和客户之间? 【参考方案1】:我在遇到这个问题时所做的是创建一个宏以在导入后运行“取消修复”Excel 的修复。这不是一个很好的解决方案,但它是一种有效的解决方法。
【讨论】:
【参考方案2】:恐怕我没有完全遵循。你说你发送 CSV 文件,但你不能修改 CSV 文件?所以你不生成它们?而且您无法在将它们发送给客户之前对其进行处理?
虽然我很难想象这样的情况,但我会假设是这样的。您是否有机会让客户运行脚本而不是直接启动 Excel?例如,是否可以训练他们双击 VBScript 而不是双击 CSV 或使用从 Excel 中打开?
鉴于您所描述的限制,这是我能想到的最接近的限制,但我不禁认为您必须在上游进一步做一些事情,然后才能离开您的手并进入客户的手中。
【讨论】:
是的,总有运行脚本或批处理文件或其他东西的能力,但是总是需要额外的培训来了解如何使用这个又一个单独的工具。如果只需向客户发送一个 Excel 可以使用的 .ini 文件架构,而无需用户学习和使用另一种未记录的脚本解决方法,那会更好吗? 当然会更好,但(显然)Excel 没有 CSV 架构工具。如果我可能会问,为什么不能在将 CSV 发送给客户之前对其进行处理? 因为它们来自第三方【参考方案3】:这是另一个答案,用引号重新格式化数据,如下所示:
邮编、="00123" 等
这将在 Excel 中呈现为:
邮编 | 00123 |等等
【讨论】:
以上是关于强制excel停止对csv导入数据应用“自动更正”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章