这个页面也有直接从马云口中得到的解决方案: http://support.microsoft.com/kb/291296/en-us
如果链接退化,搜索的主题是:
“在Excel中导出一个带逗号和引号的文本文件的步骤 "和/或 "Q291296”
tl;dr:使用他们的宏
突出显示你想添加引号的单元格。进入格式 -> 单元格 -> 单元格 -> 自定义复制/粘贴以下内容到 “类型 "字段。\”@\” 点击 "好的",庆幸自己没有用手去做。
发件人: [ http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/ ]&003
这对我来说是最简单的。我把电子表格导入到Access 2010中,然后从那里导出为一个文本文件。在我的字段周围给我提供了引号。现在我把步骤做下来后,42k行只需要不到一分钟的时间。
如果你用记事本++在每行开头添加引号,只需打开导出的csv文件,将光标放在第1行第1列,然后点击菜单Edit/Column Editor…,在’文本插入‘字段中输入“”**,那么每行的开头都会有一个引号,然后可以用正则表达式搜索/替换所有的制表符。
导出逗号分隔和引号的字符串,只需要用Excel 2016和记事本就可以完成,使用复制数据、公式、导出、改变文件属性、在记事本中替换、保存导出的文件和清理。每一个步骤都很简单。具体内容是:
将要导出的列复制到一个新的中间表中,以保留原表,并作为备份,新的表以后再删除,使电子表格保持原样。
将不存在的字符,例如’#‘或’;-)‘,在字符串的每一列中,例如A列的每一列末尾都加上公式=concat("#",trim(A1),"#")
,将公式放在另一列的所有行上。将新列复制回A…,使用'123'方法,这样就不会携带公式。
5.修改file.csv属性,使其可以用记事本打开。’
7.虽然使用 “作为任意字符似乎是合理的,但它必须放在不同的单元格中,例如’$A$50',然后在导出时出现的是’” “",显然又是一个不方便的触发器。
8.在记事本中,文件应该被保存,成为一个.txt文件导入,中间的.csv被删除。清理了多余的电子表格的任务完成了。
也许有一天Access导出工具可以嵌入到Excel中。在那些使用剪切和粘贴的程序中,一个更通用的方法是在粘贴选项中包含一个解释输出结构和提供分隔符的选择。
我用下面的方法在Excel中取三列,然后在第四列中建立字符串。有时第二列是空的,但我需要确保它在最后的文本文件中被表示出来。
这是我的食谱。我讨厌这样做,但我没有更好的办法。在我的情况下,我没有得到任何字段周围的引号。我还需要使用UTF-8编码和;而不是制表符,所以我最后是这样做的。
注:由于用单引号等双引号包围双引号的合法性,我特意使用了 “键盘格式化 "来表示按键和字面字符和字符串。
1.在你的Excel电子表格中的任何一列之前插入一个新的列(点击第1列的标题,整个列被选中,右键点击,选择 "插入")。从新列中选择整个范围内的空单元格(它们默认被选中)。3.在公式字段上,插入你想要的任何内容:例如,xxx。按CTRL+Enter键将整个列填入相同的值。 3. 将文件保存为Unicode Text (*.txt). 4. 在记事本++中打开文件。 5.按CTRL+f键打开搜索/替换。 6.进入替换选项卡。 7.在 "搜索模式 "中选择 "扩展(\n, \r, \t, \0, \x…)"。在 "替换 "字段中,输入"(双引号)"。 10.按 "全部替换 "键。在 "搜索 "一栏中,输入"(双引号)"键。 12. 在 "替换 "一栏中,输入”;“(双引号、分号、双引号)。 13.按替换全部。按 "全部替换” 14. 就快完成了。对于最后一个双引号,在 “搜索 "栏中输入”\r",在 “替换 "栏中输入”\r"(双引号,反斜杠,双引号)。按 “全部替换"。 15. 只要不使用汉字等,就可以将编码改为UTF-8,安全保存文件。