Gå til hovedindhold

Hvordan kan jeg hurtigt batchimportere flere csv / tekst / xml-filer i Excel?

I Excel har du muligvis bundet til at gemme en projektmappe som csv-fil, tekstfil eller xml-fil, men har du nogensinde prøvet at importere flere csv / text / xml-filer fra en mappe til en projektmappe eller et regneark? I denne artikel introducerer jeg nogle metoder til hurtig batchimport af dem.

Importer flere tekstfiler fra en mappe til hvert regneark i en projektmappe med VBA

Importer flere csv-filer fra en mappe til et enkelt ark med VBA

Importer flere xml-filer fra en mappe til et enkelt ark med VBA

Importer eller kombiner flere xml / csv-filer til et ark eller en projektmappe med Kutools til Excel god idé3

Eksporter hvert ark som csv / tekst / pdf til en mappe med Kutools til Excelgod idé3


Hvis du vil importere tekstfiler fra en mappe til en projektmappe, kan du bruge nedenstående VBA til hurtigt at håndtere den.

1. Aktivér en tom projektmappe, og tryk på Alt + F11 taster for at åbne Microsoft Visual Basic til applikationer vindue.

2. klik indsatte > Moduler, og indsæt VBA til Moduler vindue.

VBA: Importer alle tekstfiler fra en mappe til en projektmappe

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. Trykke F5 nøgle eller Kør knap for at køre VBA, og vælg en mappe, som du vil importere tekstfilerne fra, i pop-op-dialogboksen. Se skærmbillede:

doc importerer flere csv-tekster xml 1

4. Og klik OK, og hver tekstfil i den valgte mappe er blevet importeret til et regneark i den aktive projektmappe. Se skærmbillede:

doc importerer flere csv-tekster xml 2doc importerer flere csv-tekster xml 3

Kombiner let flere ark / projektmappe i et enkelt ark eller en projektmappe

At kombinere flere ark eller projektmapper til et ark eller en projektmappe kan være snedig i Excel, men med Kombiner funktion i Kutools til Excel, kan du kombinere flette snesevis af ark / projektmapper til et ark eller en projektmappe, og du kan også konsolidere arkene i et med flere klik.  Klik for fuld 30 dages gratis prøveperiode!
kombinere ark
 
Kutools til Excel: med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage.

For at importere alle csv-filer fra en mappe til et enkelt ark, kan du bruge nedenstående VBA-kode.

1. Aktivér et tomt regneark, og tryk på Alt + F11 taster for at åbne Microsoft Visual Basic til applikationer vindue.

2. klik indsatte > Moduler, og indsæt under VBA i den nye Moduler vindue.

VBA: Importer csv-filer fra en mappe til et regneark

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. Trykke F5 tast eller klik Kør knap for at udføre VBA, og der vises en dialogboks for at vælge en mappe, som du vil importere alle csv-filer fra. Se skærmbillede:

doc importerer flere csv-tekster xml 4

4. klik OK, og der vises en dialogboks for at minde dig om hvis rydde indholdet af det aktive regneark inden import, her klikker jeg Ja. Se skærmbillede:

doc importerer flere csv-tekster xml 5

Efter at have klikket Ja, importeres alle csv-filer i den valgte mappe til det aktuelle ark og placerer data fra kolonne A til højre. Se skærmbillede:

doc importerer flere csv-tekster xml 6doc importerer flere csv-tekster xml 7

Tip: Hvis du vil placere csv-filer vandret i et regneark, kan du bruge nedenstående VBA.

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 importerer flere csv-tekster xml 8


Hvis du vil importere alle XML-filer fra en mappe til et enkelt ark, kan du bruge nedenstående VBA-kode.

1. Vælg et tomt ark, du vil placere de importerede data på, og tryk på Alt + F11 taster for at aktivere Microsoft Visual Basic til applikationer vindue.

2. klik indsatte > Moduler, indsæt VBA-kode i Moduler vindue.

VBA: Importer XML-filer fra en mappe til et regneark.

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. klik Kør knappen eller F5 nøgle til at køre VBA, og vælg en mappe i poppedialogen, se skærmbillede:

doc importerer flere csv-tekster xml 9

4. klik OK, og alle XML-filer i den valgte mappe importeres til det aktive ark.


Hvis du ikke er fortrolig med VBA, skal du være bekymret, her introducerer jeg et praktisk værktøj - Kutools til Excel for dig. Med sin kraftfulde Kombiner værktøj, kan du hurtigt kombinere flere xml-filer eller csv-filer i en projektmappe eller et Excel-ark.

Kutools til Excel, med mere end 300 praktiske funktioner, der gør dine job lettere. 

Efter installation Kutools til Excel, gør venligst som nedenfor:(Gratis download Kutools til Excel nu!)

1. Aktiv Excel, og klik Kutools Plus > Kombiner. Se skærmbillede :
doc kombinere 1

2. Og i trin 1 i Kombiner dialog, skal du vælge en separationsmulighed efter behov. Se skærmbillede:
doc kombinere 2

3. klik Næste at tage til trin 2 i Kombinerklik Tilføj for at tilføje filer fra forskellige mapper eller filer fra en mappe til Workbook liste, og du kan også angive de ark, du vil kombinere fra Arbejdsark liste over højre sektion. Se skærmbillede:
doc kutools kombiner ark 3

4. klik Næste til det sidste trin i Kombiner, og du kan angive kombinationsindstillingerne.
doc kutools kombiner ark 4

5. klik Finish, vises en dialogboks, der minder dig om at vælge en placering for at gemme det nye kombinerede resultat. Se skærmbillede:
doc kombinere 5

6. klik Gem. Alle tilføjende ark er blevet kombineret til et nyt enkelt ark.
doc kombinere 6

Tip: Med Kombiner, kan du også kombinere flere CSV-filer danne flere mapper eller en mappe i et ark eller en projektmappe.


Hvis du vil eksportere hvert ark som csv / tekst / pdf-fil til en mappe, Kutools til Excel's Opdelt arbejdsbog værktøj kan gøre en tjeneste for dig.

Efter gratis installation Kutools til Excel, gør venligst som nedenfor:

1. Aktivér den projektmappe, du vil eksportere dens regneark, og klik på Kutools Plus > Workbook > Opdelt arbejdsbog. Se skærmbillede:

doc importerer flere csv-tekster xml 10

2. i Opdelt arbejdsbog dialog, kan du kontrollere de arknavne, du har brug for at eksportere, som standard er alle arkene kontrolleret og kontrolleret Angiv gemme format og vælg det filformat, du vil gemme fra nedenstående rulleliste. Se skærmbillede:

doc importerer flere csv-tekster xml 11

3. klik Dele og vælg en mappe, der skal gemme de delte filer i Søg efter mappe dialog, se skærmbillede:

doc importerer flere csv-tekster xml 12

4. klik OK, nu eksporteres alle de markerede ark som nyt filformat i den valgte mappe.


Relative artikler:

Bedste kontorproduktivitetsværktøjer

Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøj (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøj (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøj (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøj (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

kte-fane 201905


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver 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