`

Java 解析 Word Word 中的表格

 
阅读更多

import java.io.File;  
import java.io.FileInputStream;  
import java.io.FileNotFoundException;  
 
import org.apache.poi.hwpf.HWPFDocument;  
import org.apache.poi.hwpf.usermodel.Paragraph;  
import org.apache.poi.hwpf.usermodel.Range;  
import org.apache.poi.hwpf.usermodel.Table;  
import org.apache.poi.hwpf.usermodel.TableCell;  
import org.apache.poi.hwpf.usermodel.TableIterator;  
import org.apache.poi.hwpf.usermodel.TableRow;  
 
import java.io.File;     
import java.io.FileInputStream;     
import java.io.InputStream;     
    
import org.apache.poi.POIXMLDocument;     
import org.apache.poi.POIXMLTextExtractor;     
import org.apache.poi.hwpf.extractor.WordExtractor;     
import org.apache.poi.openxml4j.opc.OPCPackage;     
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;    
 
 
import org.apache.poi.poifs.filesystem.POIFSFileSystem;  
 
public class ExportDocImpl  
{  
    public void testWord(){  
        try{  
            FileInputStream in = new FileInputStream("D:\\2003.doc");//载入文档  
           POIFSFileSystem pfs = new POIFSFileSystem(in);     
            HWPFDocument hwpf = new HWPFDocument(pfs);     
            Range range = hwpf.getRange();//得到文档的读取范围  
            TableIterator it = new TableIterator(range);  
           //迭代文档中的表格  
            while (it.hasNext()) {     
                Table tb = (Table) it.next();     
                //迭代行,默认从0开始  
                for (int i = 0; i < tb.numRows(); i++) {     
                    TableRow tr = tb.getRow(i);     
                    //迭代列,默认从0开始  
                    for (int j = 0; j < tr.numCells(); j++) {     
                        TableCell td = tr.getCell(j);//取得单元格  
                        //取得单元格的内容  
                        for(int k=0;k<td.numParagraphs();k++){     
                            Paragraph para =td.getParagraph(k);     
                            String s = para.text();     
                           
                        } //end for      
                    }   //end for  
                }   //end for  
            } //end while  
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    }//end method  
      
    public static void main(String[] args){
     ExportDocImpl ExportDocImpl = new ExportDocImpl();
     ExportDocImpl.testWord1();
    }  
   
   
   
   
           public void testWord1(){  
           try {     
            //word 2003: 图片不会被读取     
            InputStream is = new FileInputStream(new File("D:\\2003.doc"));     
                  WordExtractor ex = new WordExtractor(is);   
                  String str1 = ex.getText();
                  str1 = str1.replaceAll("", ";");
                  String text2003 = str1;     
                  System.out.println(text2003);     
                 
            //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后     
            OPCPackage opcPackage = POIXMLDocument.openPackage("D:\\2007.docx");     
                  POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);  
                  String str = extractor.getText();
                  str = str.replaceAll(" ", ";");
                  String text2007 = str;     
                  System.out.println(text2007);     
                 
        } catch (Exception e) {     
                  e.printStackTrace();     
        }   
    }  

 

 

 

 
import java.io.File;  
import java.io.FileInputStream;  
import java.io.InputStream;  
 
import org.apache.poi.POIXMLDocument;  
import org.apache.poi.POIXMLTextExtractor;  
import org.apache.poi.hwpf.extractor.WordExtractor;  
import org.apache.poi.openxml4j.opc.OPCPackage;  
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;  
 
/** 
* POI 读取 word 2003 和 word 2007 中文字内容的测试类<br /> 
* @createDate 2009-07-25 
* @author Carl He 
*/ 
public class ParseTable {  
    public static void main(String[] args) {  
        try {  
            //word 2003: 图片不会被读取  
              InputStream is = new FileInputStream(new File("d:\\2003.doc"));  
            WordExtractor ex = new WordExtractor(is);  
            String text2003 = ex.getText();  
            System.out.println(text2003);  
 
            //word 2007 图片不会被读取, 表格中的数据会被放在字符串的最后  
            OPCPackage opcPackage = POIXMLDocument.openPackage("d:\\2007.docx");  
            POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);  
            String text2007 = extractor.getText();  
            System.out.println(text2007);  
     
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

 

 

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.hwpf.extractor.WordExtractor;

public class ParseWord {

 public static void main(String[] args) {
  File file = new File("d:\\hello.doc");
  try {
   FileInputStream fis = new FileInputStream(file);
   WordExtractor wordExtractor = new WordExtractor(fis);
   System.out.println(wordExtractor.getText());
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

 

分享到:
评论

相关推荐

    Java读取Word表格内容

    通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中

    java解析word文件的相关代码

    ### Java解析Word文件的关键知识点 #### 一、POI库介绍 - **定义与来源**:POI是Apache软件基金会的Jakarta项目中的一个子项目,它提供了一组API,用于处理Microsoft Office格式的文件(如Word、Excel)。POI支持...

    JAVA_Poi.rar_Java 解析WORD_POI word_java pio_pressureulb_word解析

    标题中的"Java 解析WORD_POI word_java pio_pressureulb_word解析"指出了主要的技术点:使用Java的Apache POI库解析Word文档。Apache POI提供了一个名为HWPF(Horrible Word Processor Format)的API用于处理旧版的....

    Java读取多Word文档中指定位置的表格数据或文本内容

    Java读取Word文档中指定位置(可以自己自定义位置)的表格数据或文本内容 * @param filePath 文档路径 * @param start 指定位置开始读取表格数据的该位置上的字符串 * @param end 指定位置开始结束读取表格数据的该...

    java解析word2007相关包

    总之,Java解析Word2007文档涉及的主要知识点是使用Apache POI库,尤其是其XWPF模块,通过理解Open XML结构和使用相应的API来实现读取、写入和操作Word文档的功能。在实际应用中,还需要结合其他库和最佳实践来提高...

    Java读取word文档内容并输出成网页(含图片,公式)

    注意,处理Word中的复杂元素,如图片和公式,可能需要额外的库,如`Apache POI-OOXML-Schemas`和`org.xhtmlrenderer`来解析和渲染。公式通常需要转换为MathML或LaTeX格式,然后在HTML中使用JavaScript库如`MathJax`...

    poi资源包,java 解析Word,Excel的jar包

    在使用Apache POI时,你需要先在项目中引入对应的jar包,这正是“java 解析Word,Excel的jar包”的描述所指。你可以通过Maven或Gradle等构建工具将Apache POI库添加为项目的依赖,或者直接将压缩包解压后的jar文件...

    poi解析word文档 及 试卷数学公式导入wmf图片转成png图片

    标题中的“poi解析word文档”指的是使用Apache POI库来处理Microsoft Word(.doc或.docx)文件。Apache POI是Java中一个流行的库,它允许开发者读取、写入和修改Microsoft Office格式的文件,包括Word、Excel和...

    Java导出Word文件

    本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java...

    java XML解析方式实现自动生成word文档

    对于.docx格式的Word文档,Apache POI提供了XWPF(XML Word Processing)API,它可以操作Word文档中的文本、表格、图片等元素。 以下是一个基本的步骤,展示如何使用Java和Apache POI通过XML解析生成Word文档: 1....

    java获取多Word文档中表格顺序不变的表格数据

    java获取多Word文档中表格顺序不变的表格数据 读取文档中的表格数据 * @param filePath 文档路径 * @param tablePoint 查看的表格的ID(第几个表格),若多文档调用该方法处理,需表格位置一致。 * @param total...

    在word中动态增加表格并写入数据

    本文将详细介绍如何利用C#编程语言实现在Word文档中动态创建表格,并将数据写入到表格中的过程。 #### 前置知识与工具介绍 在开始之前,我们需要对以下概念有所了解: 1. **Microsoft Word API**:这是Microsoft ...

    java实现word表格指定位置盖章,并且设置章悬浮于文字之上

    在Java开发中,实现Word表格指定位置盖章并设置章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档对象模型的理解。Apache POI是Java中用于处理Microsoft Office格式文件(如DOCX)的...

    Java读写word文件

    5. **表格处理**:创建和编辑Word文档中的表格是Java2Word的一个强项。你可以指定表格的行数、列数,设置单元格的合并,以及单元格内的文本样式。 6. **读取文档**:Java2Word也提供了读取现有Word文档的功能。通过...

    java实现word表格指定位置盖印,并且设置印悬浮于文字之上,达到跟用实体印在A4纸上盖印一样的效果

    在Java编程环境中,实现Word表格指定位置盖印并设置印章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档的操作。Apache POI是Java中广泛使用的微软Office文档处理库,它允许开发者...

    java实现读取word文件并且上传到数据库

    通过使用Apache POI,我们可以解析Word文档中的内容,包括文本、表格等。 以下是一个基本步骤: 1. 引入Apache POI库:在Java项目中添加Apache POI依赖,通常通过Maven或Gradle完成。 2. 打开Word文件:使用POI API...

    java准确读取word页码

    在Java编程环境中,读取Word文档的页码是一项常见的任务,尤其在处理大量文档数据时。这个场景下,我们通常会使用Apache POI库,这是一个强大的API,专门用于处理Microsoft Office格式的文件,包括Word(.doc和.docx...

    java读取Word文档依赖jar包

    在Java编程环境中,读取和操作Microsoft Word文档通常需要依赖外部库,Apache POI就是其中最常用的一个。Apache POI是一个开源项目,它允许开发者使用Java处理Microsoft Office格式的文件,包括Word(.doc和.docx)...

    Java根据ftl模板生成多表格复杂性word文档

    例如,你可以创建一个`.ftl`文件,其中包含表格的定义,然后在表格中插入动态数据。 当涉及到多表格的复杂Word文档时,我们需要在FTL模板中定义多个表格,并在运行时填充这些表格的数据。FreeMarker支持多种数据...

    java 实现 word 文档的在线预览

    在Java开发中,实现Word文档的在线预览是一项常见的需求,尤其在企业级应用中,例如文档管理系统或者协同办公平台。这项功能可以让用户无需下载原始文件就能查看文档内容,提高工作效率并减少服务器存储压力。本资源...

Global site tag (gtag.js) - Google Analytics