如何将当前文件夹及其子文件夹下的所有word提取到一个excel里
这里提供五种主流方法将文件夹中的Word文件汇总到Excel,涵盖文件名提取、内容转换及自动化处理:
一、命令行提取文件名(基础操作)
- 生成文件列表
打开CMD执行命令:
根据搜索结果,提取当前目录及其子文件夹所有.doc文件的CMD命令如下:
核心命令:
dir /s/b *.doc > filelist.txt
参数详解:
/s
:递归遍历子文件夹/b
:仅显示裸文件名(含完整路径)*.doc
:筛选扩展名为.doc的文件(兼容Word 97-2003格式)>
:将结果输出到filelist.txt文件
扩展需求处理方案:
-
同时提取.doc和.docx文件:
dir /s/b *.doc? > combined_list.txt
-
带日期格式的文件列表(示例为YYYYMMDD):
@echo off for /f "tokens=2 delims==." %%a in ('wmic OS get LocalDateTime /value^|find "="') do set t=%%a dir /s/b *.doc > filelist_%t:~0,8%.txt
生成结果示例:
C:\Docs\报告.doc
C:\Docs\2025\项目\合同.doc
C:\Docs\技术\存档\旧文档.doc
注意事项:
- 中文路径兼容:建议将bat文件保存为ANSI编码(记事本另存为时选择)
- 权限问题:若遇访问被拒,需以管理员身份运行CMD
- 子文件夹深度:默认支持最大248层子目录
如需创建自动化脚本,可将命令保存为.bat
文件,双击即可生成列表。该方案适用于Windows全版本系统(XP至Win11),生成速度可达每秒处理2000+文件。
此命令生成纯文本文件名列表,支持.doc和.docx格式。
- 导入Excel处理
- 新建Excel,通过【数据】-【从文本】导入list.txt
- 使用分列功能拆分文件名与扩展名
- 筛选重复项:选中列 →【数据】-【删除重复项】
适用场景:仅需统计文件名出现次数或管理文件目录。
二、Excel内置工具批量导入
-
Word转Excel内容
- Excel中选择【数据】-【获取数据】-【自文件】-【从文件夹】
- 勾选“合并和转换数据”加载所有Word文件
- 通过Power Query筛选表格数据后导出
-
格式兼容性
需确保Word内容为规范表格,复杂图文可能丢失格式。
优势:无需编程,Office 2016及以上版本直接支持。
三、VBA宏自动化处理
Sub MergeWordToExcel()Dim wdApp As Object, wdDoc As ObjectSet wdApp = CreateObject("Word.Application")For Each file In 文件夹路径Set wdDoc = wdApp.Documents.Open(file)For Each tbl In wdDoc.Tablestbl.Range.CopyThisWorkbook.Sheets(1).Cells(插入行, 1).PasteSpecial插入行 = 插入行 + tbl.Rows.CountNext tblwdDoc.CloseNext filewdApp.Quit
End Sub
操作提示:
- 修改
文件夹路径
为实际存储位置 - 表格数据将按顺序粘贴至Excel首列
- 需启用Excel的开发者权限(【文件】-【选项】-【自定义功能区】勾选开发工具)
适用场景:需提取Word表格数据且文件结构统一。
四、第三方工具高效转换
-
优速文件名提取器
- 拖放Word文件 → 导出为.xlsx格式
- 自动提取文件名及创建时间等元数据
-
我的ABC软件工作箱
- 选择【Word转Excel】功能
- 批量导入文件后指定输出路径,支持保留基础排版
工具对比:
工具名称 | 处理速度 | 数据保留度 | 学习成本 |
---|---|---|---|
优速 | ★★★★☆ | ★★☆☆☆ | 低 |
ABC工作箱 | ★★★☆☆ | ★★★★☆ | 中 |
推荐场景:处理超百份文件或需保留部分格式(如字体颜色)。
五、Python脚本进阶处理
import os
from docx import Document
import pandas as pddef extract_content(doc_path):doc = Document(doc_path)data = []for para in doc.paragraphs:if para.text.strip(): # 过滤空行data.append([para.text])for table in doc.tables:for row in table.rows:data.append([cell.text for cell in row.cells])return dataall_data = []
for root, _, files in os.walk("Word文件夹路径"):for file in files:if file.endswith((".docx", ".doc")):full_path = os.path.join(root, file)all_data.extend(extract_content(full_path))df = pd.DataFrame(all_data)
df.to_excel("汇总结果.xlsx", index=False)
扩展能力:
- 可添加正则表达式筛选特定内容(如电话号码)
- 支持将图片转为Base64编码存入Excel
- 需安装
python-docx
和pandas
库
适用人群:有编程基础且需定制化处理流程的用户。
方法选择建议
- 初级用户:优先用方法二或方法四,操作可视化且容错率高
- 批量处理:超过50个文件建议使用方法四或五
- 开发需求:长期需处理同类任务可编写VBA/Python脚本
- 数据安全:涉密文件建议离线使用本地工具(如方法三、四)
注意事项:
- Word中的合并单元格可能导致Excel数据错位,建议预处理
- 若出现乱码,检查文件编码是否为UTF-8
- 超大型文件(如超过50MB)建议分批次处理
如需具体某类文件的转换案例(如合同关键信息提取),可提供更细化的实现逻辑。