用PIO包解析office2007 的excel 和word文档,需要的jar包 有:

pio.jar: http://poi.apache.org/download.html

domj4.jar:http://www.java2s.com/Code/Jar/d/Downloaddom4jjar.htm

xmlbeans-2.3.0.jar:http://www.jarfinder.com/index.php/jars/versionInfo/14388

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import org.apache.poi.POITextExtractor;

import org.apache.poi.extractor.ExtractorFactory;

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;

import org.apache.poi.openxml4j.exceptions.OpenXML4JException;

import org.apache.poi.xssf.usermodel.XSSFCell;

import org.apache.poi.xssf.usermodel.XSSFRow;

import org.apache.poi.xssf.usermodel.XSSFSheet;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.apache.xmlbeans.XmlException;

public class ExcelParser {

private XSSFWorkbook workbook;

public ExcelParser(File file) {

try {

workbook = new XSSFWorkbook(new FileInputStream(file));

} catch (IOException e) {

e.printStackTrace();

}

}

private XSSFSheet getSheet(XSSFWorkbook workBook, int index) {

return workBook.getSheetAt(index);

}

private XSSFSheet getSheet(XSSFWorkbook workBook, String name) {

return workBook.getSheet(name);

}

public List> getDatasInSheet(int sheetIndex) {

List> results = new ArrayList>();

XSSFSheet sheet = workbook.getSheetAt(sheetIndex);

int rowCount = sheet.getLastRowNum();

if (rowCount < 1) {

return results;

} else {

for (int i = 0; i < rowCount; i++) {

XSSFRow row = sheet.getRow(i);

if (row != null) {

List rowData = new ArrayList();

int cellCount = row.getLastCellNum();

for (int cellIndex = 0; cellIndex < cellCount; cellIndex++) {

XSSFCell cell = row.getCell(cellIndex);

Object cellStr = this.getCellData(cell);

String ce = cellStr == null ? "" : cellStr.toString();

rowData.add(ce);

}

results.add(rowData);

}

}

return results;

}

}

private Object getCellData(XSSFCell cell) {

Object result = null;

if (cell != null) {

int cellType = cell.getCellType();

switch (cellType) {

case HSSFCell.CELL_TYPE_STRING:

result = cell.getRichStringCellValue().getString();

break;

case HSSFCell.CELL_TYPE_NUMERIC:

result = cell.getNumericCellValue();

break;

case HSSFCell.CELL_TYPE_FORMULA:

result = cell.getNumericCellValue();

break;

case HSSFCell.CELL_TYPE_BOOLEAN:

result = cell.getBooleanCellValue();

break;

case HSSFCell.CELL_TYPE_BLANK:

result = null;

break;

case HSSFCell.CELL_TYPE_ERROR:

result = null;

break;

default:

result = null;

System.out.println("NO type matched! ");

break;

}

}

return result;

}

public static void main(String[] args) {

System.out.println("hi");

ExcelParser excelParser = new ExcelParser(new File(

"F:\\Test\\ExcelParser\\分析.xlsx"));

List> results = excelParser.getDatasInSheet(0);

int dataSize = results.size();

for (int i = 0; i < dataSize; i++) {

List row = results.get(i);

for (int j = 0; j < row.size(); j++) {

String cell = row.get(j);

System.out.print(cell + "\t");

}

System.out.println();

}

TextExtractor textExtractor = new TextExtractor("F:\\Test\\ExcelParser\\论文阅读摘要.docx");

System.out.println(textExtractor.getContent());

}

}

class TextExtractor {

private File file;

public TextExtractor(String path) {

file = new File(path);

}

public String getContent() {

try {

POITextExtractor textExtractor = ExtractorFactory.createExtractor(file);

return textExtractor.getText();

} catch (InvalidFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (OpenXML4JException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (XmlException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

}

引用:http://my.csdn.net/guyezi123/code/detail/30042

java 解析docx_java解析xlsx和docx 文件 | 学步园相关推荐

  1. Java:使用POI实现word的docx文件的模板功能

    一:场景  通过Word模板来实现动态的word生成 二: 基本要求  1:替换文本中的内容  2:替换表格中的内容(不用动态生成表格)  3:替换后的内容应该与替换前的内容格式相同  4:模板修改方 ...

  2. java使用poi读取doc和docx文件

    这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码. 我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码. 于 ...

  3. java oval_Java对象校验框架Oval怎么使用 | 学步园

    OVal是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件.Annotation.POJOs进行设定.可以使用纯Java语言.JavaScript.Groovy.BeanShell等进 ...

  4. java有关地址的讲解_Java迭代器讲解 | 学步园

    迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据. iterator() 迭代器只读,不能改效率要比for循环高 迭代器的一些方法: HasNext() 如果仍有元素可以迭代 ...

  5. java 解析p12_java读取*.p12证书的信息 | 学步园

    现在很多通讯都是在SSL上进行的.本文主要针对*.p12证书 读取里面信息. /** * ReadP12Cert.java * 版权所有(C) 2012 * 创建:cuiran 2012-07-31 ...

  6. java windows so文件_windows下编译使用NDK,调用SO文件 | 学步园

    下载后把压缩包解压出来,例如:D:\ndk,目录下的ndk-build.cmd就是用来编译的批处理命令. 这里以D:\ndk\samples\hello-jni为例,打开D:\ndk\samples\ ...

  7. java读取mxl_Dom4j 读取一个XML文件和将String写成XML文件 | 学步园

    dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; ...

  8. java mp3 信息_java读取MP3的信息 | 学步园

    标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...

  9. java console清屏_JAVA 控制台清屏 | 学步园

    看到网上有人讨论Java如何实现对控制台清屏,看到的内容不是很理想.所以把这些内容总结一下. 直观一点,先看下代码吧 import static java.lang.System.out; /** * ...

最新文章

  1. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)
  2. 【集合论】卡氏积 ( 卡氏积概念 | 卡氏积示例 | 卡氏积性质 | 非交换性 | 非结合性 | 分配律 | 有序对为空 | n 维卡氏积 | n 维卡氏积个数 | n维卡氏积性质 )
  3. [cocoapods]安装cocoapods
  4. iis php配置内部错误,iis 500 内部服务器错误 php
  5. 智能情绪分析技术_简单分析人工智能的表现在计算机网络应用技术中的优势
  6. 26_多线程_第26天(Thread、线程创建、线程池)
  7. 剑指offer面试题[9-3]-矩形覆盖
  8. 如何使用Windows Live Alerts服务
  9. 仿真器连接出现NO TARGET CONNECTED解决方法及cube配置方法
  10. 深入理解iPhone静态库
  11. cuda对应pytorh安装
  12. 2007-2018年软考高级之系统分析师真题及答案解析
  13. 高中生可发表论文的学术期刊涵盖TCR历史期刊
  14. 关于前几天的招聘,我说几点
  15. Beautiful Soup:4 kinds of objects
  16. Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo) 项目结构
  17. 知物由学 | iOS AssetBundle资源保护
  18. sed 删除某一行_sed删除指定行
  19. FileReader的使用方法
  20. 呵,偶居然也能“说教”了

热门文章

  1. 软件架构设计的六大原则
  2. Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
  3. 实分析royden第四版答案_高价实木变板木掺了“假”的实木家具!搞懂这些名词,买家具不上当...
  4. 注册app短信验证平台_免费的短信验证码平台弊端竟然这么多!
  5. c语言程序设计上机考试题,C语言程序设计上机考试题目汇编..doc
  6. python canvas画移动物体_Python:Tkinter的GUI设计——物体实时移动
  7. 中关村在线 测试软件,主观测试软件:ZOL Monitor LCD 简介
  8. 有些牛逼,需要很长时间才能看得出来
  9. uva 11374(Dijkstra) HappyNewYear!!!
  10. Firefox下去掉密码自动填充