码迷,mamicode.com
首页 > 编程语言 > 详细

使用Java POI来选择提取Word文档中的表格信息

时间:2017-04-30 14:10:11      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:range   trim   void   操作   result   static   next   inpu   表格   

通过使用Java POI来提取Word(1992)文档中的表格信息,其中POI支持不同的ms文档类型,在具体操作中需要注意。本文主要是通过POI来提取微软2003文档中的表格信息,具体code如下(事先需要导入POI的jar包):

public static void testWord2() {
		try {
			FileInputStream in = new FileInputStream("july 2005 1.doc");// 载入文档
//			FileInputStream in = new FileInputStream("2003.doc");// 载入文档
			POIFSFileSystem pfs = new POIFSFileSystem(in);
			HWPFDocument hwpf = new HWPFDocument(pfs);
			Range range = hwpf.getRange();// 得到文档的读取范围
			TableIterator it = new TableIterator(range);
			
			FileWriter fileWriter = new FileWriter(new File("result.txt"));
			
			
			// 迭代文档中的表格
			while (it.hasNext()) {
				Table tb = (Table) it.next();
				// 迭代行,默认从0开始
				if(tb.numRows()>0) {
					TableRow tr = tb.getRow(0);
					// 迭代列,默认从0开始
					if(tr.numCells()==2) {
						TableCell td1 = tr.getCell(0);// 取得单元格
						TableCell td2 = tr.getCell(1);// 取得单元格
						// 取得单元格的内容
						String str1 = td1.text().trim();
						String str2 = td2.text().trim();
						if(str2!=null&&!"".equals(str2)&&str2.contains("[21][11]")){
							System.out.println(str1);
							fileWriter.write(str2+"\n");
						}
					} else if(tr.numCells()==3){
						TableCell td2 = tr.getCell(1);
						String str2 = td2.text().trim();
						System.out.println("str2="+str2);
						fileWriter.write(str2+"\n");
					}
				} // end for
			} // end while
			
			fileWriter.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

  上面code只是简单的对POI提取Word文档中的表格信息进行测试,直接调用该方法即可。

使用Java POI来选择提取Word文档中的表格信息

标签:range   trim   void   操作   result   static   next   inpu   表格   

原文地址:http://www.cnblogs.com/Steven0805/p/6789192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!