我有一个Excel电子表格,其中每个单元格都有值,我希望将其转换为逗号分隔的文本文件。目前,我有一个vbs脚本,将Excel文件转换为csv,然后在批处理脚本中,我将*.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
,当在写字板/文本板/Word中打开时,它仍然显示为"""Hello"""
。因此,问题不是与我的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条答案
按热度按时间ni65a41a1#
在.csv文件中,只有在单元格中提供了
,
或.
(特殊字符),在将此文件转换为.txt格式时,才会在.txt文件中自动添加""
双引号。为避免.txt文件中出现多个双引号条目,请在转换前不要在.csv文件中包含任何引号。
juud5qan2#
解决方法看起来很简单。一旦你转换了文件,查找双引号,然后用单引号替换。所以...