package office;

/**

* @author JavaAlpha

* @date 2011-11-10

* @version V 1.0

*/

/*

* 需要的jar包:

* poi-3.0.2-FINAL-20080204.jar

* poi-contrib-3.0.2-FINAL-20080204.jar

* poi-scratchpad-3.0.2-FINAL-20080204.jar

* poi-3.5-beta6-20090622.jar

* geronimo-stax-api_1.0_spec-1.0.jar

* ooxml-schemas-1.0.jar

* openxml4j-bin-beta.jar

* poi-ooxml-3.5-beta6-20090622.jar

* xmlbeans-2.3.0.jar

* dom4j-1.6.1.jar

*/

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import org.apache.poi.POIXMLDocument;

import org.apache.poi.POIXMLTextExtractor;

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

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

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

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

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

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

import org.apache.poi.openxml4j.opc.OPCPackage;

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.poi.xwpf.extractor.XWPFWordExtractor;

import org.apache.xmlbeans.XmlException;

public class WordAndExcelExtractor {

public static void main(String[] args){

try{

String wordFile = "E:/word07.docx";

String wordText2007 = WordAndExcelExtractor.extractTextFromDOC2007(wordFile);

System.out.println("wordText2007======="+wordText2007);

InputStream is = new FileInputStream("E:/1.xls");

String excelText = WordAndExcelExtractor.extractTextFromXLS(is);

System.out.println("text2003==========" + excelText);

String excelFile = "E:/2.xlsx";

String excelText2007 = WordAndExcelExtractor.extractTextFromXLS2007(excelFile);

System.out.println("excelText2007==========" + excelText2007);

}catch(Exception e ){

e.printStackTrace();

}

}

/**

* @Method: extractTextFromDOCX

* @Description: 从word 2003文档中提取纯文本

* @param

* @return String

* @throws

**/

public static String extractTextFromDOC(InputStream is) throws IOException {

WordExtractor ex = new WordExtractor(is); //is是WORD文件的InputStream

return ex.getText();

}

/**

* @Method: extractTextFromDOCX

* @Description: 从word 2007文档中提取纯文本

* @param

* @return String

* @throws

**/

public static String extractTextFromDOC2007(String fileName) throws IOException, OpenXML4JException, XmlException {

OPCPackage opcPackage = POIXMLDocument.openPackage(fileName);

POIXMLTextExtractor ex = new XWPFWordExtractor(opcPackage);

return ex.getText(); }

/**

* * @Method: extractTextFromXLS

* * @Description: 从excel 2003文档中提取纯文本 *

* * @param * @return String

* * @throws

* */

@SuppressWarnings("deprecation")

private static String extractTextFromXLS(InputStream is) throws IOException {

StringBuffer content = new StringBuffer();

HSSFWorkbook workbook = new HSSFWorkbook(is); //创建对Excel工作簿文件的引用

for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {

if (null != workbook.getSheetAt(numSheets)) {

HSSFSheet aSheet = workbook.getSheetAt(numSheets); //获得一个sheet

for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {

if (null != aSheet.getRow(rowNumOfSheet)) {

HSSFRow aRow = aSheet.getRow(rowNumOfSheet); //获得一行

for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {

if (null != aRow.getCell(cellNumOfRow)) {

HSSFCell aCell = aRow.getCell(cellNumOfRow); //获得列值

if(aCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){

content.append(aCell.getNumericCellValue());

}else if(aCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){

content.append(aCell.getBooleanCellValue());

}else {

content.append(aCell.getStringCellValue());

}

}

}

}

}

}

}

return content.toString();

}

/**

* @Method: extractTextFromXLS2007

* @Description: 从excel 2007文档中提取纯文本 *

* @param

* @return String

* @throws

**/

private static String extractTextFromXLS2007(String fileName) throws Exception{

StringBuffer content = new StringBuffer(); //构造 XSSFWorkbook 对象,strPath 传入文件路径

XSSFWorkbook xwb = new XSSFWorkbook(fileName); //循环工作表Sheet

for(int numSheet = 0; numSheet < xwb.getNumberOfSheets(); numSheet++){

XSSFSheet xSheet = xwb.getSheetAt(numSheet);

if(xSheet == null){ continue;}

//循环行Row

for(int rowNum = 0; rowNum <= xSheet.getLastRowNum(); rowNum++){

XSSFRow xRow = xSheet.getRow(rowNum);

if(xRow == null){ continue; }

//循环列Cell

for(int cellNum = 0; cellNum <= xRow.getLastCellNum(); cellNum++){

XSSFCell xCell = xRow.getCell(cellNum);

if(xCell == null){ continue; }

if(xCell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN){

content.append(xCell.getBooleanCellValue());

}else if(xCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC){

content.append(xCell.getNumericCellValue());

}else{

content.append(xCell.getStringCellValue());

}

}

}

}

return content.toString();

}

}

java word2007_Java解析word2007、Excel2003和Excel2007相关推荐

  1. java读取Excel2003和Excel2007内容

    java读取Excel2003和Excel2007内容并可以控制是否读取全部sheet页内容 在http://download.csdn.net/detail/u010792467/8072015下载 ...

  2. excel2003和excel2007文件的创建和读取

    excel2003和excel2007文件的创建和读取在项目中用的很多,首先我们要了解excel的常用组件和基本操作步骤. 常用组件如下所示: HSSFWorkbook excel的文档对象HSSFS ...

  3. Java poi读取,写入Excel2003

    Java poi读取,写入Excel2003 相关阅读: poi读写Excel2007:http://www.cnblogs.com/gavinYang/p/3576741.html jxl读写exc ...

  4. 关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并)

    关于JAVA POI解析WPS docx文档中的table(复杂表格包含单元格横向,纵向的合并) 首先,关于poi解析表格先阅读一篇他人的博客 使用poi读取word2007(.docx)中的复杂表格 ...

  5. json java typeof_java解析json

    1:下载另外一个Java的小包就可以了: http://www.JSON.org/java/json_simple.zip 里面有源码和文档例题和编程的lib包:编程只需要json_simple.ja ...

  6. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  7. JAVA面试解析(有赞二面)

    作者:孤独烟 来自:打杂的ZRJ 本文的题目出自博客 http://www.54tianzhisheng.cn/2018/07/12/youzan/ 但是作者没有给出答案,博主斗胆来制作答案版. 也是 ...

  8. Java XML解析器

    使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ...

  9. 如何在Java中解析命令行参数?

    在Java中解析命令行参数的好方法是什么? #1楼 我不建议使用Apache Common CLI库,因为它是非线程安全的. 它使用带有静态变量和方法的有状态类来进行内部工作(例如OptionBuil ...

最新文章

  1. 如何分析802.11协议中的BA帧(block acknowledgement)
  2. golang 1.9 sp MySQL_Golang-使用mysql
  3. aws架构_如何使用AWS构建可扩展架构
  4. SpringBoot核心
  5. limit实现原理 mysql_解读数据库:深入分析MySQL中事务以及MVCC的实现原理
  6. cmake导入so库_cmake编译.so库体积非常大,求解答
  7. 微信生成专属海报(专属二维码)
  8. 在libvirt中使用SanLock
  9. Unity Shader 中获取屏幕坐标
  10. 企业数据总线(ESB)和注册服务管理(dubbo)的区别
  11. 英语四级计算机二级成绩,计算机二级成绩查询
  12. 计算机自动关机启机唤醒设置,电脑在哪设置定时关机(如何设置电脑的自动关机和自动开机)...
  13. Linux添加中文字体
  14. Android入门视频教程,抖音音视频开发
  15. 中科大少年班 | 实干兴“班”,这不是后浪,而是巨浪!
  16. 【重磅】人民网:分布式存储打开千亿级市场,深入推动行业数字化转型
  17. _091_Java_在catch抛出异常的同时finally块中也抛出异常的情况
  18. Guacamole搭建教程
  19. 以太坊源码阅读【环境安装MAC】
  20. 重要的27个Excel函数公式

热门文章

  1. 事件 ID: 3006 定期记录到应用程序日志
  2. 准备创建一个自己的校验提示Extender
  3. asp.net 下载大文件
  4. oracle基础知识文档,Oracle 基础知识分享PPT
  5. python怎么创建变量balance_在Python中将变量从一个函数修改为另一个函数
  6. python统计数据分析基础教程_Python数据分析基础教程:NumPy学习指南(第2版)
  7. git学习-fetch命令
  8. git21天打卡day12切换分支修改文件
  9. 让0基础纯小白也能上手写Python,干货分享(二)
  10. python爬虫框架学习_学习Python爬虫必备框架:Scrapy