将元数据添加到 CSV 文件中以指示 Excel 应如何打开

Posted

技术标签:

【中文标题】将元数据添加到 CSV 文件中以指示 Excel 应如何打开【英文标题】:Add meta data into CSV file to instruct Excel how it should open 【发布时间】:2020-05-23 16:20:16 【问题描述】:

我正在导出 CSV 文件,其中列标题文本在 Angular 应用程序中从英语更改为法语。英文文本显示正常,但法语版本显示不正确,使用 Excel 打开时,带重音的字符无法正确显示。当使用 Notepad 或 Notepad++ 等文本编辑器打开时,它可以正常工作。

是否可以告诉 Excel 或任何支持 CSV 的编辑器(如 Libre Office)如何读取文件?就像在导出下载之前将一些嵌入的元数据添加到这个 CSV 文件中一样。我检查了 W3C 中的文档,仅找到有关嵌入式元数据的资源,但在类似语言、哪个字符作为分隔符......等之后没有太多信息。

来自W3C的示例

EXAMPLE 7: Tab-separated file containing embedded metadata

# publisher City of Palo Alto
# updated 12/31/2010
#name GID on_street species trim_cycle  inventory_date
#datatype string  string  string  string  date:M/D/YYYY
  GID On Street Species Trim Cycle  Inventory Date
  1 ADDISON AV  Celtis australis  Large Tree Routine Prune  10/18/2010
  2 EMERSON ST  Liquidambar styraciflua Large Tree Routine Prune  6/2/2010

【问题讨论】:

您是否尝试在 csv 的开头添加 BOM? 【参考方案1】:

尝试在 csv 的开头添加 BOM(字节顺序标记),以便 Excel 正确识别字符编码:

let bom = "\uFEFF";
let csv = "a;b;c;?";
let blob = new Blob([`$bom$csv`],  type: 'text/csv;charset=utf-8;' );
// proceed with saving the blob ...

我创建了一个小 jsfiddle:https://jsfiddle.net/h6n1cpqf/

【讨论】:

我应该将它添加到 csv 的第一行,或者只是将它连接到 csv 中,excel 应该可以正常读取它? 将其附加到 csv 有效负载前面,如上所示。 (不在它自己的路线上)

以上是关于将元数据添加到 CSV 文件中以指示 Excel 应如何打开的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 中以 csv 格式读取 excel 文件

django生成CSV文件

将元数据库链接到 Google 表格

在硒自动化中以CSV格式添加数据

导入 excel .csv 文件并将其添加到 phpMyAdmin 的列中

将元胞数组写入 csv 文件