可使用power query、追加查询或vba宏批量导入文本文件至excel。power query支持从文件夹自动合并结构相似的.txt/.csv文件;追加查询适用于需单独清洗再合并的少量文件;vba宏则适合高频自动化操作,直接读取指定路径下所有.txt文件内容写入工作表。

如果您需要将多个文本文件中的数据统一导入到Excel中,可以利用Power Query或VBA等工具实现批量处理。以下是几种可行的操作方法:
一、使用Power Query批量导入文本文件
Power Query是Excel内置的数据获取与转换工具,支持从同一文件夹下自动识别并合并多个结构相似的文本文件(如.txt、.csv),无需逐一手动打开。
1、在Excel中,点击【数据】选项卡,选择【获取数据】→【从文件】→【从文件夹】。
2、在弹出窗口中,浏览并选中存放所有目标文本文件的文件夹,点击【确定】。
3、Power Query会列出该文件夹内全部文件,勾选【Content】列右侧的展开按钮(双箭头图标)。
4、在弹出的对话框中,选择【不进行任何转换】,点击【确定】。
5、此时每行代表一个文件的内容,点击【Content】列上方的【转换】→【使用第一行作为标题】(若文本首行为字段名)。
6、检查数据预览无误后,点击左上角【关闭并上载】,数据将自动加载至新工作表中。
二、使用“获取数据→从文本/CSV”配合追加查询
当文本文件数量较少且命名有规律时,可先导入一个样本文件建立查询模板,再通过追加方式合并其余文件,适用于需对各文件单独预处理的场景。
1、点击【数据】→【获取数据】→【从文件】→【从文本/CSV】,选择任一目标文本文件,点击【导入】。
2、在Power Query编辑器中完成列分隔、数据类型设置等清洗操作,关闭并上载该查询(命名为“Template”)。
3、再次进入【数据】→【获取数据】→【从文件】→【从文本/CSV】,选择第二个文本文件,导入后执行相同清洗步骤,关闭并上载时不勾选【将数据加载到工作表】,仅保留查询(命名为“File2”)。
4、在【数据】选项卡中点击【获取数据】→【高级编辑器】,新建空白查询,输入公式:= Table.Combine({Template, File2, File3})(按实际查询名称替换File3等)。
5、点击【完成】,结果将作为新查询显示,右键该查询选择【加载到】→【现有工作表】指定位置。
三、使用VBA宏代码自动导入
VBA脚本可绕过交互界面,直接读取指定路径下所有文本文件内容并按顺序写入工作表,适合熟悉基础编程逻辑且需高频重复操作的用户。
1、按Alt + F11打开VBA编辑器,在左侧工程资源管理器中右键【ThisWorkbook】→【插入】→【模块】。
2、在右侧代码窗口中粘贴以下语句:Sub ImportAllTextFiles() Dim fso As Object, folder As Object, file As Object Dim wb As Workbook, ws As Worksheet Set wb = ThisWorkbook: Set ws = wb.Sheets(1) Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\Your\Text\Path\") For Each file In folder.Files If LCase(fso.GetExtensionName(file.Name)) = "txt" Then With ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0)&13; .Value = "=== " & file.Name & " ===" .Offset(1, 0).Value = GetFileContent(file.Path) End With End If Next End Sub
3、在同一模块中添加辅助函数:Function GetFileContent(filePath As String) As String Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") GetFileContent = fso.OpenTextFile(filePath, 1).ReadAll End Function
4、修改代码中"C:\Your\Text\Path\"为实际文本文件所在文件夹完整路径(注意末尾斜杠不能省略)。
5、将光标置于Sub过程内任意位置,按F5运行宏,所有.txt文件内容将依次写入当前工作簿第一个工作表。










