You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac版Microsoft Excel 365如何用Power Query导入多CSV文件夹?

Mac版Excel 365批量合并多个CSV文件到单个工作表

针对Mac版Excel没有Get Data>From File>From Folder选项的问题,提供两种实用的批量合并方案,适配Cyclistic案例研究的数据预处理需求:

方案一:Power Query批量读取(推荐,无需代码基础)

  1. 打开Excel,点击数据选项卡 → 从文本/CSV,选择文件夹内任意一个CSV文件,导入到Power Query编辑器。
  2. 在Power Query编辑器中,点击菜单栏的高级编辑器(位于「视图」或「主页」选项卡下)。
  3. 将默认的M代码替换为以下代码,注意修改文件夹路径为你桌面的CSV文件夹实际路径:
let
    Source = Folder.Files("/Users/你的用户名/Desktop/Cyclistic数据文件夹"),
    FilteredFiles = Table.SelectRows(Source, each [Extension] = ".csv"),
    AddedCustom = Table.AddColumn(FilteredFiles, "CSV数据", each Table.FromCsv([Content])),
    CombinedTables = Table.Combine(AddedCustom[CSV数据])
in
    CombinedTables
  • 获取Mac文件夹路径的方法:右键目标文件夹,按住Option键,选择「复制为路径名称」,粘贴到代码对应位置。
  1. 点击完成,所有CSV文件会自动合并到单个工作表中,后续可直接在Excel内进行数据清洗。

方案二:VBA宏批量合并

如果习惯用宏操作,可使用以下代码:

  1. 打开Excel,按Alt + F11打开VBA编辑器。
  2. 右键左侧的工作簿名称 → 插入 → 模块,粘贴以下代码:
Sub 批量合并CSV()
    Dim 文件夹路径 As String, 文件名称 As String
    Dim 目标工作表 As Worksheet, 当前工作表 As Worksheet
    Dim 起始行 As Long
    
    ' 创建合并结果工作表
    Set 目标工作表 = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    目标工作表.Name = "合并结果"
    
    ' 选择CSV所在文件夹
    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "选择存放CSV的文件夹"
        If .Show = -1 Then
            文件夹路径 = .SelectedItems(1) & "/"
        Else
            Exit Sub
        End If
    End With
    
    文件名称 = Dir(文件夹路径 & "*.csv")
    起始行 = 1
    
    Do While 文件名称 <> ""
        ' 导入单个CSV到临时工作表
        Set 当前工作表 = ThisWorkbook.Sheets.Add
        With 当前工作表.QueryTables.Add(Connection:="TEXT;" & 文件夹路径 & 文件名称, Destination:=当前工作表.Range("A1"))
            .TextFileParseType = xlDelimited
            .TextFileCommaDelimiter = True
            .Refresh
        End With
        
        ' 复制数据到目标表,跳过重复表头(首个文件保留表头)
        If 起始行 > 1 Then
            当前工作表.Rows("2:" & 当前工作表.Cells(当前工作表.Rows.Count, "A").End(xlUp).Row).Copy _
                目标工作表.Cells(起始行, "A")
        Else
            当前工作表.Rows("1:" & 当前工作表.Cells(当前工作表.Rows.Count, "A").End(xlUp).Row).Copy _
                目标工作表.Cells(起始行, "A")
        End If
        
        ' 更新起始行并删除临时表
        起始行 = 目标工作表.Cells(目标工作表.Rows.Count, "A").End(xlUp).Row + 1
        Application.DisplayAlerts = False
        当前工作表.Delete
        Application.DisplayAlerts = True
        
        文件名称 = Dir
    Loop
    
    MsgBox "CSV合并完成!"
End Sub
  1. 点击工具栏的「运行」按钮(绿色三角),选择你的CSV文件夹即可完成批量合并。

注意事项

  • 确保所有CSV文件的表头结构一致,避免合并后列错位。
  • Power Query方案会自动处理重复表头,可在合并后筛选删除多余的表头行。

内容的提问来源于stack exchange,提问作者Nabil Benaissa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:15:30