Saltar al contenido principal

¿Cómo importar rápidamente por lotes múltiples archivos csv / text / xml en Excel?

En Excel, es posible que se haya vinculado para guardar un libro de trabajo como archivo csv, archivo de texto o archivo xml, pero ¿alguna vez ha intentado importar varios archivos csv / text / xml de una carpeta a un libro de trabajo o una hoja de trabajo? En este artículo, presento algunos métodos para importarlos por lotes rápidamente.

Importe varios archivos de texto de una carpeta a cada hoja de trabajo de un libro con VBA

Importe varios archivos csv de una carpeta a una sola hoja con VBA

Importe varios archivos xml de una carpeta en una sola hoja con VBA

Importe o combine varios archivos xml / csv en una hoja o un libro de trabajo con Kutools para Excel buena idea3

Exporte cada hoja como csv / text / pdf a una carpeta con Kutools para Excelbuena idea3


Para importar archivos de texto desde una carpeta a un libro de trabajo, puede usar VBA a continuación para manejarlo rápidamente.

1. Habilite un libro en blanco y presione Alt + F11 llaves para abrir Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Móduloy pegue el VBA en el Módulo ventana.

VBA: importe todos los archivos de texto de una carpeta a un libro de trabajo

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. Prensa F5 o Ejecutar para ejecutar el VBA, y seleccione una carpeta desde la que desea importar los archivos de texto en el cuadro de diálogo emergente. Ver captura de pantalla:

doc importar múltiples texto csv xml 1

4. Y haga clic en OK, y cada archivo de texto de la carpeta seleccionada se ha importado a una hoja de trabajo del libro activo. Ver captura de pantalla:

doc importar múltiples texto csv xml 2doc importar múltiples texto csv xml 3

Combine fácilmente varias hojas / libro de trabajo en una sola hoja o libro de trabajo

Combinar varias hojas o libros de trabajo en una sola hoja o libro de trabajo puede ser complicado en Excel, pero con la Combinar función en Kutools para Excel, puede combinar fusionar docenas de hojas / libros de trabajo en una hoja o libro de trabajo, también, puede consolidar las hojas en una por varios clics solamente.  ¡Haga clic para obtener una prueba gratuita de 30 días con todas las funciones!
combinar sábanas
 
Kutools para Excel: con más de 300 prácticos complementos de Excel, prueba gratis sin límite en 30 días.

Para importar todos los archivos csv de una carpeta en una sola hoja, puede usar el siguiente código VBA.

1. Active una hoja de trabajo en blanco y presione Alt + F11 llaves para abrir Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Móduloy pegue debajo de VBA en el nuevo Módulo ventana.

VBA: importe archivos csv de una carpeta a una hoja de trabajo

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. Prensa F5 tecla o clic Ejecutar para ejecutar el VBA, y aparece un cuadro de diálogo para seleccionar una carpeta desde la que desea importar todos los archivos csv. Ver captura de pantalla:

doc importar múltiples texto csv xml 4

4. Hacer clic en OK, y aparece un cuadro de diálogo para recordarle que si borra el contenido de la hoja de trabajo activa antes de importar, aquí hago clic. Ver captura de pantalla:

doc importar múltiples texto csv xml 5

Después de hacer clic , todos los archivos csv de la carpeta seleccionada se importan a la hoja actual y colocan los datos de la columna A a la derecha. Ver captura de pantalla:

doc importar múltiples texto csv xml 6doc importar múltiples texto csv xml 7

Consejo: Si desea colocar archivos csv horizontalmente en una hoja de trabajo, puede usarlos a continuación 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 importar múltiples texto csv xml 8


Si desea importar todos los archivos XML de una carpeta en una sola hoja, puede usar el siguiente código VBA.

1. Seleccione una hoja en blanco en la que desee colocar los datos importados y presione Alt + F11 claves para habilitar Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Módulo, pegue el código VBA en el Módulo ventana.

VBA: importe archivos XML de una carpeta a una hoja de trabajo.

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. Hacer clic en Ejecutar botón o F5 clave para ejecutar el VBA, y seleccione una carpeta en el cuadro de diálogo emergente, vea la captura de pantalla:

doc importar múltiples texto csv xml 9

4. Hacer clic en OKy todos los archivos XML de la carpeta seleccionada se importan a la hoja activa.


Si no está familiarizado con VBA, preocúpese, aquí les presento una herramienta útil: Kutools for Excel para ti. Con su poderoso Combinar utilidad, puede combinar rápidamente varios archivos xml o archivos csv en un libro de trabajo o una hoja de Excel.

Kutools for Excel, con más de 300 funciones prácticas, facilita su trabajo. 

Después de instalar Kutools para Excel, haga lo siguiente:(¡Descarga gratis Kutools para Excel ahora!)

1. Active Excel y haga clic en Kutools Más > Combinar. Ver captura de pantalla:
doc combinar 1

2. Y en el paso 1 de Combinar diálogo, elija una opción de separación que necesite. Ver captura de pantalla:
doc combinar 2

3. Hacer clic en Siguiente ir a paso 2 de la combinación, haga clic Añada para agregar archivos de varias carpetas o archivos de una carpeta a Libro de trabajo lista, y también puede especificar las hojas de las que desea combinar Hoja de trabajo lista de la sección derecha. Ver captura de pantalla:
doc kutools combinar hojas 3

4. Hacer clic en Siguiente al último paso de Combinary puede especificar las opciones de combinación.
doc kutools combinar hojas 4

5. Hacer clic en Acabado, aparece un cuadro de diálogo para recordarle que seleccione una ubicación para guardar el nuevo resultado combinado. Ver captura de pantalla:
doc combinar 5

6. Hacer clic en Guardar. Todas las hojas adicionales se han combinado en una nueva hoja única.
doc combinar 6

Consejo: Con Combinar, también puede combinar varios Archivos CSV Forme varias carpetas o una carpeta en una hoja o libro de trabajo.


Si desea exportar cada hoja como archivo csv / text / pdf a una carpeta, Kutools for Excel, Libro de trabajo dividido La utilidad puede hacerte un favor.

Después instalación gratuita Kutools para Excel, haga lo siguiente:

1. Habilite el libro de trabajo cuyas hojas de trabajo desea exportar y haga clic en Kutools Más > Libro de trabajo > Libro de trabajo dividido. Ver captura de pantalla:

doc importar múltiples texto csv xml 10

2. En el Libro de trabajo dividido cuadro de diálogo, puede comprobar los nombres de las hojas que necesita exportar, de forma predeterminada, todas las hojas están marcadas y Especificar formato de guardado y seleccione el formato de archivo que desea guardar en la lista desplegable a continuación. Ver captura de pantalla:

doc importar múltiples texto csv xml 11

3. Hacer clic en Mini Split y seleccione una carpeta para guardar los archivos divididos en el Busca por carpetas diálogo, ver captura de pantalla:

doc importar múltiples texto csv xml 12

4. Hacer clic en OK, ahora todas las hojas marcadas se exportan como un nuevo formato de archivo en la carpeta seleccionada.


Artículos relativos:

Las mejores herramientas de productividad de oficina

🤖 Asistente de IA de Kutools: Revolucionar el análisis de datos basado en: Ejecución inteligente   |  Generar codigo  |  Crear fórmulas personalizadas  |  Analizar datos y generar gráficos  |  Invocar funciones de Kutools...
Características populares: Buscar, resaltar o identificar duplicados   |  Eliminar filas en blanco   |  Combine columnas o celdas sin perder datos   |   Ronda sin fórmula ...
Super búsqueda: Búsqueda virtual de criterios múltiples    Búsqueda V de valores múltiples  |   VLookup en varias hojas   |   Búsqueda difusa ....
Lista desplegable avanzada: Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple ....
Administrador de columnas: Agregar un número específico de columnas  |  Mover columnas  |  Toggle Estado de visibilidad de columnas ocultas  |  Comparar rangos y columnas ...
Características destacadas: Enfoque de cuadrícula   |  Vista de diseño   |   Gran barra de fórmulas    Administrador de hojas y libros de trabajo   |  Biblioteca de Recursos (Texto automático)   |  Selector de fechas   |  Combinar hojas de trabajo   |  Cifrar/descifrar celdas    Enviar correos electrónicos por lista   |  Súper filtro   |   Filtro especial (filtro negrita/cursiva/tachado...) ...
Los 15 mejores conjuntos de herramientas12 Texto Herramientas (Añadir texto, Quitar caracteres, ...)   |   50+ Tabla Tipos (Diagrama de Gantt, ...)   |   40+ Práctico Fórmulas (Calcular la edad según el cumpleaños, ...)   |   19 Inserción Herramientas (Insertar código QR, Insertar imagen desde la ruta, ...)   |   12 Conversión Herramientas (Números a palabras, Conversión de Moneda, ...)   |   7 Fusionar y dividir Herramientas (Filas combinadas avanzadas, Células partidas, ...)   |   ... y más

Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo.  Haga clic aquí para obtener la función que más necesita...

Descripción


Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
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