一、需求描述
有一份具有4级目录的word文档(《证券期货业网络安全等级保护基本要求》),需要依据标题结构转换成excel文档,方便筛选对比和录入mongodb数据库。文档结构如下:
目标格式如下:
二、处理过程(参考快速按标题层级把Word转Excel—附详细操作步骤 - 知乎)
原知乎答案中的例子内容比较少,可以收送插入制表符,我这个文档有60多页,手动添加不现实,而且容易遗漏。
1、使用notepad++进行标题格式化
(1)将文档复制到notepad++中,将四级标题“1.1.1.1”替换为“\t\t\t\t”。这里用到了我之前用过的匹配IP地址的正则表达式:
((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}
1.1.1.1 看起来就是个IP地址
依次用((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){2},将三级标题替换为\t\t\t
用((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){1},将二级标题替换为\t\t
一级标题就手动替换为 \t
2、使用word的文本转表格讲内容转换成表格(注意,用制表符转换),并复制到excel中处理
正文内容在最左侧,往右依次是1、2、3、4级标题
我把内容调整到了最右侧。
接下来的处理需要使用查找定位选择所有空格,然后进行空白填充,具体方法参考动图快速按标题层级把Word转Excel—附详细操作步骤 - 知乎
然后删除内容列为空的行(查找定位),最终效果如下