Ga naar hoofdinhoud

Hoe snel meerdere csv / tekst / xml-bestanden in Excel snel batchgewijs importeren?

In Excel ben je misschien gebonden om een ​​werkmap op te slaan als csv-bestand, tekstbestand of xml-bestand, maar heb je ooit geprobeerd om meerdere csv / tekst / xml-bestanden uit een map in een werkmap of een werkblad te importeren? In dit artikel introduceer ik enkele methoden om ze snel in batches te importeren.

Importeer meerdere tekstbestanden uit een map in elk werkblad van een werkmap met VBA

Importeer meerdere csv-bestanden uit een map in één blad met VBA

Importeer meerdere xml-bestanden uit een map in een enkel blad met VBA

Importeer of combineer meerdere xml / csv-bestanden in een blad of een werkmap met Kutools voor Excel goed idee 3

Exporteer elk blad als csv / text / pdf naar een map met Kutools voor Excelgoed idee 3


Om tekstbestanden uit een map naar een werkmap te importeren, kunt u onderstaande VBA gebruiken om deze snel af te handelen.

1. Schakel een lege werkmap in en druk op Alt + F11 sleutels om te openen Microsoft Visual Basic voor toepassingen venster.

2. klikken Invoegen > Moduleen plak de VBA in het Module venster.

VBA: importeer alle tekstbestanden uit een map in een werkmap

Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\*.txt")
    Do While xFile <> ""
        xCount = xCount + 1
        Sheets(xCount).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & xStrPath & "\" & xFile, Destination:=Range("A1"))
            .Name = "a" & xCount
            .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 = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            xFile = Dir
        End With
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files txt", , "Kutools for Excel"
End Sub

3. druk op F5 toets of lopen knop om de VBA uit te voeren en selecteer een map waaruit u de tekstbestanden wilt importeren in het popping-dialoogvenster. Zie screenshot:

doc importeer meerdere csv-tekst xml 1

4. En klik OK, en elk tekstbestand in de geselecteerde map is geïmporteerd in één werkblad van de actieve werkmap. Zie screenshot:

doc importeer meerdere csv-tekst xml 2doc importeer meerdere csv-tekst xml 3

Combineer eenvoudig meerdere bladen / werkmap in één enkel blad of werkmap

Het combineren van meerdere bladen of werkmappen tot één blad of werkmap kan lastig zijn in Excel, maar met de extensie Combineren functie in Kutools for Excel, kunt u tientallen bladen / werkmappen samenvoegen tot één blad of werkmap, ook kunt u de bladen met slechts enkele klikken in één samenvoegen.  Klik voor een volledige gratis proefperiode van 30 dagen!
combineer bladen
 
Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen.

Om alle csv-bestanden van een map in een enkel blad te importeren, kunt u onderstaande VBA-code gebruiken.

1. Schakel een leeg werkblad in en druk op Alt + F11 sleutels om te openen Microsoft Visual Basic voor toepassingen venster.

2. klikken Invoegen > Module, en plak onder VBA in het nieuwe Module venster.

VBA: importeer csv-bestanden uit een map in één werkblad

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Columns(1).Insert xlShiftToRight
        Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub

3. druk op F5 toets of klik lopen knop om de VBA uit te voeren, en een dialoogvenster verschijnt om een ​​map te selecteren waaruit u alle csv-bestanden wilt importeren. Zie screenshot:

doc importeer meerdere csv-tekst xml 4

4. klikken OK, en er verschijnt een dialoogvenster om u eraan te herinneren of u de inhoud van het actieve werkblad wist voordat u importeert, hier klik ik Ja. Zie screenshot:

doc importeer meerdere csv-tekst xml 5

na het klikken op Ja, worden alle csv-bestanden in de geselecteerde map geïmporteerd in het huidige blad en worden de gegevens van kolom A naar rechts geplaatst. Zie screenshot:

doc importeer meerdere csv-tekst xml 6doc importeer meerdere csv-tekst xml 7

Tip: Als u csv-bestanden horizontaal in een werkblad wilt plaatsen, kunt u onderstaande VBA gebruiken.

Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
        xSht.UsedRange.Clear
        xCount = 1
    Else
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    End If
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Rows(1).Insert xlShiftDown
        Range("A1") = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
        xWb.Close False
        xFile = Dir
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub 

doc importeer meerdere csv-tekst xml 8


Als u alle XML-bestanden uit een map in één blad wilt importeren, kunt u onderstaande VBA-code gebruiken.

1. Selecteer een leeg blad waarop u de geïmporteerde gegevens wilt plaatsen en druk op Alt + F11 toetsen om in te schakelen Microsoft Visual Basic voor toepassingen venster.

2. klikken Invoegen > Module, plak VBA-code in het Module venster.

VBA: XML-bestanden uit een map importeren in een werkblad.

Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
    Dim xWb As Workbook
    Dim xSWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    Set xSWb = ThisWorkbook
    xCount = 1
    xFile = Dir(xStrPath & "\*.xml")
    Do While xFile <> ""
        Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
        xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
        xWb.Close False
        xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
        xFile = Dir()
    Loop
    Application.ScreenUpdating = True
    xSWb.Save
    Exit Sub
ErrHandler:
    MsgBox "no files xml", , "Kutools for Excel"
End Sub

3. klikken lopen knop of F5 toets om de VBA uit te voeren en selecteer een map in het popping-dialoogvenster, zie screenshot:

doc importeer meerdere csv-tekst xml 9

4. klikken OK, en alle XML-bestanden in de geselecteerde map worden geïmporteerd in het actieve blad.


Maak je geen zorgen als je niet bekend bent met VBA, hier introduceer ik een handige tool - Kutools for Excel voor jou. Met zijn krachtig Combineren hulpprogramma kunt u snel meerdere xml-bestanden of csv-bestanden combineren in één werkmap of één Excel-blad.

Kutools for Excel, met meer dan 300 handige functies, maakt uw werk eenvoudiger. 

Na het installeren van Kutools voor Excel, doe het als volgt:(Download nu Kutools voor Excel!)

1. Actieve Excel, en klik op Koetools Plus > Combineren. Zie screenshot:
doc combineren 1

2. En in de stap 1 van Combineren dialoogvenster, kies een scheidingsoptie zoals je nodig hebt. Zie screenshot:
doc combineren 2

3. klikken Volgende naar stap 2 van de Combineren, Klik Toevoegen om bestanden uit verschillende mappen of bestanden uit een map toe te voegen aan werkboek lijst, en u kunt ook de bladen specificeren waaruit u wilt combineren Werkblad lijst van rechter sectie. Zie screenshot:
doc kutools combineren bladen 3

4. klikken Volgende naar de laatste stap van Combineren, en u kunt de combineeropties specificeren.
doc kutools combineren bladen 4

5. klikken Finish, verschijnt er een dialoogvenster om u eraan te herinneren een locatie te selecteren om het nieuwe gecombineerde resultaat op te slaan. Zie screenshot:
doc combineren 5

6. klikken Bespaar. Alle toegevoegde bladen zijn gecombineerd tot een nieuw enkel blad.
doc combineren 6

Tip: met Combineren, je kunt er ook meerdere combineren CSV-bestanden vorm meerdere mappen of één map in één blad of werkmap.


Als u elk blad als csv / tekst / pdf-bestand naar een map wilt exporteren, Kutools for Excel's Werkmap splitsen hulpprogramma kan een plezier voor je doen.

Na gratis installeren Kutools voor Excel, doe het als volgt:

1. Schakel de werkmap in waarvan u de werkbladen wilt exporteren en klik op Koetools Plus > werkboek > Werkmap splitsen. Zie screenshot:

doc importeer meerdere csv-tekst xml 10

2. In de Werkmap splitsen dialoogvenster, kunt u de bladnamen controleren die u nodig hebt om te exporteren, standaard worden alle bladen gecontroleerd en gecontroleerd Geef het opslagformaat op en selecteer het bestandsformaat dat u wilt opslaan zoals in de onderstaande vervolgkeuzelijst. Zie screenshot:

doc importeer meerdere csv-tekst xml 11

3. klikken Split en selecteer een map waarin u de gesplitste bestanden wilt opslaan in het Blader naar de map dialoog, zie screenshot:

doc importeer meerdere csv-tekst xml 12

4. klikken OK, worden nu alle aangevinkte bladen geëxporteerd als een nieuw bestandsformaat in de geselecteerde map.


Relatieve artikelen:

Beste Office-productiviteitstools

🤖 Kutools AI-assistent: Een revolutie teweegbrengen in de data-analyse op basis van: Intelligente uitvoering   |  Genereer code  |  Aangepaste formules maken  |  Analyseer gegevens en genereer grafieken  |  Roep Kutools-functies aan...
Populaire functies: Zoek, markeer of identificeer duplicaten   |  Verwijder lege rijen   |  Combineer kolommen of cellen zonder gegevens te verliezen   |   Ronde zonder formule ...
Super opzoeken: Meerdere criteria VLookup    VLookup met meerdere waarden  |   VOpzoeken over meerdere bladen   |   Fuzzy opzoeken ....
Geavanceerde vervolgkeuzelijst: Maak snel een vervolgkeuzelijst   |  Afhankelijke vervolgkeuzelijst   |  Multi-select vervolgkeuzelijst ....
Kolom Beheerder: Voeg een specifiek aantal kolommen toe  |  Kolommen verplaatsen  |  Schakel de zichtbaarheidsstatus van verborgen kolommen in  |  Vergelijk bereiken en kolommen ...
Uitgelichte functies: Raster focus   |  Ontwerpweergave   |   Grote formulebalk    Werkmap- en bladbeheer   |  resource Library (Auto-tekst)   |  Datumkiezer   |  Combineer werkbladen   |  Cellen coderen/decoderen    Stuur e-mails per lijst   |  Super filter   |   Speciaal filter (filter vet/cursief/doorhalen...) ...
Top 15 gereedschapsets12 Tekst Tools (toe te voegen tekst, Tekens verwijderen, ...)   |   50+ tabel Types (Gantt Chart, ...)   |   40+ Praktisch Formules (Bereken leeftijd op basis van verjaardag, ...)   |   19 Invoeging Tools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...)   |   12 Camper ombouw Tools (Getallen naar woorden, Currency Conversion, ...)   |   7 Samenvoegen en splitsen Tools (Geavanceerd Combineer rijen, Gespleten cellen, ...)   |   ... en meer

Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen.  Klik hier om de functie te krijgen die u het meest nodig heeft...

Omschrijving


Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!
Comments (36)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Bagaimana caranya menghilangkan header dari tiap-tiap file csv yang terbuka dalam worksheetnya
terima kasih
This comment was minimized by the moderator on the site
Hi there,this is a great tool, but I want to import the various XMl-Files into separate TAB-sheets. Is this possible as the XML's have different header ?
This comment was minimized by the moderator on the site
HelloThe instructions for importing multiple xmls into one tab of an excel document works but was wondering how to get it to line up the columns. My xmls don't all have the same tags. They are set up such that if the xml had no data for some headers(tags) then the header is missing from that xml. Is there a way to get the xmls to import so the same headers from each xml and associated data fall into the same column of excel?
This comment was minimized by the moderator on the site
Hi Experts

I am using the above code for importing multiple xml files into 1 worksheet using VBA however issue i am facing is when rows count reaches 650000 in a worksheet then this code doesn't process rest of the xml files in the folder. It gives an error "no files.xml". Require your kind support
This comment was minimized by the moderator on the site
Hi Team

I am using the code for importing Multiple XML files into single sheet with VBA however issue i am facing is when rows count reaches approximately 650000, then it doesn't processes rest of the xml files in the folder and gives an error that no xml files. Need your support to increase this count.
This comment was minimized by the moderator on the site
Hi, is there any way to import multiple csv files with semicolon as separator? Thank you!
PS Nice article!
This comment was minimized by the moderator on the site
Hello - I've used your VBA codes to extract data from multiple CSV files to excel file (the code on this page) and convert csv files to excel files ( this one: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), with great results. They helped me save a lot of time.

However, I notice a common problem with both of these types of codes. To clarify, my system is set up to use the European standards for dates, while some of the CSV files I received for my work contain dates in US standards. The first problem is, when I extract or convert data from a CSV file that contains dates in US format, all of those dates are reversed (matching the EU standards used by my system). This is great but it also caused me troubles since I didn't know the codes would reverse the dates for me, so I went on ahead and did the same thing again. The second problem is, for the CSV files that contain dates already in the same format as the one used by my system (EU standards), only the ambiguous dates are reversed (i.e 04/05/2019 - 05/04/2019), while the ones that are too obvious, remain unchanged (i.e 30/04/2019).

What I would like the codes to do, is the exact same thing as they are shown here, only that they should copy and paste the data (especially dates) in the exact formats used in the original files. This would help prevent any possible confusions and mistakes. I would like to learn VBA so I can one day write my own codes, but for now, I'm not even able to modify parts of the existing codes to suit my needs. So if you can help, please tell me where I should put the modified codes (that you come up with) to the existing codes. I appreciate all feedback & support I can get. Thank you all!
This comment was minimized by the moderator on the site
Hi Marshall, in the Workbooks.Open method, add in the option Local:=True.

i.e.
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
This comment was minimized by the moderator on the site
Hi Robert,
It's me again. It took me a while to actually have the time to figure out which part of the code the "Local:True" part should be added to. The result turned out great as the dates are no longer reversed. Thank you!
For anyone having the same problem, just change this line:
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

To this:
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
This comment was minimized by the moderator on the site
Thank you very much Robert. Sorry I couldn't reply to you any earlier. I didn't get any notification until now. I will try this out and come back to you later to let you know if this works.
This comment was minimized by the moderator on the site
Hi - I'm using the import all csv files into one file listed above "Import Multiple Csv Files From A Folder Into A Single Sheet With VBA"- i'd like to define the folder it collects the data from without having to manually choose it. Can this be done? thanks - SW.
This comment was minimized by the moderator on the site
Hi, Scott W, I found a VBA code may can help you.
Option Explicit

Sub ImportCSVsWithReference()
'Author: Jerry Beaucaire
'Date: 10/16/2010
'Summary: Import all CSV files from a folder into a single sheet
' adding a field in column A listing the CSV filenames

Dim wbCSV As Workbook
Dim wsMstr As Worksheet: Set wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'path to CSV files, include the final \
Dim fCSV As String

If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Clear?") _
= vbYes Then wsMstr.UsedRange.Clear

Application.ScreenUpdating = False 'speed up macro

fCSV = Dir(fPath & "*.csv") 'start the CSV file listing

Do While Len(fCSV) > 0
'open a CSV file
Set wbCSV = Workbooks.Open(fPath & fCSV)
'insert col A and add CSV name
Columns(1).Insert xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'copy date into master sheet and close source file
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Close False
'ready next CSV
fCSV = Dir
Loop

Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
How to eliminate duplicate header and CSV file name column. Please do help....I have gone through several articles, but unfortunately all give same result.
This comment was minimized by the moderator on the site
Thank you. This site has been a big help. I have one issue I cannot figure out. I am trying to import multiple csv files into an excel separate sheets in excel and have each sheet renamed after the file name of the csv file. I know this was covered below for a txt file but I am working with csv files. Thanks in advance.
This comment was minimized by the moderator on the site
Hi! I used the code to merge multiple XML files into one, but unfortunately the columns got messed up. The 5 files being merged all had the same format. Is there anyway to fix this? I also was wondering if there was a way to get rid of the headers that are duplicated when the files are merged. Thank you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations