精华内容
下载资源
问答
  • 将.doc或.docx作为压缩文档打开,也可以直接将后缀该为.zip(先...打开以后效果:很容易看出之间的部分就是文档中的文字,顺序提取就可以得到文字了,接下来你是自己做进一步的处理,有些特殊符号主要替换&lt &am...

    将.doc或.docx作为压缩文档打开,也可以直接将后缀该为.zip(先备份好,如果改后缀的话),最后你会看到你world中的一些插曲文件和主题等信息,world/document.xml 就是文字内容说在的文本文件了,用记事本打开就可以看到内容了。

    打开以后效果:

    很容易看出之间的部分就是文档中的文字,顺序提取就可以得到文字了,接下来你是自己做进一步的处理,有些特殊符号主要替换&lt &eq等等。html转意字符http://tool.oschina.net/commons?type=2

    写在后面:

    其实如果答主会c#就很好办,后台调用world进程进行转txt再提取就解决了,数量少的话自己手动转txt(复制粘贴)也省了自己解码这个world文档,毕竟计算机只认二进制文档和文本文档的。

    推荐ziplib库给你用如果不知道怎么解压缩的话,提取文字可以用正则表达式或者自己用提取软件,或自己去用代码慢慢在文本中找,excel的写入可以用c#的NPOI库,python的xlsxwriter都可以。其实NPOI库也可以操作world毕竟来自java老大哥的,把东西做死了也许没什么好处,方法多的是呢。

    比如用perl的:Spreadsheet::ParseExcel

    Spreadsheet::WriteExcel

    模块。

    不要问我为什么写入偏要我用别人写好的库,我只想说写进去真的很麻烦,如果写入能做得和wps一样我就可以去跟他们竞争了可惜不存在的。

    展开全文
  • 不过要通过工具来批量取值,Word文件中的目标字符必须有规律才行,例如都处于表格中,或者都有下划线,只要目标符合指定的规则就可以批量提取到Excel表中。 利用插件《Word精灵4.4》可以实现从Word中批量取值,并...

    从Word文件中取值并导出到Excel中,有现成的工具可实现。
    不过要通过工具来批量取值,Word文件中的目标字符必须有规律才行,例如都处于表格中,或者都有下划线,只要目标符合指定的规则就可以批量提取到Excel表中。
    利用插件《Word精灵4.4》可以实现从Word中批量取值,并导出到Excel表中。
    Word精灵4.4中提供了三个关于Word导出到Excel的功能。

    Word精灵下载地址:

    http://excelbbx.net/Word.htm

    现逐个演示其功能:

    1.多文档到Excel

    功能:把多个Word文件中指定单元格的值提取出来,放在一个Excel表格中,便于统计或查阅。
    用法提要:必须所有Word文档的格式完全一致。要提取的值必须在Word的表格中。必须先打开模板文件,且在模板中标示出要提取值的单元格,否则无法提取成功,不需要提取的单元格留空即可。
    在这里插入图片描述

    2.单文档到Excel

    功能:一个Word文档中有多个表格,要求将每个表格中指定位置的值提取出来放到Excel中去,每个表中取出的值放在Excel的一行中,Word中有多少个表生成的Excel表就有多少行。
    用法提要:所有表格的格式必须完全一致。必须做一个模板文档,其表格格式与要提取的Word文档中的表格完全一致。必须在模板表格中标示要提取的目标单元格。标示方法就是写单元格中写上名字,表明此单元格存放的是什么内容。
    在这里插入图片描述

    3.导出带下划线的Word内容到Excel

    功能:将Word中所有带下划线的内容导出到Excel中,每个Word文档中导出的值放在一行中。如果有100个Word,则导出到Excel后会生成100行数据。
    在这里插入图片描述
    您也可以从这里查看视频操作演示:
    https://mp.weixin.qq.com/s/LJZEDVV9Xkqbu7y3v0Ki_g

    展开全文
  • Java POI解析Word提取数据存储在Excel一、了解POIPOI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容经过两天的学习,开始熟悉Java这么读取word和解析。本文中运用是读取整个页面模块...

    Java POI解析Word提取数据存储在Excel

    一、了解POI

    POI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容

    经过两天的学习,开始熟悉Java这么读取word和解析。

    本文中运用是读取整个页面模块的range,通过对range里面的数据进行筛选,获取自己想要的数据。

    主要是了解POI的数据调用的解析。

    想要实现的效果

    以下测试的IP或是域名都是随便找不同类型:IP+port /url/http://www.XXX.com/www.xxx.net:8080等等存在的url组合。

    目前需求是抓取这个几个关键的内容。

    二、POI解析word

    maven添加jar依赖

    全部的POI的依赖

    org.apache.poi

    poi

    3.17

    org.apache.poi

    poi-ooxml

    3.17

    org.apache.poi

    poi-scratchpad

    3.17

    org.apache.poi

    ooxml-schemas

    1.1

    org.apache.poi

    poi-ooxml-schemas

    3.17

    关键代码

    public class GetWord1 {

    public static void main(String[] args) {

    try {

    InputStream is = new FileInputStream(new File("path")); //需要将文件路更改为word文档所在路径。

    POIFSFileSystem fs = new POIFSFileSystem(is);

    HWPFDocument document = new HWPFDocument(fs);

    Range range = document.getRange();

    CharacterRun run1 = null;//用来存储第一行内容的属性

    CharacterRun run2 = null;//用来存储第二行内容的属性

    int q=1;

    for (int i = 0; i < range.numParagraphs()-2; i++) {

    Paragraph para1 = range.getParagraph(i);// 获取第i段

    Paragraph para2 = range.getParagraph(i+1);// 获取第i段

    int t=i; //记录当前分析的段落数

    String paratext1 = para1.text(); //当前段落和下一段

    String paratext2 = para2.text();

    run1=para1.getCharacterRun(0);

    run2=para2.getCharacterRun(0);

    if (paratext1.length() > 0&&paratext2.length() > 0) {

    //这个if语句为的是去除大标题,连续三个段落字体大小递减就跳过

    if(run1.getFontSize()>run2.getFontSize()&&run2.getFontSize()>range.getParagraph(i+2).getCharacterRun(0).getFontSize()) {

    break;

    }

    //连续两段字体格式不同

    if(run1.getFontSize()>run2.getFontSize()) {

    content=paratext2;

    run1=run2; //从新定位run1 run2

    run2=range.getParagraph(t+2).getCharacterRun(0);

    t=t+1;

    while(run1.getFontSize()==run2.getFontSize()) {

    //连续的相同

    Content+=range.getParagraph(t+1).text();

    if(content.matches("是否系统自身渗透结果")) break;

    if(content.contains(":")||content.contains("/")){//如果是http或者是IP+端口形式

    word.setName(getDomain(content));//ip

    }else{//纯IP形式

    word.setName(content);//ip

    }

    word.setAsset_name(paratext1);//标题

    run1=run2;

    run2=range.getParagraph(t+i).getCharacterRun(0);

    t++;

    ……..

    }

    ………

    }

    if(paratext1.matches("中危")||paratext1.matches("很高")||paratext1.matches("低危")){

    list2.add(paratext1);

    }

    }

    }

    if(word1.getAsset_name()==wordname.getAsset_name())){

    …..

    wordend.setId(num);

    wordend.setName(word1.getName());

    wordend.setAsset_name(word1.getAsset_name());

    if(wordname.getAvailability_assignment().equals("很高")){

    wordend.setAvailability_assignment("5");

    }

    if(wordname.getAvailability_assignment().equals("高危")){

    wordend.setAvailability_assignment("4");

    }

    if(wordname.getAvailability_assignment().equals("中危")){

    wordend.setAvailability_assignment("3");

    }

    if(wordname.getAvailability_assignment().equals("低危")){

    wordend.setAvailability_assignment("2");

    }

    wordend.setRisk("网络攻击");

    wordmax.add(wordend);

    num++;

    ……

    }

    }

    }

    System.out.println("------------------Finished-详情查看-中间文档转excel.xlsx------------------");

    //Excel无模版导出

    ExcelUtil.getInstar ().exportl(wordmax, Word.class, "中间文档转excel.xlsx");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    } }

    其中有URl获取IP或者Domain

    public class Test{

    public static void main(String[] args){

    String url1 = "192.168.1.100/admin";

    System.out.println(getDomain(url));

    System.out.println(getDomain(url1));

    }

    private static String getDomain(String url){

    String regex = "^(?:[a-zA-Z]+[.])?(\\w+([.]\\w+)*)/.*$";

    Matcher matcher = Pattern.compile(regex).matcher(url);

    String result = null;

    if(matcher.find()){

    result = matcher.group(1);

    }

    return result;

    }

    }

    运行结果:

    完整的测试数据

    输出到excel

    GUI界面化数据操作完成和输出excel

    三、总结

    1、接触POI三天左右,主要是通过对文档的整个的range遍历获取数据,再通过自己的不同数据的需求进行筛选和数据处理。

    2、相比HTml获取数据java获取word解析里面的数据更加的难一些,html里面有标签,可以通过操作js、css、html的标签来实现数据的获取,但是word没有特定的标签去获取,这个只能通过遍历,对比文本的大小、文本的字体等等相关信息。

    3、这次word解析,结合上次的html的解析获取数据,对应java的操作不同的类型的文件流有了新的认识。

    四、参考文献

    ​公众号:

    thelostworld:

    展开全文
  • Java POI解析Word提取数据存储在Excel 一、了解POIPOI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容经过两天的学习,开始熟悉Java这么读取word和解析。本文中运用是读取整个页面模块...

    1f9b96324808bde646d6b148100ba3a4.png

    b2de659caba26e11a7fba5e72da804b6.png

    Java POI解析Word提取数据存储在Excel

    一、了解POI

    POI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容

    cc828b16d7addb86bdc0132267bba6ce.png

    经过两天的学习,开始熟悉Java这么读取word和解析。

    本文中运用是读取整个页面模块的range,通过对range里面的数据进行筛选,获取自己想要的数据。

    https://github.com/zxiang179/POI

    http://deepoove.com/poi-tl/#_why_poi_tl

    主要是了解POI的数据调用的解析。

    https://poi.apache.org/官方的文档API

    b7b261ce26c009372aefebf6b80e2b46.png

    想要实现的效果

    以下测试的IP或是域名都是随便找不同类型:IP+port /url/http://www.XXX.com/www.xxx.net:8080等等存在的url组合。

    3bef128e9bb7e75d5a5f38deba46c0e4.png

    目前需求是抓取这个几个关键的内容。

    二、POI解析word

    maven添加jar依赖

    5c73fb3fa6fd8dfef65137c8d0778e75.png

    全部的POI的依赖

    <dependency>

    <groupId>org.apache.poi</groupId>

    <artifactId>poi</artifactId>

    <version>3.17</version>

    </dependency>

    <dependency>

    <groupId>org.apache.poi</groupId>

    <artifactId>poi-ooxml</artifactId>

    <version>3.17</version>

    </dependency>

    <dependency>

    <groupId>org.apache.poi</groupId>

    <artifactId>poi-scratchpad</artifactId>

    <version>3.17</version>

    </dependency>

    <dependency>

    <groupId>org.apache.poi</groupId>

    <artifactId>ooxml-schemas</artifactId>

    <version>1.1</version>

    </dependency>

    <dependency>

    <groupId>org.apache.poi</groupId>

    <artifactId>poi-ooxml-schemas</artifactId>

    <version>3.17</version>

    </dependency>

    关键代码

    public class GetWord1 {

    public static void main(String[] args) {

    try {

    InputStream is = new FileInputStream(new File("path")); //需要将文件路更改为word文档所在路径。

    POIFSFileSystem fs = new POIFSFileSystem(is);

    HWPFDocument document = new HWPFDocument(fs);

    Range range = document.getRange();

    CharacterRun run1 = null;//用来存储第一行内容的属性

    CharacterRun run2 = null;//用来存储第二行内容的属性

    int q=1;

    for (int i = 0; i < range.numParagraphs()-2; i++) {

    Paragraph para1 = range.getParagraph(i);// 获取第i段

    Paragraph para2 = range.getParagraph(i+1);// 获取第i段

    int t=i; //记录当前分析的段落数

    String paratext1 = para1.text(); //当前段落和下一段

    String paratext2 = para2.text();

    run1=para1.getCharacterRun(0);

    run2=para2.getCharacterRun(0);

    if (paratext1.length() > 0&&paratext2.length() > 0) {

    //这个if语句为的是去除大标题,连续三个段落字体大小递减就跳过

    if(run1.getFontSize()>run2.getFontSize()&&run2.getFontSize()>range.getParagraph(i+2).getCharacterRun(0).getFontSize()) {

    break;

    }

    //连续两段字体格式不同

    if(run1.getFontSize()>run2.getFontSize()) {

    content=paratext2;

    run1=run2; //从新定位run1 run2

    run2=range.getParagraph(t+2).getCharacterRun(0);

    t=t+1;

    while(run1.getFontSize()==run2.getFontSize()) {

    //连续的相同

    Content+=range.getParagraph(t+1).text();

    if(content.matches("是否系统自身渗透结果")) break;

    if(content.contains(":")||content.contains("/")){//如果是http或者是IP+端口形式

    word.setName(getDomain(content));//ip

    }else{//纯IP形式

    word.setName(content);//ip

    }

    word.setAsset_name(paratext1);//标题

    run1=run2;

    run2=range.getParagraph(t+i).getCharacterRun(0);

    t++;

    ……..

    }

    ………

    }

    if(paratext1.matches("中危")||paratext1.matches("很高")||paratext1.matches("低危")){

    list2.add(paratext1);

    }

    }

    }

    if(word1.getAsset_name()==wordname.getAsset_name())){

    …..

    wordend.setId(num);

    wordend.setName(word1.getName());

    wordend.setAsset_name(word1.getAsset_name());

    if(wordname.getAvailability_assignment().equals("很高")){

    wordend.setAvailability_assignment("5");

    }

    if(wordname.getAvailability_assignment().equals("高危")){

    wordend.setAvailability_assignment("4");

    }

    if(wordname.getAvailability_assignment().equals("中危")){

    wordend.setAvailability_assignment("3");

    }

    if(wordname.getAvailability_assignment().equals("低危")){

    wordend.setAvailability_assignment("2");

    }

    wordend.setRisk("网络攻击");

    wordmax.add(wordend);

    num++;

    ……

    }

    }

    }

    System.out.println("------------------Finished-详情查看-中间文档转excel.xlsx------------------");

    //Excel无模版导出

    ExcelUtil.getInstar ().exportl(wordmax, Word.class, "中间文档转excel.xlsx");

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    } }

    其中有URl获取IP或者Domain

    public class Test{

    public static void main(String[] args){

    String url = "http://www.abc.def.com.cn/123456 ";

    String url1 = "192.168.1.100/admin";

    System.out.println(getDomain(url));

    System.out.println(getDomain(url1));

    }

    private static String getDomain(String url){

    String regex = "^(?:[a-zA-Z]+[.])?(w+([.]w+)*)/.*$";

    Matcher matcher = Pattern.compile(regex).matcher(url);

    String result = null;

    if(matcher.find()){

    result = matcher.group(1);

    }

    return result;

    }

    }

    运行结果:

    9c5bffa873bfc5efff5bcbff00c0a15c.png

    完整的测试数据

    35bfd980e49cd639e555f9e1ddb599f2.png

    输出到excel

    b2d5b2bb6811f9e69d3b42d4a53ada14.png

    GUI界面化数据操作完成和输出excel

    64d51774bf722d95f6defa4a19d644ac.png

    三、总结

    1、接触POI三天左右,主要是通过对文档的整个的range遍历获取数据,再通过自己的不同数据的需求进行筛选和数据处理。

    2、相比HTml获取数据java获取word解析里面的数据更加的难一些,html里面有标签,可以通过操作js、css、html的标签来实现数据的获取,但是word没有特定的标签去获取,这个只能通过遍历,对比文本的大小、文本的字体等等相关信息。

    3、这次word解析,结合上次的html的解析获取数据,对应java的操作不同的类型的文件流有了新的认识。

    Java爬虫&html解析-Jsoup(绿盟极光报告)(https://mp.weixin.qq.com/s?__biz=MzIyNjk0ODYxMA==&mid=2247483708&idx=1&sn=4734ff8b79069eef3d47b9f7eedca269&chksm=e869e251df1e6b471ac158e121b845ed0fe0d0a88fe7b16d8124db5180eb3b6d4091d1444f72&token=1606015301&lang=zh_CN#rd)

    四、参考文献

    https://github.com/zxiang179/POI

    http://deepoove.com/poi-tl/#_why_poi_tl

    https://poi.apache.org

    ​公众号:

    689fb088d8e10d972d629881b7c91be8.png

    thelostworld:

    372d4c172216a96384bf55d92aa2b1f2.png

    个人知乎​:https://www.zhihu.com/people/fu-wei-43-69/columns

    ​个人简书:https://www.jianshu.com/u/bf0e38a8d400

    展开全文
  • word表格中提取数据到excel表格,可以批量提取数据自动导入的excel表格。
  • python将excel数据提取到word

    千次阅读 热门讨论 2020-02-17 01:55:29
    python将excel数据提取到word 工作中可能需要将excel中的数据批量生成word,今天分享将excel数据提取,然后生成word数据的方法 先看要求,将当前目录下(定值回执统计表.xlsx)表格中的每一行数据按照word模板生成...
  • Java POI解析Word提取数据存储在Excel 一、了解POIPOI以前有了解,这次需求是解析word读取其中标题,还有内容赛选获取自己想要的内容经过两天的学习,开始熟悉Java这么读取word和解析。本文中运用是读取整个页面模块...
  • 此后经过多翻摸索,才终于总结出2个Word提取小技巧,分享出来,希望能够帮助大家。*********在实际工作中,我们时常在整理员工资料或客户信息时需要从身份证号中提取对应人员的出生日期等看似重复繁琐的...
  • 该VBA脚本可以实现从word文档的多个表中提取数据,每个表格的信息提取到一行。 Sub word2els() Set wdApp = CreateObject(“kwps.application”) path_ = ThisWorkbook.Path wdApp.Documents.Open (path_ & “”...
  • 一、需求说明有时我们需要从Word文档的表格里提取数据,比如word文档中的简历信息,需要将姓名、性别、籍贯等信息提取到Excel工作表中,每个文档仅有一个人的简历。1.word文档截图2.excel工作表截图二、实现思路使用...
  • 批量word提取有效数据后整合一个excel

    万次阅读 多人点赞 2019-05-20 16:48:04
    word批量转excel的工具链接:https://download.csdn.net/download/momoainuonuo/11189685 百度网盘地址(在csdn上传的资料被默认修改为5个积分,没办法只能用百度网盘了): 链接:...
  • 但是如果需要把大量相同模板中固定位置提取出不同数据导入到Excel中来便不好操作了。今天本文主要介绍这个操作。从以下Word模板中提取出各个位置的数据如果每个Word文件里只有一页表格,数据是存在多个Word文件里面...
  • 今天突然有一个需求,要把统计局网站下载的Word文档里的表格提取出来,放到Excel表中,便于下一步进行数据分析。1. 引入扩展库# -*- coding: utf-8 -*-import docxfrom docx import Documentimport xlwt;import xlrd...
  • Word文档中数据汇总到Excel表格前言一、应用场景二、程序思路及准备工作思路如下:准备工作:三、程序代码1、主程序2、获取Word文档列表3、提取文档内数据4、导入到Excel表格四、遇到的问题1、错误AttributeError:...
  • 上篇文章我们介绍了如果在Excel中利用VBA技术访问Word文档,今天我们就说说如何在Excel中利用VBA写入/提取Word文档中的数据。写入Word文档当前文件夹中存在一个test的Word文档,文档中仅有一张六列三行的空表格,...
  • Excel公式提取数据

    2019-05-16 12:39:56
    为更好的阅读体验,请...最近在做基础数据的整理,数据存放在 Word 表格中,要将大量的数据整理好并导入数据库中着实需要费些力气,于是需要笨方法和巧方法一起用 整理过程 首先应用笨方法,将 Word 中的数据表...
  • 本文含3251字,2图表截屏建议阅读 7分钟本文是Python办公自动化系列的第十篇1 -从Word到Excel2 - 从Excel到Word3 -批量合并PDF4-批量处理文件5 -提取不同元素6 -自动更新表格7 - 不对称表格更新8 - PDF转换9 - 自动...
  • 大家好,又了Python办公自动化专题如果你经常与ExcelWord打交道,那么从两份表格/文档中找到不一样的元素是一件让人很头疼的工作,当然网上有很多方法、第三方软件教你如何对比两份文件。本文就将以两份真实的...
  • 小伙伴的需求是如何批量的将每个word文档中的贫困户信息汇总到Excel表格中,生成一个汇总的表格,方便进行数据分析比对。为了模拟以上需求,本人设计了一个模拟的业务场景。Word文档中存储了每一位学生的考试成绩...
  • 小伙伴的需求是如何批量的将每个word文档中的贫困户信息汇总到Excel表格中,生成一个汇总的表格,方便进行数据分析比对。为了模拟以上需求,本人设计了一个模拟的业务场景。Word文档中存储了每一位学生的考试成绩...
  • 前言:在网上搜集了很多的资料觉得网上的太乱而且不全,此博客记录一下自己,采用及时的是springboot。 项目截图 导图后的效果图 项目下载地址:https://pan.baidu.com/s/1g_o9iLZcfJNwf1NHxAnEnw 提取码:tj31 ...
  • 7分钟本文是Python办公自动化系列的第十篇1 -从Word到Excel2 - 从Excel到Word3 -批量合并PDF4-批量处理文件5 -提取不同元素6 -自动更新表格7 - 不对称表格更新8 - PDF转换9 - 自动整理文件10 - 批量提取数据大家好,...
  • 客户端在线打开Excel文件,保存的时候,PageOffice可以打包Excel文档中的指定单元格的数据或所有的数据提交到服务器端,在服务器端创建PageOffice的ExcelReader命名空间中的Workbook对象,就可以获取到Excel单元格中...
  • 更多自动化案例欢迎关注我的公众号:早起Python===Python办公自动化|从Word到Excel​mp.weixin.qq.com前言在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们将再次以一位...
  • 回复[目录]学习113篇Excel教程全套Excel视频教程,微信扫码观看最近就遇到下面的问题,每个单元格里有7种产品。现在要求把下表中A1单元格的数值...一种是用MID函数提取字符,一种是借用WORD软件进行转换。方法1:...
  • 学习Excel技术,关注微信公众号:excelperfect示例3:从Excel提取数据生成不同的Word报表从前面的学习中,我们已经学会了使用书签将Excel提取数据放置文档中指定的位置。下面的示例演示如何运用这些技巧,...
  • 在前几天的文章中我们讲解了如何从Word表格中提取指定数据并按照格式保存到Excel中,今天我们将再次以一位读者提出的真实需求来讲解如何使用Python从Excel中计算、整理数据并写入Word中,其实并不难,主要就是以下两...
  • 交了许多报名表我这里,而我需要将这些信息进行汇总,整理出一个excel表格,看着一个个word文件放在我的工作文件夹中头发发麻,这一个个的整理好麻烦,不但速度慢而且容易出错,我就想用编程自动替我读取数据并...
  • 此例要求将Excel档的“收货数据”填写到Word档的“收货记录”中去,并加总收货数量。模板是下面这样的。 要求结果是这样的: 首先,需要从Excel表格中提取数据。#从Excel表中提取数据 from openpyxl import load_...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 292
精华内容 116
关键字:

word数据提取到excel