我有一个 XLSX 文件,其中有两种不同的字体。一个单元格包含英语,而另一个单元格包含另一种语言。我想将此 XLSX 文件保存为 CSV 文件而不丢失字体。这可能吗?
答案1
保存为 CSV 文件时,字体选择实际上不会被保存,只有数据本身会被保存。如果您希望将其保存为现在的样子(包括字体等),则可能需要考虑使用其他格式,例如默认的.xls
或.xlsx
。
不幸的是,Excel 在保存时对多语言的支持不是很好。我尝试保存以下内容(Excel 中的两列)
aeou aeou
äöüß äöüß
âêôû âêôû
作为 CSV,它生成了以下内容:
aeou,aeou
הצ,הצ
גךפ,גךפ
如果您实际上只是想使用某种形式的分隔文件来保存包含多种语言的数据,那么一个可能的解决方案是将其保存为“Unicode 文本”而不是 CSV。它将生成一个制表符分隔的文件(而不是逗号),并且该文件的扩展名为.txt
(而不是.csv
),但这可能是解决当前问题的一种方法。
答案2
为什么不同的语言需要不同的字体?
CSV 代表逗号分隔值。它实际上就是逗号分隔值。它是文本,值用逗号分隔(在某些版本中,用分号或其他分隔符分隔)。它基本上是一个纯文本文件,可以用文本编辑器打开和编辑。
富文本格式可以包含元信息,例如使用哪种字体。纯文本文件确实包含文本和没有其他的. CSV 格式没有提供任何可以存储字体信息的地方。
虽然 CSV 文件不能包含字体信息,但原则上它可以采用任何文本编码1。因此,原则上,您的 CSV 文件可以采用 Unicode 编码保存,例如 UTF-8 或 UTF-16。原则上,这是可行的。Unicode 编码涵盖任何其他编码涵盖的所有内容。如果它是文本,并且可以在计算机上表示,那么它就可以用 Unicode 表示。您的 CSV 编辑器将决定使用哪种字体,并且如果合适,可能会选择一种合适的字体。例如,如果文件包含默认字体不包含的字符,它将自动对这些字符使用不同的字体。
实际上,这可能适用于 Libre Office 或 OpenOffice,但 Microsoft Excel 不喜欢除 Latin-1 之外的编码的 CSV 文件,并且无法很好地处理它们。这是 Microsoft Office 的一个缺陷。
解决方法 1:使用 Libre Office 或 OpenOffice。
解决方法 2:生成制表符分隔的 Unicode 2文件,如下所示由 Matt Champion 建议。
1嗯,任何包含逗号字符的文本编码。ASCII 包含逗号,绝大多数其他文本编码都是 ASCII 的超集,但有一两种编码不包含逗号。Binary SignWriting 就是一个例子。
2Unicode 实际上是一大类编码,而不是一种编码。微软所说的“Unicode”实际上是 UTF-16 LE,它是 Unicode 编码中的一种。
答案3
你可以使用这篇文章中的宏http://nhatkha.blogspot.com/2016/01/cach-luu-file-excel-sang-file-csv-van.html
宏转换为UTF8字体。所以我认为它可以解决您的问题。