使用双引号将Excel转换为CSV到TXT单元格

时间:2014-07-31 16:35:29

标签: excel batch-file csv

我有一个Excel电子表格,其中包含我希望转换为逗号分隔文本文件的每个单元格中的值。目前我有一个将excel文件转换为csv的vbs脚本,然后在批处理脚本中我将*.csv重命名为*.txt。这适用于90%的单元格值,直到我们得到双引号("

我的一些单元格包含用双引号括起来的值,需要在我的txt文件中以这种方式显示。相反,我得到了这个:

双引号

Excel Cell A1: "Hello"
.csv Cell A1: "Hello"
.txt Cell A1: """Hello"""

两个双引号

Excel Cell A1: ""Hello""
.csv Cell A1: ""Hello""
.txt Cell A1: """""Hello"""""

三个双引号

Excel Cell A1: """Hello"""
.csv Cell A1: """Hello"""
.txt Cell A1: """""""Hello"""""""

看起来,当您将csv重命名为txt时,它会复制所有双引号,并添加一个额外的双引号。有人知道为什么吗?或者,如果有解决方法?

我尝试在Excel中创建一个新的*.csv文件,保存值"Hello"并将其重命名为*.txt,当打开时它仍显示为"""Hello"""在Wordpad / Textpad / Word中。所以问题不在于我的vbs转换脚本。我还尝试创建一个Excel电子表格,只需将其重命名为Book1.txt,就会出现同样的问题。似乎每当一个单元转换为*.txt时,由于某种原因会添加额外的引号。

我见过this article,但在文件转换过程中添加额外的双引号似乎很奇怪。

我的vbs脚本

if WScript.Arguments.Count < 2 Then
    WScript.Echo "Error! Please specify the source path and the destination. Usage: XlsToCsv SourcePath.xls(x) Destination.csv"
    Wscript.Quit
End If
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
Dim oBook
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0))
oBook.SaveAs WScript.Arguments.Item(1), 6
oBook.Close False
oExcel.Quit
WScript.Echo "Done" 

相关批处理脚本命令

Rename SubvarList.csv SubvarList.txt

2 个答案:

答案 0 :(得分:0)

解决方法似乎很简单。转换完文件后,执行双引号查找,并用单引号替换。所以......

FIND: ""
REPLACE: "

答案 1 :(得分:0)

仅在.csv文件中,如果单元格中提供了,.(特殊字符),则在将此文件转换为.txt格式时,将添加""双引号在.txt文件中自动。

要避免.txt文件中有多个双引号条目,请不要在转换前在.csv文件中包含任何引号。