Ugrás a tartalomra

Hogyan lehet gyorsan kötegelni több csv / text / xml fájl importálását az Excel programban?

Szerző: Sun Utolsó módosítás: 2020-04-28

Az Excel programban lehet, hogy megkötötte a munkafüzet csv fájlként, szövegfájlként vagy xml fájlként történő mentését, de megpróbált már több csv / text / xml fájlt importálni egy mappából egy munkafüzetbe vagy munkalapba? Ebben a cikkben bemutatok néhány módszert azok gyors kötegelt importálására.

Több szövegfájlt importálhat egy mappából a VBA-val ellátott munkafüzet minden munkalapjára

Több csv fájlt importálhat egy mappából egyetlen lapra a VBA segítségével

Több xml fájlt importálhat egy mappából egyetlen lapra a VBA segítségével

Importáljon vagy kombináljon több xml/csv fájlt egy lapba vagy munkafüzetbe a Kutools for Excel segítségével jó ötlet3

Exportáljon minden lapot csv/text/pdf formátumban egy mappába a Kutools for Excel segítségéveljó ötlet3


Szöveges fájlok importálásához egy mappából egy munkafüzetbe a VBA alatt gyorsan kezelheti.

1. Engedélyezze az üres munkafüzetet, majd nyomja meg az gombot Alt + F11 gombokat a megnyitáshoz Microsoft Visual Basic for Applications ablak.

2. kettyenés betétlap > Modulok, és illessze be a VBA-t a Modulok ablak.

VBA: Minden szövegfájl importálása egy mappából egy munkafüzetbe

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. nyomja meg F5 kulcs vagy futás gombot a VBA futtatásához, és a felbukkanó párbeszédpanelen válassza ki a mappát, ahonnan importálni szeretné a szöveges fájlokat. Lásd a képernyőképet:

doc import több csv text xml 1

4. És kattintson OK, és a kiválasztott mappában lévő minden szövegfájlt importálta az aktív munkafüzet egy munkalapjába. Lásd a képernyőképet:

doc import több csv text xml 2doc import több csv text xml 3

Kombináljon több lapot / munkafüzetet egyetlen lapba vagy munkafüzetbe

A többszörös munkalapok vagy munkafüzetek egyetlen lapba vagy munkafüzetbe való egyesítése nehéz lehet az Excel programban, de a Kombájn A Kutools for Excel funkciójában több tucat lapot/munkafüzetet egyesíthet egyetlen lapba vagy munkafüzetbe, és a lapokat egyetlen kattintással egyesítheti.  Kattintson a teljes funkcionalitású 30 napos ingyenes próbaverzióért!
össze lapokat
 
Kutools for Excel: több mint 300 praktikus Excel-bővítménnyel, 30 napon belül korlátozás nélkül kipróbálható.

Ha az összes csv fájlt egy mappából egyetlen lapba kívánja importálni, használhatja a VBA kód alatt.

1. Engedélyezzen egy üres munkalapot, majd nyomja meg az gombot Alt + F11 gombokat a megnyitáshoz Microsoft Visual Basic for Applications ablak.

2. kettyenés betétlap > Modulok, és illessze be a VBA alá az újba Modulok ablak.

VBA: Csv fájlok importálása egy mappából egy munkalapba

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. nyomja meg F5 vagy kattintson futás gombra kattintva hajthatja végre a VBA-t, és megjelenik egy párbeszédpanel egy mappa kiválasztásához, amelyből az összes csv fájlt importálni szeretné. Lásd a képernyőképet:

doc import több csv text xml 4

4. kettyenés OK, és megjelenik egy párbeszédpanel, amely emlékezteti Önt, ha importálás előtt törli az aktív munkalap tartalmát, itt kattintsak Igen. Lásd a képernyőképet:

doc import több csv text xml 5

Kattintás után Igen, a kiválasztott mappában található összes csv fájl importálódik az aktuális munkalapba, és az adatokat az A oszlopból jobbra helyezi. Lásd a képernyőképet:

doc import több csv text xml 6doc import több csv text xml 7

Tipp: Ha a csv fájlokat vízszintesen szeretné elhelyezni egy munkalapon, használhatja a VBA alatt.

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 import több csv text xml 8


Ha az összes XML fájlt egy mappából egyetlen lapra kívánja importálni, használhatja a VBA kód alatt.

1. Jelöljön ki egy üres lapot, ahová el szeretné helyezni az importált adatokat, majd nyomja meg a gombot Alt + F11 gombokat az engedélyezéshez Microsoft Visual Basic for Applications ablak.

2. kettyenés betétlap > Modulok, illessze be a VBA kódot a Modulok ablak.

VBA: XML fájlok importálása egy mappából egy munkalapba.

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. kettyenés futás gombot vagy F5 gombot a VBA futtatásához, és válasszon egy mappát a felbukkanó párbeszédpanelen, lásd a képernyőképet:

doc import több csv text xml 9

4. kettyenés OK, és a kiválasztott mappában található összes XML-fájlt importálja az aktív munkalapba.


Ha még nem ismeri a VBA-t, akkor aggódjon, itt bemutatok egy praktikus eszközt - Kutools az Excel számára neked. A hatalmas Kombájn segédprogrammal gyorsan kombinálhat több xml fájlt vagy csv fájlt egy munkafüzetbe vagy egy Excel munkalapba.

Kutools az Excel számára, Több mint 300 a praktikus funkciók megkönnyítik a munkáját. 

Telepítése után Kutools for Excel, kérjük, tegye a következőket:(Töltse le ingyen a Kutools for Excel programot most!)

1. Aktív Excel, és kattintson a gombra Kutools Plus > Kombájn. Képernyőkép megtekintése :
doc kombájn 1

2. És a a Combine 1. lépése párbeszédpanelen válasszon egy elválasztási opciót, amire szüksége van. Lásd a képernyőképet:
doc kombájn 2

3. kettyenés Következő menni a Combine 2. lépésekettyenés hozzáad fájlok hozzáadásához különféle mappákból vagy fájlok egy mappából a Munkafüzet listát, és megadhatja azokat a lapokat is, amelyekből kombinálni szeretne Munkalap jobb oldali rész listája. Lásd a képernyőképet:
doc kutools kombinálja az 3. lapokat

4. kettyenés Következő utolsó lépéséig Kombájn, és megadhatja a kombinációs opciókat.
doc kutools kombinálja az 4. lapokat

5. kettyenés befejez, megjelenik egy párbeszédpanel, amely emlékeztet arra, hogy válasszon egy helyet az új kombinált eredmény mentéséhez. Lásd a képernyőképet:
doc kombájn 5

6. kettyenés Megtakarítás. Az összes hozzáadott lapot egy új lapra egyesítettük.
doc kombájn 6

Tipp: A Kombájn, akkor is kombinálhat több CSV fájlok több mappát vagy egy mappát formázhat egy lapba vagy munkafüzetbe.


Ha minden egyes lapot csv / text / pdf fájlként szeretne exportálni egy mappába, Kutools az Excel számára'S Felosztott munkafüzet segédprogram tehet egy szívességet az Ön számára.

Után ingyenes telepítés Kutools for Excel, kérjük, tegye a következőket:

1. Engedélyezze a munkafüzetet, amelybe exportálni szeretné a munkalapokat, majd kattintson a gombra Kutools Plus > Munkafüzet > Felosztott munkafüzet. Lásd a képernyőképet:

doc import több csv text xml 10

2. Ban,-ben Felosztott munkafüzet párbeszédpanelen ellenőrizheti az exportálandó lapneveket, alapértelmezés szerint az összes lap be van jelölve, és ellenőrizze Adja meg a mentési formátumot és az alábbi legördülő listából válassza ki a menteni kívánt fájlformátumot. Lásd a képernyőképet:

doc import több csv text xml 11

3. kettyenés Hasított és válasszon ki egy mappát, amelybe az osztott fájlokat a Keresse meg a Mappa elemet párbeszédpanel, lásd a képernyőképet:

doc import több csv text xml 12

4. kettyenés OK, most az összes bejelölt lap új fájlformátumként kerül exportálásra a kiválasztott mappába.


Relatív cikkek:

A legjobb irodai hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
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
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations