【问题标题】:Automatically format .csv file upon download?下载时自动格式化 .csv 文件?
【发布时间】:2017-11-01 14:08:13
【问题描述】:

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

提前谢谢你!

【问题讨论】:

  • 如果这是 Excel 所期望的,您能否不安排文件用逗号分隔?还是给用户一个选择,让他们可以选择符合他们要求的分隔符?

标签: html excel csv vba


【解决方案1】:

因为您使用“下载”一词并且您的问题被标记为“html”,所以我假设用户与 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),但同样需要您更改系统 -用户机器上的广泛设置,我想这是不可能的。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2020-10-01
    • 1970-01-01
    • 2010-12-13
    • 2017-04-19
    相关资源
    最近更新 更多