跳到主要内容

如何在Excel中快速批量导入多个csv / text / xml文件?

作者:孙 最后修改时间:2024-08-29

在Excel中,您可能不得不将工作簿另存为csv文件,文本文件或xml文件,但是您是否曾经尝试将多个csv / text / xml文件从一个文件夹导入到工作簿或工作表中? 在本文中,我介绍了一些快速批量导入它们的方法。


使用VBA将文件夹中的多个文本文件导入到工作簿的每个工作表中

要将文本文件从文件夹导入到工作簿中,可以使用VBA下面的命令对其进行快速处理。

1.启用空白工作簿,然后按 Alt + F11键 打开钥匙 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将VBA粘贴到 模块 窗口。

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 键或 运行 按钮以运行VBA,并在弹出对话框中选择要从中导入文本文件的文件夹。 看截图:

选择要从中导入 txt 文件的文件夹的屏幕截图

4.然后点击 OK,并且所选文件夹中的每个文本文件都已导入到活动工作簿的一个工作表中。 看截图:

显示所选文件夹中的每个文本文件已导入当前工作簿的不同工作表的屏幕截图屏幕截图显示所选文件夹中的每个文本文件已导入到当前工作簿 2 的不同工作表中
kutools for excel ai 的屏幕截图

使用Kutools AI解锁Excel魔法

  • 智能执行:执行单元格操作、分析数据和创建图表——全部由简单的命令驱动。
  • 自定义公式:生成定制公式以简化您的工作流程。
  • VBA 编码:轻松编写和执行 VBA 代码。
  • 公式解释:轻松理解复杂的公式。
  • 文本翻译:打破电子表格中的语言障碍。
使用人工智能工具增强您的 Excel 功能。 现在下载 并体验前所未有的效率!

使用VBA将文件夹中的多个csv文件导入到一张工作表中

要将所有csv文件从一个文件夹导入到一张纸中,可以使用以下VBA代码。

1.启用空白工作表,然后按 Alt + F11键 打开钥匙 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后在VBA下面粘贴到新 模块 窗口。

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 键或单击 运行 按钮执行VBA,然后弹出一个对话框,选择要从其中导入所有csv文件的文件夹。 看截图:

选择要将 csv 文件导入单个工作表的文件夹的屏幕截图

4。 点击 OK,然后会弹出一个对话框,提醒您在导入之前是否清除了活动工作表的内容,请点击此处 Yes。 看截图:

提示框截图,提示您是否要在导入 csv 文件前清除现有工作表

点击后 Yes,所选文件夹中的所有csv文件都将导入到当前工作表中,并将数据从A列向右放置。 看截图:

显示所选文件夹中的所有 csv 文件均已导入当前工作表的屏幕截图屏幕截图显示所选文件夹中的所有 csv 文件都已导入到当前工作表 2

提示: 如果要将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 

在工作表中水平导入 csv 文件的屏幕截图


使用VBA将文件夹中的多个xml文件导入到一张工作表中

如果要将所有XML文件从一个文件夹导入到一张纸中,则可以使用以下VBA代码。

1.选择要放置导入数据的空白表,然后按 Alt + F11键 启用键 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,将VBA代码粘贴到 模块 窗口。

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。 点击 运行 按钮或 F5 键运行VBA,然后在弹出对话框中选择一个文件夹,请参见屏幕截图:

选择要将 xml 文件导入单个工作表的文件夹的屏幕截图

4。 点击 OK,并将所选文件夹中的所有XML文件导入到活动工作表中。


使用 Kutools for Excel 将多个 xml/csv 文件导入或合并到工作表或工作簿中

如果您不熟悉VBA,请放心,在这里,我介绍一个方便的工具– Kutools for Excel 为了你。 凭借其强大 结合 实用程序,您可以将多个xml文件或csv文件快速组合到一个工作簿或一个Excel工作表中。

安装后 Kutools for Excel,请执行以下操作:(立即免费下载Kutools for Excel!)

1. Active Excel,然后单击 Kutools 加 > 结合。 查看截图:
启用 Kutools for Excel 的合并功能的屏幕截图

2.然后 合并的第一步 对话框中,根据需要选择一个分离选项。 看截图:
在合并工作表向导中根据需要选择一个操作的屏幕截图

3。 点击 点击下一页合并的第2步,单击“ 添加 将各种文件夹中的文件或一个文件夹中的文件添加到 工作簿 列表,还可以指定要从中合并的图纸 工作表 右侧部分列表。 看截图:
添加文件或文件夹并指定要合并的工作表的屏幕截图

4。 点击 点击下一页 到最后一步 结合,然后您可以指定合并选项。
指定合并选项的屏幕截图

5。 点击 完成,会弹出一个对话框,提醒您选择一个位置来保存新的合并结果。 看截图:
选择保存新合并文件位置的屏幕截图

6。 点击 已保存。 所有添加的工作表都已合并为一个新的工作表。
显示所有添加的工作表已合并到新的单个工作表中的屏幕截图

提示: 通过 结合,您也可以将多个 CSV文件 在一个工作表或工作簿中形成多个文件夹或一个文件夹。


使用 Kutools for Excel 将每个工作表导出为 csv/text/pdf 到文件夹

如果要将每张工作表作为csv / text / pdf文件导出到文件夹, Kutools for Excel拆分工作簿 实用程序可以帮您一个忙。

免费下载和安装 Kutools for Excel,请执行以下操作:

1.启用要导出其工作表的工作簿,然后单击 Kutools 加 > 工作簿 > 拆分工作簿。 看截图:

启用拆分工作簿功能的屏幕截图

2.在 拆分工作簿 对话框中,您可以检查您需要导出的工作表名称,默认情况下,所有工作表均已选中,然后检查 指定保存格式 然后从下拉列表中选择要另存为的文件格式。 看截图:

检查要导出的工作表名称并指定保存格式的屏幕截图

3。 点击 分裂 然后选择一个文件夹将拆分文件保存在 浏览文件夹 对话框,请参见屏幕截图:

选择目标文件夹来保存导出文件的屏幕截图

4。 点击 OK,现在所有选中的工作表都将作为新文件格式导出到所选文件夹中。


相关文章:


最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!