将管道分隔文件转换为.xls

时间:2015-06-02 04:36:10

标签: excel batch-file vbscript

我尝试使用批处理文件和vbscript将管道分隔文件转换为xls(Excel)。不幸的是,我的" output.xls"文件仍显示表中的管道分隔符,数据未组织。

cmd /s /k

来源:http://www.tek-tips.com/viewthread.cfm?qid=1682555

2 个答案:

答案 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,否则将忽略分隔符