Как быстро импортировать несколько CSV/текстовых/XML файлов в Excel?
В Excel вы, возможно, пробовали сохранить книгу в формате CSV, текстового файла или XML, но пробовали ли вы когда-нибудь импортировать несколько CSV/текстовых/XML файлов из папки в книгу или лист? В этой статье я представлю несколько методов для быстрого пакетного импорта.
Импорт нескольких текстовых файлов из папки в каждый лист книги с помощью VBA
Чтобы импортировать текстовые файлы из папки в книгу, вы можете использовать следующий код VBA для быстрой обработки.
1. Откройте пустую книгу и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Нажмите Insert > Module и вставьте код VBA в окно Module.
VBA: Импорт всех текстовых файлов из папки в книгу
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. Нажмите клавишу F5 или кнопку Run, чтобы запустить VBA, и выберите папку, из которой хотите импортировать текстовые файлы в появившемся диалоговом окне. См. скриншот:
4. Нажмите OK, и каждый текстовый файл из выбранной папки будет импортирован на отдельный лист активной книги. См. скриншот:



Раскройте магию Excel с Kutools AI
- Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
- Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
- Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
- Интерпретация формул: Легко разбирайтесь в сложных формулах.
- Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Импорт нескольких CSV файлов из папки на один лист с помощью VBA
Чтобы импортировать все CSV файлы из папки на один лист, вы можете использовать следующий код VBA.
1. Откройте пустой лист и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Нажмите Insert > Module и вставьте следующий код VBA в новое окно Module.
VBA: Импорт CSV файлов из папки на один лист
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. Нажмите клавишу F5 или кнопку Run, чтобы выполнить VBA, и появится диалоговое окно для выбора папки, из которой вы хотите импортировать все CSV файлы. См. скриншот:
4. Нажмите OK, и появится диалоговое окно с напоминанием очистить содержимое активного листа перед импортом; здесь я нажимаю Да. См. скриншот:
После нажатия Да, все CSV файлы из выбранной папки будут импортированы в текущий лист, начиная с столбца A направо. См. скриншот:


Совет: Если вы хотите разместить CSV файлы горизонтально на листе, вы можете использовать следующий код 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
Импорт нескольких XML файлов из папки на один лист с помощью VBA
Если вы хотите импортировать все XML файлы из папки на один лист, вы можете использовать следующий код VBA.
1. Выберите пустой лист, куда вы хотите поместить импортированные данные, и нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Нажмите Insert > Module, вставьте код VBA в окно Module.
VBA: Импорт XML файлов из папки на лист.
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. Нажмите кнопку Run или клавишу F5, чтобы запустить VBA, и выберите папку в появившемся диалоговом окне, см. скриншот:
4. Нажмите OK, и все XML файлы из выбранной папки будут импортированы на активный лист.
Импорт или объединение нескольких XML/CSV файлов в лист или книгу с помощью Kutools для Excel
Если вы не знакомы с VBA, не беспокойтесь, я представляю вам удобный инструмент – Kutools для Excel. С его мощной утилитой Combine, вы можете быстро объединить несколько XML файлов или CSV файлов в одну книгу или один лист Excel.
После установки Kutools для Excel, пожалуйста, сделайте следующее:(Бесплатная загрузка Kutools для Excel прямо сейчас!)
1. Активируйте Excel и нажмите Kutools Plus > Объединить. См. скриншот:
2. В шаге 1 диалога Объединить выберите нужную опцию разделения. См. скриншот:
3. Нажмите Далее чтобы перейти к шагу 2 диалога Объединить, нажмите Добавить чтобы добавить файлы из разных папок или файлы из одной папки в Книгу список, также вы можете указать листы, которые хотите объединить из Листа списка правой секции. См. скриншот:
4. Нажмите Далее до последнего шага Объединить, и вы можете указать параметры объединения.
5. Нажмите Завершить, появится диалоговое окно с напоминанием выбрать место для сохранения нового объединенного результата. См. скриншот:
6. Нажмите Сохранить. Все добавленные листы были объединены в новый единый лист.
Совет: С помощью функции Объединить вы также можете объединить несколько CSV файлов из нескольких папок или одной папки в один лист или книгу.
Экспорт каждого листа как CSV/текст/PDF в папку с помощью Kutools для Excel
Если вы хотите экспортировать каждый лист как CSV/текст/PDF файл в папку, утилита Разделить Книгу Kutools для Excel может помочь вам.
После бесплатной загрузки и установки Kutools для Excel, пожалуйста, сделайте следующее:
1. Откройте книгу, которую хотите экспортировать, и нажмите Kutools Plus > Книга > Разделить Книгу. См. скриншот:
2. В диалоговом окне Разделить Книгу вы можете отметить названия листов, которые нужно экспортировать; по умолчанию отмечены все листы. Также отметьте Указать формат сохранения и выберите желаемый формат файла из выпадающего списка ниже. См. скриншот:
3. Нажмите Разделить и выберите папку для сохранения разделенных файлов в диалоговом окне Browse for Folder, см. скриншот:
4. Нажмите OK, теперь все отмеченные листы экспортированы в новый формат файла в выбранной папке.
Связанные статьи:
- Как преобразовать гиперссылку в обычный текст в Excel?
- Как преобразовать десятичное число в двоичное/восьмеричное/шестнадцатеричное или наоборот в Excel?
- Как вставить актуальный курс валют в Excel?
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!