Ir para o conteúdo principal

Como importar rapidamente vários arquivos csv / text / xml no Excel?

No Excel, você pode ter vinculado a salvar uma pasta de trabalho como arquivo csv, arquivo de texto ou arquivo xml, mas você já tentou importar vários arquivos csv / text / xml de uma pasta para uma pasta de trabalho ou planilha? Neste artigo, apresento alguns métodos para importá-los em lote rapidamente.

Importe vários arquivos de texto de uma pasta para cada planilha de uma pasta de trabalho com o VBA

Importe vários arquivos csv de uma pasta para uma única folha com VBA

Importe vários arquivos xml de uma pasta para uma única folha com VBA

Importe ou combine vários arquivos xml/csv em uma planilha ou pasta de trabalho com o Kutools para Excel boa ideia 3

Exporte cada planilha como csv/text/pdf para uma pasta com o Kutools para Excelboa ideia 3


Para importar arquivos de texto de uma pasta para uma pasta de trabalho, você pode usar o VBA abaixo para lidar com isso rapidamente.

1. Habilite uma pasta de trabalho em branco e pressione Alt + F11 chaves para abrir Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o VBA no Módulo janela.

VBA: importar todos os arquivos de texto de uma pasta para uma pasta de trabalho

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. Pressione F5 chave ou Execute para executar o VBA e selecione uma pasta da qual deseja importar os arquivos de texto na caixa de diálogo pop-up. Veja a imagem:

doc importar vários textos csv xml 1

4. E clique OK, e cada arquivo de texto na pasta selecionada foi importado para uma planilha da pasta de trabalho ativa. Veja a imagem:

doc importar vários textos csv xml 2doc importar vários textos csv xml 3

Combine facilmente várias folhas / pasta de trabalho em uma única folha ou pasta de trabalho

Combinar múltiplas planilhas ou pastas de trabalho em uma folha ou pasta de trabalho pode ser complicado no Excel, mas com o Combinar função no Kutools para Excel, você pode combinar e mesclar dezenas de planilhas / pastas de trabalho em uma planilha ou pasta de trabalho, além disso, você pode consolidar as planilhas em uma apenas com vários cliques.  Clique para um teste gratuito completo de 30 dias!
combinar folhas
 
Kutools para Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias.

Para importar todos os arquivos csv de uma pasta em uma única planilha, você pode usar o código VBA abaixo.

1. Ative uma planilha em branco e pressione Alt + F11 chaves para abrir Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole abaixo do VBA no novo Módulo janela.

VBA: importar arquivos csv de uma pasta para uma planilha

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. Pressione F5 tecla ou clique Execute para executar o VBA e uma caixa de diálogo é exibida para selecionar uma pasta da qual você deseja importar todos os arquivos csv. Veja a imagem:

doc importar vários textos csv xml 4

4. Clique OK, e uma caixa de diálogo aparece para lembrá-lo se limpar o conteúdo da planilha ativa antes de importar, aqui eu clico Sim. Veja a imagem:

doc importar vários textos csv xml 5

Depois de clicar Sim, todos os arquivos csv na pasta selecionada são importados para a planilha atual e colocam os dados da Coluna A à direita. Veja a imagem:

doc importar vários textos csv xml 6doc importar vários textos csv xml 7

Dica: Se você deseja colocar arquivos csv horizontalmente em uma planilha, você pode usar o VBA abaixo.

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 vários textos csv xml 8


Se você deseja importar todos os arquivos XML de uma pasta para uma única planilha, pode usar o código VBA abaixo.

1. Selecione uma folha em branco onde deseja colocar os dados importados e pressione Alt + F11 chaves para habilitar Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Módulo, cole o código VBA no Módulo janela.

VBA: Importar arquivos XML de uma pasta para uma planilha.

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. Clique Execute botão ou F5 para executar o VBA e selecionar uma pasta na caixa de diálogo popping, veja a captura de tela:

doc importar vários textos csv xml 9

4. Clique OK, e todos os arquivos XML na pasta selecionada são importados para a planilha ativa.


Se você não está familiarizado com o VBA, preocupe-se, aqui apresento uma ferramenta útil - Kutools for Excel para voce. Com seu poderoso Combinar utilitário, você pode combinar rapidamente vários arquivos xml ou arquivos csv em uma pasta de trabalho ou uma planilha do Excel.

Kutools for Excel, com mais de 300 funções úteis, tornam seus trabalhos mais fáceis. 

Depois de instalar Kutools para Excel, faça o seguinte:(Baixe gratuitamente o Kutools para Excel agora!)

1. Active o Excel e clique em Kutools Plus > Combinar. Veja a captura de tela:
doc combinar 1

2. E no passo 1 de combinar caixa de diálogo, escolha uma opção de separação conforme necessário. Veja a imagem:
doc combinar 2

3. Clique Próximo para ir para passo 2 do Combine, clique em Adicionar para adicionar arquivos de várias pastas ou arquivos de uma pasta para livro lista, e também você pode especificar as folhas que deseja combinar Planilha lista da seção certa. Veja a imagem:
doc kutools combinar folhas 3

4. Clique Próximo para a última etapa de Combinar, e você pode especificar as opções de combinação.
doc kutools combinar folhas 4

5. Clique Acabamento, uma caixa de diálogo aparecerá para lembrá-lo de selecionar um local para salvar o novo resultado combinado. Veja a imagem:
doc combinar 5

6. Clique Salvar. Todas as folhas de adição foram combinadas em uma nova folha única.
doc combinar 6

Dica: Com o Combinar, você também pode combinar vários Arquivos CSV formar várias pastas ou uma pasta em uma planilha ou pasta de trabalho.


Se você deseja exportar cada folha como arquivo csv / texto / pdf para uma pasta, Kutools for Excel'S Dividir a pasta de trabalho utilitário pode fazer um favor para você.

Depois de instalação grátis Kutools para Excel, faça o seguinte:

1. Habilite a pasta de trabalho que deseja exportar suas planilhas e clique em Kutools Plus > livro > Dividir a pasta de trabalho. Veja a imagem:

doc importar vários textos csv xml 10

2. No Dividir a pasta de trabalho caixa de diálogo, você pode verificar os nomes das folhas que você precisa exportar, por padrão, todas as folhas são verificadas e verifique Especifique o formato de salvamento e selecione o formato de arquivo que deseja salvar na lista suspensa abaixo. Veja a imagem:

doc importar vários textos csv xml 11

3. Clique Split e selecione uma pasta para salvar os arquivos divididos no Navegar pela pasta caixa de diálogo, veja a captura de tela:

doc importar vários textos csv xml 12

4. Clique OK, agora todas as folhas marcadas são exportadas como novo formato de arquivo na pasta selecionada.


Artigos relativos:

Melhores ferramentas de produtividade de escritório

🤖 Assistente de IA do Kutools: Revolucionar a análise de dados com base em: Execução Inteligente   |  Gerar Código  |  Crie fórmulas personalizadas  |  Analise dados e gere gráficos  |  Invocar funções do Kutools...
Recursos mais comuns: Encontre, destaque ou identifique duplicatas   |  Excluir linhas em branco   |  Combine colunas ou células sem perder dados   |   Rodada sem Fórmula ...
Super pesquisa: VLookup de múltiplos critérios    VLookup de múltiplos valores  |   VLookup em várias planilhas   |   Pesquisa Difusa ....
Lista suspensa avançada: Crie rapidamente uma lista suspensa   |  Lista suspensa de dependentes   |  Lista suspensa de seleção múltipla ....
Gerenciador de colunas: Adicione um número específico de colunas  |  Mover colunas  |  Alternar status de visibilidade de colunas ocultas  |  Compare intervalos e colunas ...
Recursos em destaque: Foco da Grade   |  Vista de Design   |   Grande Barra de Fórmula    Gerenciador de pastas de trabalho e planilhas   |  Biblioteca (Auto texto)   |  Data Picker   |  Combinar planilhas   |  Criptografar/Descriptografar Células    Enviar e-mails por lista   |  Super Filtro   |   Filtro Especial (filtro negrito/itálico/tachado...) ...
15 principais conjuntos de ferramentas12 Texto Ferramentas (Adicionar texto, Remover Personagens, ...)   |   50+ de cores Tipos (Gráfico de Gantt, ...)   |   Mais de 40 práticos Fórmulas (Calcule a idade com base no aniversário, ...)   |   19 Inclusão Ferramentas (Insira o código QR, Inserir imagem do caminho, ...)   |   12 Conversão Ferramentas (Números para Palavras, Conversão de moedas, ...)   |   7 Unir e dividir Ferramentas (Combinar linhas avançadas, Dividir células, ...)   |   ... e mais

Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo.  Clique aqui para obter o recurso que você mais precisa...

Descrição


Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
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