如何将多个TXT文件导入Excel同工作表的独立行中
嘿,这个需求我之前帮同事处理过,给你三个靠谱的方法,按需选就行:
方法1:Power Query(最省心,零代码)
这是我最推荐的方式,Excel自带工具,操作简单还不容易出错:
- 打开Excel新建空白工作表,切换到「数据」选项卡
- 点击「获取数据」→「从文件」→「从文件夹」
- 选择存放所有TXT文件的文件夹,点击「确定」
- 在弹出的预览界面,切换到「添加列」选项卡,点击「自定义列」
- 在公式框里输入:
=Text.Combine(Lines.FromBinary(File.Contents([Name])), "#(lf)")这里的
#(lf)是换行符,能让原TXT里的每行内容在Excel单元格内保留换行;如果想换成空格分隔,就把#(lf)改成" " - 点击「确定」后,删除掉不需要的列(比如名称、路径这些),只留你新建的自定义列
- 最后点击「关闭并上载」,所有TXT文件的内容就会自动对应到Excel的每一行里啦
如果遇到编码问题(比如中文乱码),可以把公式改成=Text.Combine(Lines.FromBinary(File.Contents([Name]), 65001), "#(lf)"),65001是UTF-8编码,根据你的TXT编码调整就行。
方法2:VBA宏(灵活度高,适合批量操作)
如果经常需要做这类操作,写个宏一劳永逸:
- 打开Excel,按
Alt+F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选择「插入」→「模块」
- 把下面的代码粘贴进去:
Sub ImportTXTtoSingleRow() Dim fd As FileDialog Dim filePath As String Dim fileNames As Variant Dim i As Integer Dim fileContent As String Dim rowNum As Integer ' 让用户选择存放TXT的文件夹 Set fd = Application.FileDialog(msoFileDialogFolderPicker) If fd.Show = -1 Then filePath = fd.SelectedItems(1) & "\" Else MsgBox "未选择文件夹,操作取消" Exit Sub End If rowNum = 1 ' 从第一行开始写入数据 ' 遍历文件夹里所有TXT文件 fileNames = Dir(filePath & "*.txt") Do While fileNames <> "" ' 读取整个文件的内容 Open filePath & fileNames For Input As #1 fileContent = Input$(LOF(1), 1) Close #1 ' 把内容写入当前行的A列 Cells(rowNum, 1).Value = fileContent ' 开启自动换行,方便查看内容 Cells(rowNum, 1).WrapText = True ' 调整行高适配内容(可选) Rows(rowNum).AutoFit rowNum = rowNum + 1 fileNames = Dir() ' 获取下一个文件 Loop MsgBox "导入完成!共处理了" & rowNum - 1 & "个TXT文件" End Sub
- 按
F5运行宏,选择你的TXT文件夹,坐等完成就行
方法3:手动辅助(适合文件少的情况,不推荐50个的场景)
如果临时应急,也可以这么干:
- 打开一个TXT文件,全选内容(
Ctrl+A)复制 - 切换到Excel,选中某一行的单元格,粘贴
- 重复上面的步骤直到所有文件都处理完
50个文件的话这个方法太费时间,除非你没别的办法,否则不建议用
内容的提问来源于stack exchange,提问作者Sukh
相关产品推荐
相关产品推荐

