Przejdź do głównej zawartości

Jak szybko importować wiele plików csv / text / xml w programie Excel?

W programie Excel być może zapisałeś skoroszyt jako plik csv, plik tekstowy lub plik xml, ale czy kiedykolwiek próbowałeś zaimportować wiele plików csv / text / xml z folderu do skoroszytu lub arkusza? W tym artykule przedstawię kilka metod szybkiego ich importowania wsadowego.

Importuj wiele plików tekstowych z folderu do każdego arkusza roboczego skoroszytu z VBA

Importuj wiele plików CSV z folderu do jednego arkusza za pomocą VBA

Zaimportuj wiele plików xml z folderu do jednego arkusza za pomocą VBA

Importuj lub łącz wiele plików xml / csv w arkusz lub skoroszyt za pomocą Kutools for Excel dobry pomysł 3

Eksportuj każdy arkusz jako csv / text / pdf do folderu z Kutools for Exceldobry pomysł 3


Aby zaimportować pliki tekstowe z folderu do skoroszytu, możesz użyć poniższego VBA, aby szybko sobie z tym poradzić.

1. Włącz pusty skoroszyt i naciśnij Alt + F11 klucze do otwarcia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Modułi wklej VBA do Moduł okno.

VBA: Importuj wszystkie pliki tekstowe z folderu do skoroszytu

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. naciśnij F5 klucz lub run , aby uruchomić VBA, i wybierz folder, z którego chcesz importować pliki tekstowe w wyświetlanym oknie dialogowym. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 1

4. I kliknij OK, a każdy plik tekstowy w wybranym folderze został zaimportowany do jednego arkusza aktywnego skoroszytu. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 2doc importuj wiele plików CSV text xml 3

Łatwe łączenie wielu arkuszy / skoroszytów w jeden pojedynczy arkusz lub skoroszyt

Łączenie wielu arkuszy lub skoroszytów w jeden arkusz lub skoroszyt może być skomplikowane w programie Excel, ale z rozszerzeniem Połączyć funkcja w Kutools for Excel, możesz łączyć dziesiątki arkuszy / skoroszytów w jeden arkusz lub skoroszyt, a także możesz skonsolidować arkusze w jeden tylko kilkoma kliknięciami.  Kliknij, aby uzyskać pełny, 30-dniowy bezpłatny okres próbny!
połącz arkusze
 
Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do Excela, możesz wypróbować bez ograniczeń w 30 dniach.

Aby zaimportować wszystkie pliki csv z folderu do jednego arkusza, możesz użyć poniższego kodu VBA.

1. Włącz pusty arkusz i naciśnij Alt + F11 klucze do otwarcia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Modułi wklej poniżej VBA do nowego Moduł okno.

VBA: Importuj pliki csv z folderu do jednego arkusza roboczego

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. naciśnij F5 kliknij lub kliknij run , aby uruchomić VBA, i pojawi się okno dialogowe, w którym wybierzesz folder, z którego chcesz zaimportować wszystkie pliki CSV. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 4

4. kliknij OKi wyskakuje okno dialogowe przypominające o wyczyszczeniu zawartości aktywnego arkusza przed importowaniem, tutaj klikam Tak. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 5

po kliknięciu Tak, wszystkie pliki csv w wybranym folderze są importowane do bieżącego arkusza i umieszczają dane z kolumny A po prawej stronie. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 6doc importuj wiele plików CSV text xml 7

Wskazówka: Jeśli chcesz umieścić pliki csv poziomo w arkuszu, możesz użyć poniższego 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 importuj wiele plików CSV text xml 8


Jeśli chcesz zaimportować wszystkie pliki XML z folderu do jednego arkusza, możesz użyć poniższego kodu VBA.

1. Wybierz pusty arkusz, na którym chcesz umieścić importowane dane i naciśnij Alt + F11 klucze do włączenia Microsoft Visual Basic for Applications okno.

2. kliknij wstawka > Moduł, wklej kod VBA do pliku Moduł okno.

VBA: Importuj pliki XML z folderu do arkusza.

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. kliknij run przycisk lub F5 klucz do uruchomienia VBA i wybierz folder w wyskakującym oknie dialogowym, zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 9

4. kliknij OK, a wszystkie pliki XML w wybranym folderze są importowane do aktywnego arkusza.


Jeśli nie znasz VBA, martw się, tutaj przedstawiam przydatne narzędzie - Kutools dla programu Excel dla Was. Dzięki swojej potężnej mocy Połączyć narzędzie, możesz szybko połączyć wiele plików xml lub plików csv w jeden skoroszyt lub jeden arkusz Excela.

Kutools dla programu Excel, ponad 300 przydatne funkcje, ułatwiają pracę. 

Po zainstalowaniu Kutools dla programu Excel, wykonaj poniższe czynności:(Bezpłatne pobieranie Kutools dla programu Excel teraz!)

1. Aktywny Excel i kliknij Kutools Plus > Połączyć. Zobacz zrzut ekranu :
doc połącz 1

2. A w krok 1 funkcji Połącz wybierz jedną opcję separacji według potrzeb. Zobacz zrzut ekranu:
doc połącz 2

3. kliknij Następna , aby przejść do krok 2 Kombinacjikliknij Dodaj aby dodać pliki z różnych folderów lub pliki z jednego folderu do skoroszyt listy, a także możesz określić arkusze, z których chcesz połączyć Ćwiczenie lista prawej sekcji. Zobacz zrzut ekranu:
doc kutools łączą arkusze 3

4. kliknij Następna do ostatniego kroku Połączyći możesz określić opcje łączenia.
doc kutools łączą arkusze 4

5. kliknij koniec, pojawi się okno dialogowe przypominające o wybraniu lokalizacji do zapisania nowego połączonego wyniku. Zobacz zrzut ekranu:
doc połącz 5

6. kliknij Zapisz. Wszystkie dodawane arkusze zostały połączone w nowy pojedynczy arkusz.
doc połącz 6

Wskazówka: Z Połączyć, możesz też łączyć wiele plików Pliki CSV utworzyć wiele folderów lub jeden folder w jeden arkusz lub skoroszyt.


Jeśli chcesz wyeksportować każdy arkusz jako plik csv / text / pdf do folderu, Kutools dla programu Excel'S Podziel skoroszyt narzędzie może wyświadczyć ci przysługę.

Po bezpłatna instalacja Kutools dla programu Excel, wykonaj poniższe czynności:

1. Włącz skoroszyt, z którego chcesz wyeksportować arkusze, i kliknij Kutools Plus > skoroszyt > Podziel skoroszyt. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 10

2. w Podziel skoroszyt możesz sprawdzić nazwy arkuszy, które chcesz wyeksportować, domyślnie wszystkie arkusze są sprawdzane i sprawdzane Określ format zapisu i wybierz format pliku, który chcesz zapisać, z poniższej listy rozwijanej. Zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 11

3. kliknij Split i wybierz folder, w którym chcesz zapisać podzielone pliki w formacie Przeglądaj w poszukiwaniu folderu okno dialogowe, zobacz zrzut ekranu:

doc importuj wiele plików CSV text xml 12

4. kliknij OK, teraz wszystkie zaznaczone arkusze są eksportowane jako nowy format pliku w wybranym folderze.


Względne artykuły:

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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