下载后自动格式化.csv文件?

时间:2017-11-01 14:08:14

标签: html excel excel-vba csv vba

我有一个表单会根据用户的选择打开一个文件。正如预期的那样,一些文件是.csv,这些文件在Excel中打开。但是,所有内容都放在一个单元格中...我知道有一种方法可以手动配置它以便|或者,是分隔符,但有没有办法设置它,以便Excel将自动设置|作为分隔符?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

因为您使用了"下载"并且您的问题被标记为" html",我认为用户与 web 表单而不是桌面表单进行交互。

在这种情况下,它是决定如何处理文件的Web浏览器。如果浏览器将响应的content-type识别为可以本地处理的内容(例如" text / plain"或" image / jpeg")那么它可以打开文件并且直接显示它。

但是,如果内容类型不是它知道如何处理的东西(可能是" application / csv"的情况),那么它将下载该文件并要求操作系统打开它。此时,分配给文件的文件名(可以通过HTTP响应设置)可以起作用。

在Windows计算机上,操作系统维护一个文件扩展名列表以及与这些扩展名相关联的操作。当您安装Excel时,通常会将Excel设为默认值"打开"使用" .csv"的文件操作延期。这就是为什么双击" .csv"文件在Excel中打开,以及如果从网站下载它可以在Excel中打开的原因。 (如果你没有Excel,它可能只是问你想要使用什么程序。)

这是一种冗长的说法,如果您控制用户的计算机,则可以为文件提供不同的文件扩展名,然后将该扩展名与操作相关联做了不同的事情。但是,我认为除非你只与内部用户打交道,否则你可能不会拥有那种控制权,无论如何,实现它并不是一件容易的事。

我认为没有办法通过命令行与Excel 进行通信在打开CSV文件时它应该使用特定的分隔符,而且 - 不幸的是 - 是操作系统最终打开文件的机制。

可以控制Excel用作所有 CSV文件的默认分隔符的内容(请参阅https://superuser.com/a/606274/18472),但这又需要您更改系统范围内的用户设置'机器,我想这是不可能的。