`

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

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

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

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

    用java语言实现对word表格操作,实现自动批量往数据库中插入数据,节省插入数据时间。

    java替换word(docx)书签

    poi解析word模板,在需要填写 空白地方建立书签;程序遍历书签,并根据书签名称进行赋值。 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi &lt;version&gt;3.8 &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi-ooxml ...

    java采用poi3.16解析word文档

    2、testpoi.java文件(直接运行),是实现读取word文档中的表格的功能,可指定读取word文档中某行某列的文本的内容 3、poidemo是一个web工程,运行后,点击首页中的下载按钮,跳转到ReadWriteAndDownloadDocServlet,...

    java 读取 doc docx word 中的内容 数据

    使用java方便读取word 中的内容,效率高

    aspose.words table 多行单元格合并

    aspose.words 控件可以方便的出来word文档,通过在word模板中定义书签,可以在指定的位置插入内容,如果需要在word中插入表格,并且表格中含有多行行头,需要合并单元时,就稍微麻烦一些,必须要注意设置单元格的...

    富文本编辑器生成的含有图片的内容转换成word文档 java 后端下载

    wangEditor 等富文本内容 (含图片: base64格式、http的网络图片等) 转换成word java后端下载

    完美解决方案:Java生成复杂Word文档

     大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java 来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制...

    word源码java-html2word:html转换成为word文档

    word源码java html转word html转换成word文档 项目简介 最近一直在做关于前端富文本生成的html代码转换成word的需求,对各种工具进行了尝试,对效果都不是很满意,最后从茫茫大海中找到一个非常好的工具,顾分享出来...

    java使用POI实现html和word相互转换

    主要为大家详细介绍了java使用POI实现html和word的相互转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    JavaPDF操作类库API_Free Spire.PDF for Java_5.1.0

    1.功能:该API为适用于Java平台下,通过后端程序代码调用API...lib文件夹下包含了用于在java程序中的Spire.Pdf.jar文件,在项目程序中调用接口方法时,需要导入该jar文件;doc文件下包含了所有类及方法的说明解释等。

    freemarker模板技术生成复杂word文档---解决了编码问题

    大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出‘.doc’ word文档。经测试这样方式生成的word文档完全符合office标准,...

    word源码java-SubmitManager:配合问卷系统高效收集作业

    word源码java SubmitManager 轻松收集作业,不再为命名发愁。配合收作业统一输出PDF格式。 TODO 根据表格自动处理文件 多线程处理文件 自动转换图像文件 文件冲突处理 自动配置文件权限[^1] 添加文件原始信息 处理...

    java将markdown文档转换成html,生成左侧目录

    借鉴了网上各位大牛分享的md转html,有前端小伙伴的帮忙,共同研发出了一个小工具,将markdown文档转换成html,左右结构,左侧目录,右侧文档 请先阅读readme

    使用freemarker生成word文档,源代码+jar包+说明文档及注意事项

    也就是说,不要在word里首先打完 ${ } 之后,又从其它地方把 string 字符串粘贴至 { } 之间,这样在 word 转化为 xml时,解析会有问题,freemarker解析时,会报错。 /** * @Desc:生成word文件 * @Author:张轮...

    基于java电脑彩票销售管理系统的设计软件程序源码+WORD毕业论文文档.zip

    基于java电脑彩票销售管理系统的设计软件程序源码+WORD毕业论文文档. 电脑彩票销售管理系统主要用于实现彩票销售,电脑彩票销售管理系统的设计与实现根据所需要的功能, 划分为前后台2个用户,即前台会员用户功能和...

    JAVA上百实例源码以及开源项目源代码

     [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] 限定选择控件  [MonthMaker.java] 月份表算法类  [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件...

    JAVA上百实例源码以及开源项目

     [TablePanel.java] 日历表格面板  [ConfigLine.java] 控制条类  [RoundBox.java] 限定选择控件  [MonthMaker.java] 月份表算法类  [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件...

Global site tag (gtag.js) - Google Analytics