如何批量提取文件名到EXCEL表
如果想批量提取某个文件夹中的文件名到Excel中,该如何操作呢?下面就来给大家分享操作方法。
工具/材料
Excel2010
操作方法
首先,如图所示的文件夹,我们将要提取里面所有jpg图片的名字。
接下来点击开始菜单,找到记事本程序打开。然后右击上面所示文件夹的地址,复制地址。
在记事本中按右键粘贴。粘贴好后在地址前输入for /r,在地址后输入%%a in (*.jpg) do echo %%~na >>生成文件.txt。注意里面的jpg要换成你自己要提取的文件类型扩展名。
接下来点击关闭按钮,点击保存,在保存对话框中选择保存类型为所有文件,再输入文件名,文件名后加上“.bat”,也就是保存成批处理文件。
把该批处理文件移动到要提取文件名的文件夹里,然后双击运行。
文件夹里就多出了一个生成文件.txt的记事本文档。双击打开就看到所有的文件名了。
打开Excel,点击数据,点击自其他来源,来自XML数据导入。
在导入对话框中选择生成文件.txt,点击打开。在导入向导中点击完成。
在导入数据位置中点击确定,名字就导入到Excel表中了。
批量提取word文件名到excel
拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中
最近,有小伙伴跟我提了一个需求,小伙伴是做扶贫工作的,从扶贫系统里面可以批量的导出每一户的信息到一个word文档中,导出的内容是在word中是以表格的形式存在的。小伙伴的需求是如何批量的将每个word文档中的贫困户信息汇总到Excel表格中,生成一个汇总的表格,方便进行数据分析比对。为了模拟以上需求,本人设计了一个模拟的业务场景。Word文档中存储了每一位学生的考试成绩信息,模板如下:
每一位学生的成绩是一个word文档,文件以学生姓名命名,如下所示:
内容如下:
我们需要得到的结果是以下形式:
如何实现该业务逻辑呢?没错,VBA就是一个不错的选择。学过VBA的小伙伴都知道,在Excel VBA中我们可以直接打开word文档,然后在word文档中是以表格的形式存放数据,此时我们可以直接获取到表格对象,获取到表格对象以后就可以采用和Excel表格类似的办法取出单元格中的数据。下面就给大家介绍一下VBA代码的实现。
1.定义变量定义wordapp为word应用程序对象,mydoc为word文档对象,mytab为word表格对象。代码如下:
Dim wordapp As Object, mytab As Object,mydoc as Object
定义字符串类型的变量dirpath用于存储需要合并的word文档所在文件夹的路径,myfile用于存储文件的名称。
Dim dirpath$, myfile$
2.创建word应用程序对象通过创建对象的方式创建word应用程序对象,代码如下:
Set wordapp = CreateObject("word.application")
3.定义word文件存放路径定义需要合并的word文档所在的路径,ThisWorkbook.Path获取到的是本Excel文件所在的路径。
dirpath = ThisWorkbook.Path & "/word/"
4.获取路径下word文档合集通过Dir函数可以获取到制定文件夹下的所有文件。
myfile = Dir(dirpath & "*.docx")
5.清空汇总的Excel表中的内容在开始新的合并之前,需要将Excel中指定区域的内容清空。
Range("a2:h10000").ClearContents
6.循环读取文件夹下文档使用Do While循环语句循环读取文件夹的文件
Do While myfile <> ""
Loop
7.打开word文件使用Open方法可以打开word文档。
Set mydoc = wordapp.Documents.Open(dirpath & myfile)
8.获取表格对象Set mytab = mydoc.tables(1)
9.获取word表格中单元格内容,存储到excel通过表格的cell方法(类似Excel中的cells的用法,注意这里没有s),读取单元格的内容,然后存储到Excel汇总表中。此时,在读取内容的过程中,最后会读取出一个特殊字符,此时我们可以自定义一个函数,将读取内容的最后一个字符去除。函数如下:
Function tt(rtext)
tt = Left(rtext, Len(rtext) - 1)
End Function
读取的代码如下:
Cells(i, 1) = tt(mytab.Cell(1, 2).Range.Text)
Cells(i, 2) = tt(mytab.Cell(1, 4).Range.Text)
Cells(i, 3) = tt(mytab.Cell(2, 2).Range.Text)
Cells(i, 4) = tt(mytab.Cell(3, 2).Range.Text)
Cells(i, 5) = tt(mytab.Cell(4, 2).Range.Text)
Cells(i, 6) = tt(mytab.Cell(4, 4).Range.Text)
Cells(i, 7) = tt(mytab.Cell(5, 2).Range.Text)
Cells(i, 8) = tt(mytab.Cell(5, 4).Range.Text)
10.读取完成后跳转到下一个文件myfile = Dir
11.关闭文档Word文档和word程序在所有操作完成后,需要进行关闭操作。
mydoc.Close False
wordapp.Quit
完整的代码如下:
如果大家需要获取演示文件及完整代码,请关注我后私信【word到Excel】获取。
- 01-31教育
口才培训班哪里可以报
- 11-22科技
思科认证难不难考
- 02-26生活
公会名字大全最拉风
- 06-13科技
使用PS制作简单的拼图
- 04-13生活
泡菜上有白膜还能吃吗
- 03-04生活
鼠年女宝宝取什么名字好姓刘
- 03-17民俗
结婚90年是什么婚
- 11-12科技
微信怎么小窗私聊
推荐
- 1我自横刀向天笑的意思是什么109
- 2延安的相关资料是什么?242
- 3皮芽子和洋葱有什么区别388
- 4狐狸吃兔子吗271
- 5醒花与不醒花的区别447
- 6韭菜鸡蛋馅怎么调不出水381