将pipe道分隔的文件转换为.xls

我试图用batch file和VBScript将pipe道分隔的文件转换为XLS(Excel)。 不幸的是,我的“output.xls”文件仍然在表中显示pipe道分隔符,数据没有组织。

srccsvfile = Wscript.Arguments(0) tgtxlsfile = Wscript.Arguments(1) 'Create Spreadsheet 'Look for an existing Excel instance. On Error Resume Next ' Turn on the error handling flag Set objExcel = GetObject(,"Excel.Application") 'If not found, create a new instance. If Err.Number = 429 Then '> 0 Set objExcel = CreateObject("Excel.Application") End If objExcel.Visible = false objExcel.displayalerts=false 'Import CSV into Spreadsheet Set objWorkbook = objExcel.Workbooks.open(srccsvfile) Set objWorksheet1 = objWorkbook.Worksheets(1) 'Adjust width of columns Set objRange = objWorksheet1.UsedRange objRange.EntireColumn.Autofit() 'This code could be used to AutoFit a select number of columns 'For intColumns = 1 To 17 ' objExcel.Columns(intColumns).AutoFit() 'Next 'Make Headings Bold objExcel.Rows(1).Font.Bold = TRUE 'Freeze header row With objExcel.ActiveWindow .SplitColumn = 0 .SplitRow = 1 End With objExcel.ActiveWindow.FreezePanes = True 'Add Data Filters to Heading Row objExcel.Rows(1).AutoFilter 'set header row gray objExcel.Rows(1).Interior.ColorIndex = 15 '-0.249977111117893 'Save Spreadsheet, 51 = Excel 2007-2010 objWorksheet1.SaveAs tgtxlsfile, 51 'Release Lock on Spreadsheet objExcel.Quit() Set objWorksheet1 = Nothing Set objWorkbook = Nothing Set ObjExcel = Nothing 

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

Excel在读取CSV文件时有点挑剔。 如果您的分机文件的扩展名为.csv则只有在分隔符是系统区域设置中configuration的字符时,Excel才能通过Open方法正确打开它。

Open方法有可选的参数,允许你指定一个自定义的分隔符(用@Jeeped指出来):

 set objWorkbook = objExcel.Workbooks.Open(srccsvfile, , , 6, , , , , "|") 

您也可以使用OpenText方法(在将动作录制为macros时使用):

 objExcel.Workbooks.OpenText srccsvfile, , , 1, , , , , , , True, "|" Set objWorkbook = objExcel.Workbooks(1) 

请注意, OpenText方法不会返回工作簿对象,所以您必须在打开文件后自行将工作簿分配给一个variables。

重要说明:如果您的分隔字符不同于您的系统的区域设置,则您的文件不能具有扩展名.csv ,否则分隔符将被忽略。

pipe道不等于逗号,Excel本身就知道如何处理CSV,但不能使用pipe道。

所有不会丢失,logging您的操作手动打开文件,一旦打开突出显示列A并单击数据/文本到列,select分隔,并在“其他”框中放置一个pipe道,然后单击下一步,select列格式(伟大的格式数字作为文本,如果你需要喜欢邮政编码和电话号码),然后点击完成。

现在停止logging器,看看它生成的代码。 将其转移到脚本中的Excel对象。