我有一个包含 Unicode 内容的 Excel 文件,其中一些单元格包含双引号内的文本,例如"text"
。
当我将 Excel 文件保存为 Unicode 格式的文本文件时,包含双引号的文本将保存为三个双引号,例如"""text"""
。
有些地方我甚至有包含逗号 (,) 的文本。例如,在 Unicode 文件中text,
转换为。它会在文本中添加双引号,我猜其中包含特殊字符。"text,"
我该如何避免这种情况?
答案1
这是标准行为(与 CSV 文件的保存方式类似)。请参阅RFC 4180 – 逗号分隔值 (CSV) 文件的通用格式和 MIME 类型:
如果使用双引号括住字段,则字段内部的双引号前面必须加上另一个双引号进行转义。
这和你的情况有什么关系?
这意味着
"Text"
必须保存为"""Text"""
,外层引号界定字段,另外两个引号用于转义您在文本字段中使用的实际引号。否则,"Text"
将被解析为 ,Text
重新打开文件时您将丢失引号。Excel 也选择使用引号
Text,
,因为逗号在逗号分隔的文件中用作分隔符,如果不将其括在引号中,则意味着text,
当您重新打开文件时,它将被解析为两个字段。
如果您不希望它们出现在输出中,请考虑在文本编辑器中打开生成的文件,然后使用简单的搜索和替换删除所有引号。
答案2
我也遇到过这个问题。然后,我注意到我忽略了保存类型:选项 ”格式化文本(空格分隔)“。 你也必须指定 。TXT扩展名,否则将默认使用 .prn 扩展名。例如,filename.txt 而不仅仅是 filename。尝试一下。有用。
答案3
即使字符串中没有引号,保存为 Unicode 似乎也会添加引号。以下是我解决这个问题的方法:
- 查找文件中不存在的字符串(我使用了
xxx
)。 - 导出之前,查找并替换所有双
"
引号xxx
- 将文件导出为 txt 或 csv。
- 打开 txt 文件并查找并替换所有引号
- 查找并替换所有
xxx
带引号的内容
答案4
只需在 excel 中将文件轻松保存为 space delimited.prn,然后将其重命名为 .txt。我用它来处理 18000 行的危机。;)