Combining csv files

Posted on 2012-08-14
Last Modified: 2012-09-25
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?
Question by:BBlu
    LVL 82

    Assisted Solution

    by:Dave Baldwin
    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.

    Author Comment

    Thanks, Dave.  I thought of that.  Is that the only way you know of?
    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 <> ""
            'Change path and destination accordingly
            With ActiveSheet.QueryTables.Add(Connection:= _
                    "TEXT;" & ThisWorkbook.Path & "\" & strCurrentFile, Destination:=Range("$A1000000").End(xlUp).Offset(1, 0))
                    .Name = "file1_1"
                    .FieldNames = True
                    .RowNumbers = False
                    .FillAdjacentFormulas = False
                    .PreserveFormatting = True
                    .RefreshOnFileOpen = False
                    .RefreshStyle = xlInsertDeleteCells
                    .SavePassword = False
                    .SaveData = True
                    .AdjustColumnWidth = True
                    .RefreshPeriod = 0
                    .TextFilePromptOnRefresh = False
                    .TextFilePlatform = 437
                    .TextFileStartRow = 1
                    .TextFileParseType = xlDelimited
                    .TextFileTextQualifier = xlTextQualifierDoubleQuote
                    .TextFileConsecutiveDelimiter = False
                    .TextFileTabDelimiter = False
                    .TextFileSemicolonDelimiter = False
                    .TextFileCommaDelimiter = True
                    .TextFileSpaceDelimiter = False
                    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
                    .TextFileTrailingMinusNumbers = True
                    .Refresh BackgroundQuery:=False
                End With
            strCurrentFile = Dir
    End Sub

    Open in new window

    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

    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
    LVL 82

    Expert Comment

    by:Dave Baldwin
    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.
    LVL 11

    Assisted Solution

    by:Sudhakar Kumar
    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.

    Author Closing Comment

    Thanks, everyone.

    Featured Post

    Top 6 Sources for Identifying Threat Actor TTPs

    Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

    Join & Write a Comment

    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.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now