注意:这个问题几乎是的欺骗行为:
stop Ms Excel auto-formatting numeric strings as numbers
我说“差不多”,因为这个具体问题没有被问到......
问题: 在Excel导入之前,有没有办法将“架构”附加到CSV文件,这样可以让Excel了解CSV文件的正确格式,而无需要求post-处理CSV文件而不需要最终用户干预,以便手动正确格式化字段?
通过模式,我指的是生成基于文本的定义的任何方法,可以将其保存在客户X的计算机上的某个位置,然后在必须进行常规CSV导入时引用,包括但不限于XSD,VBMacro或Excel对此类操作的任何约定(如果有的话)。
背景 当从纯文本(例如CSV文件)打开输入数据时,Excel习惯于“有用”。
有关此含义的示例,请参阅以下各种链接中的任何一个:
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培训的人员才能正确导入。
答案 0 :(得分:1)
在遇到此问题时我所做的是在导入后创建一个宏来“解锁”Excel的修复程序。这不是一个很好的解决方案,但它是一种有效的解决方法。
答案 1 :(得分:0)
我担心我没有完全跟随。您说您发送了CSV文件,但是您无法修改CSV文件?所以你没有产生它们?在将它们发送给客户之前,您无法处理它们吗?
虽然我觉得很难想象出这种情况,但我认为情况就是如此。您是否有机会让客户运行脚本而不是直接启动Excel?例如,是否可以培训他们双击VBScript而不是双击CSV或使用从Excel打开?
考虑到你所描述的限制,这是我能想到的最接近的,但我不禁想到,在它离开你的手并进入顾客之前,你必须做更多的事情。
答案 2 :(得分:0)
这是另一个答案,用引号重新格式化数据如下:
Zip,=“00123”等
这将在Excel中呈现为:
Zip | 00123 |等