ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ahjylb

[求助] 求各位大侠帮帮我,如何实现从Word中批量提取数据到Excel中

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-28 10:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用vba 就可以了

TA的精华主题

TA的得分主题

发表于 2017-7-28 10:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ammyc 发表于 2017-7-27 23:45
请解释下代码第23行的“g.submatches”的用法

http://club.excelhome.net/thread-1128647-2-1.html
正则表达式入门与提高---VBA平台的正则学习参考资料

TA的精华主题

TA的得分主题

发表于 2017-7-28 16:13 | 显示全部楼层
本帖最后由 weiqigreen 于 2017-7-28 16:17 编辑

谁来帮忙解释一下正则表达式呢,解释一两个字段即可

"姓名[:\s]*(\S+).+?性别[:\s]*(\S+).+?民" & _
        "族[:\s]*(\S+).+?公民身份证号[:\s]*(\S+).+?出生日期" _
        & "[:\s]*(\S+).+?学历(参照《学历代码》填写相应代码)" & _
        "[:\s]*(\S+).+?人员类别[:\s]*(\S+).+?所在党支部(填写全称)" _
        & "[:\s]*(\S+).+?加入党组织日期[:\s]*(\S+).+?转为正式党员日期" & _
        "[:\s]*(\S+).+?工作岗位(参照《工作岗位代码》填写相应代码)" & _
        "[:\s]*(\S+).+?联系电话(手机号)[:\s]*(\d+).+?(固定电话)" & _
        "[:\s]*(\d+).+?家庭住址(具体到门牌号)[:\s]*(\S+).+?党籍状态" & _
        "[:\s]*(\S+).+?是否为失联党员[:\s]*(\S+).+?失去联系日期[:\s]*?(\S+)是否为流动党员(由流出地党组织负责采集)" & _
        "[:\s]*(\S+).+?外出流向:(.*?)\r"

TA的精华主题

TA的得分主题

发表于 2017-7-28 16:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
确实厉害!例如第一句,
"姓名[:\s]*(\S+).+?性别[:\s]*(\S+).+?民" & _
\s不是不可见的字符吗?这里的中括号又是什么意思?为什么每一个性别、民族前面都要加一个?号。
原文如下:
-----------------------------------------------------------
1.姓名:和冬菊    2.性别:女   3.民族:白族
4.公民身份证号: 5334231923

TA的精华主题

TA的得分主题

发表于 2017-7-30 10:43 | 显示全部楼层
我学着用VBA做出来了,可联系我QQ1245339541,注明:ahjylb

TA的精华主题

TA的得分主题

发表于 2017-7-30 20:53 | 显示全部楼层
zhanglei1371 发表于 2017-7-27 11:38
首先,打开党员信息的word文件,alt+F11━→粘贴代码进去:
然后打开Excel文件,将你的excel解除保护(你 ...

老师:上面的正则怎么没体现换行?word  中应有换行呀。能讲解一下吗

TA的精华主题

TA的得分主题

发表于 2017-7-30 22:48 | 显示全部楼层
jiaxinl 发表于 2017-7-28 08:27
不知道大家有没有发现   失去联系日期 后面不管有没有数据  提取到的都是 "16."[/ ...

你发现的这个问题,我觉得是因为15.是否为失联党员:否 失去联系日期
这个“失去联系日期”为空,导致的。
那么问题来了,当遇到这种为空的字段该如何处理呢?

TA的精华主题

TA的得分主题

发表于 2017-7-31 09:31 来自手机 | 显示全部楼层
weiqigreen 发表于 2017-7-30 22:48
你发现的这个问题,我觉得是因为15.是否为失联党员:否 失去联系日期
这个“失去联系日期”为空,导致 ...

失去联系日期[:\s]*?(\S+)
改为
失去联系日期[:\s]*?(.*?).+?

TA的精华主题

TA的得分主题

发表于 2017-7-31 10:28 | 显示全部楼层
jiaxinl 发表于 2017-7-31 09:31
失去联系日期[:\s]*?(\S+)
改为
失去联系日期[:\s]*?(.*?).+?

高,实在是高!

TA的精华主题

TA的得分主题

发表于 2017-7-31 18:30 来自手机 | 显示全部楼层
jiminyanyan 发表于 2017-7-30 20:53
老师:上面的正则怎么没体现换行?word  中应有换行呀。能讲解一下吗

你需要搞明白正则表达式的单行模式和多行模式的区别。单行模式中.可匹配换行符,故不需要提供。只需注意关键词的位置即可。的作用在于限制贪婪模式,不用会导致将全文匹配为一个对象。无法得到每页一个结果了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-23 15:35 , Processed in 0.046198 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表