Solved

Combining csv files

Posted on 2012-08-14
401 Views
I have been asked to combine several text (comma delimited files) into an Excel Workbook for analysis purposes.  They are all the exact same format with the same headings.  Is there an way to combine all files in a folder?
0
Question by:BBlu

LVL 82

Assisted Solution

Open the first one in a text editor like Notepad.  I would strongly suggest saving it under a new name immediately so you don't lose anything if there is a problem.  Then open the others and copy and paste them into the end of the first / new file and save them.  If they are exactly the same format, they will all load into Excel at once that way.  If for some reason there actually is a difference, then you will still have the original files that you can use.
0

Author Comment

Thanks, Dave.  I thought of that.  Is that the only way you know of?
0

LVL 8

Accepted Solution

This code should get you started. Save the workbook in the same directory as the CSVs. Record a macro to import one of the files and change in the code accordingly. Also change the path and target of the recorded macro.

Option Explicit

Sub FindCSV()

Dim strDocPath As String
Dim strCurrentFile As String

strDocPath = ThisWorkbook.Path & "\"
strCurrentFile = Dir(strDocPath & "*.csv*")

Do While strCurrentFile <> ""
'START OF RECORDED MACRO
'Change path and destination accordingly
"TEXT;" & ThisWorkbook.Path & "\" & strCurrentFile, Destination:=Range("\$A1000000").End(xlUp).Offset(1, 0))
.Name = "file1_1"
.FieldNames = True
.RowNumbers = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SaveData = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'END OF RECORDED MACRO
strCurrentFile = Dir
Loop
End Sub

0

LVL 25

Assisted Solution

I would use a combination of DOS command to create a new 'super' file, then open this file in excel and remove the duplicate headers ... see this for instructions http://workawesome.com/productivity/how-to-concatenate-multiple-csv-files-in-excel/

You can use a better directory than c:\ however ... just you the CD command to get to that directory, e.g.
cd c:
cd \path\to\better\directory
0

LVL 82

Expert Comment

If you only have to do it once, you'd be done by now.  If you have to do it frequently, then a program is better.
0

LVL 11

Assisted Solution

You can use simple DOS command to merge multiple csv or text files.

copy *.csv NewCSVFile.csv

Copy all the csv files in a folder and create a batch file copycsv.bat in the same folder and save this command.
0

Author Closing Comment

Thanks, everyone.
0

Join & Write a Comment Already a member? Login.

Introduction While answering a recent question (http:/Q_27311462.html), I created an alternative function to the Excel Concatenate() function that you might find useful.  I tested several solutions and share the results in this article as well as t…
Workbook link problems after copying tabs to a new workbook? David Miller (dlmille) Intro Have you either copied sheets to a new workbook, and after having saved and opened that workbook, you find that there are links back to the original sou…
The viewer will learn how to simulate a series of coin tosses with the rand() function and learn how to make these “tosses” depend on a predetermined probability. Flipping Coins in Excel: Enter =RAND() into cell A2: Recalculate the random variable…
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!