将Excel文件另存为Unicode时如何避免双引号?


9

我有一个包含Unicode内容的Excel文件,例如,其中某些单元格包含双引号内的文本"text"

当我将Excel文件保存为Unicode格式的文本文件时,例如,包含双引号的文本将另存为三个双引号"""text"""

在某些地方,我甚至有包含逗号(,)的文本。例如,将text,其转换为"text,"Unicode文件。它在文本中添加了双引号,我猜其中包含特殊字符。

如何避免这种情况?

Answers:


7

这是标准行为(与CSV文件的保存方式类似)。请参阅RFC 4180 –逗号分隔值(CSV)文件的通用格式和MIME类型

如果使用双引号将字段括起来,则必须在字段内部出现双引号,方法是在其前面加上另一个双引号来对其进行转义。

这对您的情况有何影响?

  • 这意味着"Text" 必须另存"""Text""",外引号分隔该字段,另外两个引号用于转义用于文本字段的实际引号。否则,"Text"将被解析为Text并且重新打开文件时,您将失去引号。

  • Excel也选择引用Text,,因为逗号在逗号分隔的文件中用作定界符,并且不将其用引号引起来将意味着text,在重新打开文件时将其解析为两个字段。

如果您不希望它们出现在输出中,请考虑在文本编辑器中打开生成的文件,并通过简单的搜索和替换删除所有引号。


2
您的意思是,除了在文本编辑器中替换它们之外,没有其他方法可以解决此问题。
karthik 2011年

并非如此,因为出于兼容性原因Excel必须这样做。也许可以提出一个可以自定义导出的宏,但是我对此并不熟练。
slhck 2011年

好的,也许是我会尝试在编码端替换它。
karthik 2011年

@slhck:我在2010年将Unicode保存为CSV时遇到了问题superuser.com/q/1210099/234380
NJMR,

3

我也有这个问题。然后,我注意到我忽略了“ 另存为”类型:选项“ 格式化文本(以空格分隔) ”。您还必须指定。txt扩展名,否则默认为.prn扩展名。例如,filename.txt而不只是filename。试试吧它有效


将使用空格分隔而不是使用制表符分隔,并且默认情况下,列的宽度似乎限制为大约8个字符。
JosiahYoder处于活动状态,但..

如果单元格包含,则此方法无效"A short sentence"。皮特下面的答案是唯一对我有用的答案。
米卡·林德斯特伦

2

即使我的字符串中没有引号,保存为Unicode似乎也会添加引号。这是我的解决方法:

  1. 查找文件中没有的字符串(我使用xxx)。
  2. 之前出口,查找和替换所有的双引号"xxx
  3. 将文件导出到txt或csv。
  4. 打开txt文件并查找并替换所有引号
  5. 查找并全部xxx用引号替换

注意,replacement不要使用'replacement'。如果双引号恰好位于单元格的开头,则用单引号代替双引号会引起问题。基本上,Excel在单元格的开头会看到一个单引号,这意味着将其解释为文本,因此在导出为txt / csv时将其删除。我发现这很困难,哈哈。
米卡·林德斯特伦

0

只需在excel中轻松将文件另存为space delimited.prn,然后将其重命名为.txt即可。我用它来处理18000行的危机。;)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.