我有一个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,但在文件转换过程中添加额外的双引号似乎很奇怪。
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
答案 0 :(得分:0)
解决方法似乎很简单。转换完文件后,执行双引号查找,并用单引号替换。所以......
FIND: ""
REPLACE: "
答案 1 :(得分:0)
仅在.csv文件中,如果单元格中提供了,
或.
(特殊字符),则在将此文件转换为.txt格式时,将添加""
双引号在.txt文件中自动。
要避免.txt文件中有多个双引号条目,请不要在转换前在.csv文件中包含任何引号。