如何将word中的数据批量提取到excel中?

具体需求

提取Word文档中特定信息到Excel,Word文档结构如下(需提取内容已经用黄色标识):

提取思路

一个文档中,有多个这样的缴费清单,我们要提取的是一些固定关键字之后的数据。

所以,我们循环文档的所有段落,如果包含【物业管理清册】关键字,则获取他的下两行数据,并且提取关键字。

具体代码

Sub 循环打开工作簿()
    On Error GoTo 1
    k = 1

    Rows("2:65536").Clear '清除上次数据
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.AskToUpdateLinks = False
    pth = Application.GetOpenFilename("文件(*.doc*),*.doc*", , "请选择文件", , False) '打开doc后缀的文档
    If pth = "False" Then Exit Sub '如果用户选择了取消,直接退出
    Set doc = CreateObject("word.application")                 '创建Word对象
    doc.Visible = True '显示word主程序
    Set wd = doc.Documents.Open(pth) '打开word文档,赋值给对象变量wd
    For Each tbl In wd.tables '删除文档中所有的表格,因为表格过多,影响循环段落的效率。
        tbl.Delete
    Next
    For i = 1 To wd.Paragraphs.Count - 2 '循环到倒数第三段
        a = wd.Paragraphs(i).Range.Text '获取这几段的内容,分别赋值给a、b、c变量
        b = wd.Paragraphs(i + 1).Range.Text
        c = wd.Paragraphs(i + 2).Range.Text
        If InStr(a, "物业管理费缴费清册") Then '开始取数据
            k = k + 1
            Cells(k, 1) = k - 1                                '序号
            Cells(k, 2) = l(Split(Split(b, ":")(1), "面积")(0))  '楼号楼室
            Cells(k, 3) = l(Split(Split(b, "面积")(1), "㎡")(0))  '面积
            Cells(k, 4) = l(Split(Split(c, "姓名")(1), "电话")(0)) '姓名
            Cells(k, 5) = l(Split(Split(c, "电话")(1), "月缴费")(0)) '电话
            Cells(k, 6) = l(Split(Split(c, "月缴费")(1), "元")(0)) '月缴费
            Cells(k, 7) = l(Split(Split(c, "年缴费")(1), "元")(0)) '年缴费
        End If
    Next
1:     wd.Close False '关闭原始文档,并且不保存
    doc.Quit '关闭Word主程序
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
    If Err.Number <> 0 Then
        MsgBox Err.Description & vbCrLf & "提取出现错误,联系作者解决!"
    End If
    MsgBox "提取完成!"
End Sub
Function l(s)
    l = Replace(s, ":", "") '去除冒号自定义函数
End Function

知识点

  • Excel创建Word程序对象
这里使用后期绑定的方式创建Word主程序,并且新建一个word文档。向Word文档中写入内容123,最后另存为本工作簿路径下的一个文档。
  '后期绑定
Sub 操作word1()                                              '打开Word写入文字
    Set doc = CreateObject("word.application")                 '创建Word对象
    Set wd = doc.Documents.Add
    doc.Visible = True
    strr = 123                                                 '需要导入的字符串
    .TypeText strr
    .TypeParagraph
    wd.SaveAs ThisWorkbook.Path & "\例子.docx"
    doc.Quit                                                   '关闭程序
End Sub

  • Split函数

关于Split函数,可以看之前的两篇文章,都有详细的讲解。

  • GetOpenFilename函数

想弹出对话框,打开某些特定后缀的文件,就用GetOpenFilename。具体用法可参见之前的文章。获取文件全路径(一)GetOpenFilename 方法

常用的代码是以下的模板:

'允许选择多个文件

Sub 循环打开工作簿()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.AskToUpdateLinks = False
    pth = Application.GetOpenFilename("文件(*.xls*),*.xls*", , "请选择文件", , True)
    If IsArray(pth) = False Then Exit Sub
    For i = 1 To UBound(pth)
        Set wb = Workbooks.Open(pth(i))
        '########汇总数据的核心操作##########
        wb.Close False
    Next
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
End Sub

'只允许选择一个文件

Sub 循环打开工作簿()
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    Application.AskToUpdateLinks = False
    pth = Application.GetOpenFilename("文件(*.xls*),*.xls*", , "请选择文件", , False)
    Set wb = Workbooks.Open(pth)
    '########汇总数据的核心操作##########
    wb.Close False
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Application.AskToUpdateLinks = True
End Sub

更多更详细的WordVBA知识,详见《WordVBA精讲课

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在现代的办公环境数据和信息的快速处理变得至关重要。随着Python编程语言的普及,许多原本耗时繁琐的任务现在可以通过简单的脚本自动完成。其,一键将Word的表格提取Excel文件的功能就是一项非常实用的自动化任务。这个Python自动化办公源码的核心功能是实现Word文档表格数据提取,并将其导出到Excel文件,极大地简化了从WordExcel数据迁移过程。用户只需运行这个脚本,选择需要处理的Word文件,然后该脚本会自动识别Word文档内的表格,将其内容准确地提取出来,并保存到一个新建的Excel工作簿。使用此脚本的好处在于:节省时间:自动化的过程比手工复制粘贴要快得多,特别是当涉及到大量数据时。减少错误:人工操作容易出错,而自动化脚本减少了因手动操作导致的错误。易于使用:即使是没有编程背景的用户,也可以通过简单的配置来使用这个脚本。可定制性:熟悉Python的用户可以根据自己的需求修改脚本,以适应不同的任务。无需额外软件:只需安装Python和必要的库,无需其他特殊软件支持。这个脚本通常依赖于python-docx和openpyxl等库来分别处理WordExcel文件。它首先加载Word文档,遍历其的表格,读取每个单元格的内容,然后将这些内容写入到Excel的新工作表。整个过程只需要几次点击和简短的等待时间。总之,这个一键将Word的表格提取Excel文件的Python脚本是一个强大的自动化工具,它不仅提高了工作效率,还确保了数据处理的准确性,对于需要经常处理文档的办公人员来说,是一个非常有价值的工具。重新回答||

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值