我尝试使用批处理文件和vbscript将管道分隔文件转换为xls(Excel)。不幸的是,我的" output.xls"文件仍显示表中的管道分隔符,数据未组织。
cmd /s /k
答案 0 :(得分:1)
Pipe不等于逗号,Excel本身知道如何处理CSV,但不知道如何处理。
全部不会丢失,记录您手动打开文件的操作,一旦打开高亮显示A列并单击数据/文本到列,选择分隔并在"其他"框放一个管道然后点击下一步,选择列格式(如果你需要喜欢邮政编码和电话号码,可以很好地将数字格式化为文本)然后点击完成。
现在停止录制器并查看它生成的代码。将其移植到脚本中的Excel对象上。
答案 1 :(得分:1)
在阅读CSV文件时,Excel有点挑剔。如果您的分隔文件的扩展名为.csv
,则只有在分隔符是系统区域设置中配置的字符时,Excel才会通过Open
方法正确打开它。
Open
方法有可选参数,允许您指定自定义分隔符字符(归功于@Jeeped以指出这一点):
set objWorkbook = objExcel.Workbooks.Open(srccsvfile, , , 6, , , , , "|")
您还可以使用OpenText
方法(将动作录制为宏时将使用此方法):
objExcel.Workbooks.OpenText srccsvfile, , , 1, , , , , , , True, "|"
Set objWorkbook = objExcel.Workbooks(1)
请注意,OpenText
方法不会返回工作簿对象,因此您必须在打开文件后自己将工作簿分配给变量。
重要提示:如果您的分隔符与系统的区域设置不同,则文件不得具有扩展名.csv
,否则将忽略分隔符