Много разных документов csv для преобразования в один документ excel

У меня есть много документов в формате CSV (около 100 различных файлов .csv). Я хочу объединить их все в один документ .xls. Я хочу, чтобы каждый документ CSV представлял рабочий лист в моем новом документе xls. Таким образом, моим конечным результатом должна быть одна книга xls со 100 различными листами, которые изначально были документами .csv.


person Sandesh    schedule 12.09.2011    source источник


Ответы (1)


Я бы использовал язык сценариев, такой как vbs. Он хорошо работает с Excel и другими приложениями MS, и вы можете запустить его либо из командной строки, либо дважды щелкнув файл.

Вам нужно добавить значения для этих двух аргументов или

Если вы используете командную строку, вы можете передать параметры srccsvfile и tgtxlsfile, например:

cscript nameoffile.vbs test.csv test.xls

Вот пример кода. Сохранить как nameoffile.vbs:

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
person Apollo SOFTWARE    schedule 12.09.2011