2011-09-12 36 views
1

CSV形式のドキュメントが多数あります(約100種類の.csvファイル)。私はそれらをすべて1つの.xlsドキュメントにマージしたい。私は各CSV文書が私の新しいxls文書のワークシートを表すことを望みます。だから私の最終的な結果は、オリジナルの.csv文書であった100の異なるワークシートを持つ1つのxlsワークブックでなければなりません。複数の異なるCSVファイルを1つのExcelドキュメントに変換する

答えて

1

私はvbsなどのスクリプト言語を使います。それは、Excelや他のMSアプリケーションでうまくいき、コマンドラインからでもファイルをダブルクリックしてでも実行できます。あなたはコマンドラインを実行する場合は以下のようにsrccsvfileとtgtxlsfileパラメータを渡すことができ、これらの二つの引数や

に値を追加する必要が

:ここ

cscript nameoffile.vbs test.csv test.xls 

は、いくつかのサンプルコードです。名前を付けて保存する.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 
関連する問題