java 解析docx_java解析xlsx和docx 文件 | 学步园
用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 文件 | 学步园相关推荐
- Java:使用POI实现word的docx文件的模板功能
一:场景 通过Word模板来实现动态的word生成 二: 基本要求 1:替换文本中的内容 2:替换表格中的内容(不用动态生成表格) 3:替换后的内容应该与替换前的内容格式相同 4:模板修改方 ...
- java使用poi读取doc和docx文件
这几天在学习java io流的东西,有一个网友看到博客后问了一个问题,就是说他的doc文档为什么用我所说的方法死活就是乱码. 我一开始以为是他方法问题,结果自己试了之后发现和他的结果一样也是乱码. 于 ...
- java oval_Java对象校验框架Oval怎么使用 | 学步园
OVal是一个可扩展的Java对象数据验证框架,验证的规则可以通过配置文件.Annotation.POJOs进行设定.可以使用纯Java语言.JavaScript.Groovy.BeanShell等进 ...
- java有关地址的讲解_Java迭代器讲解 | 学步园
迭代器在其实就是指针,读取集合或者数组中的一个值,读完以后又指向下一条数据. iterator() 迭代器只读,不能改效率要比for循环高 迭代器的一些方法: HasNext() 如果仍有元素可以迭代 ...
- java 解析p12_java读取*.p12证书的信息 | 学步园
现在很多通讯都是在SSL上进行的.本文主要针对*.p12证书 读取里面信息. /** * ReadP12Cert.java * 版权所有(C) 2012 * 创建:cuiran 2012-07-31 ...
- java windows so文件_windows下编译使用NDK,调用SO文件 | 学步园
下载后把压缩包解压出来,例如:D:\ndk,目录下的ndk-build.cmd就是用来编译的批处理命令. 这里以D:\ndk\samples\hello-jni为例,打开D:\ndk\samples\ ...
- java读取mxl_Dom4j 读取一个XML文件和将String写成XML文件 | 学步园
dom4j保存文件xml格式和读取XML文件内容,代码如下: package com.qmjs.imut import java.io.File; import java.io.FileWriter; ...
- java mp3 信息_java读取MP3的信息 | 学步园
标签头"TAG" 3字节 标题 30字节 作者 30字节 专辑 30字节 出品年份 4字节 备注信息 28字节 保留 1字节 音轨 1字节 类型 1字节 import java.i ...
- java console清屏_JAVA 控制台清屏 | 学步园
看到网上有人讨论Java如何实现对控制台清屏,看到的内容不是很理想.所以把这些内容总结一下. 直观一点,先看下代码吧 import static java.lang.System.out; /** * ...
最新文章
- 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)
- 【集合论】卡氏积 ( 卡氏积概念 | 卡氏积示例 | 卡氏积性质 | 非交换性 | 非结合性 | 分配律 | 有序对为空 | n 维卡氏积 | n 维卡氏积个数 | n维卡氏积性质 )
- [cocoapods]安装cocoapods
- iis php配置内部错误,iis 500 内部服务器错误 php
- 智能情绪分析技术_简单分析人工智能的表现在计算机网络应用技术中的优势
- 26_多线程_第26天(Thread、线程创建、线程池)
- 剑指offer面试题[9-3]-矩形覆盖
- 如何使用Windows Live Alerts服务
- 仿真器连接出现NO TARGET CONNECTED解决方法及cube配置方法
- 深入理解iPhone静态库
- cuda对应pytorh安装
- 2007-2018年软考高级之系统分析师真题及答案解析
- 高中生可发表论文的学术期刊涵盖TCR历史期刊
- 关于前几天的招聘,我说几点
- Beautiful Soup:4 kinds of objects
- Dubbo的Api+Provider+Customer示例(IDEA+Maven+Springboot+dubbo) 项目结构
- 知物由学 | iOS AssetBundle资源保护
- sed 删除某一行_sed删除指定行
- FileReader的使用方法
- 呵,偶居然也能“说教”了
热门文章
- 软件架构设计的六大原则
- Java基础学习总结(65)——Java中的String,StringBuilder和StringBuffer比较
- 实分析royden第四版答案_高价实木变板木掺了“假”的实木家具!搞懂这些名词,买家具不上当...
- 注册app短信验证平台_免费的短信验证码平台弊端竟然这么多!
- c语言程序设计上机考试题,C语言程序设计上机考试题目汇编..doc
- python canvas画移动物体_Python:Tkinter的GUI设计——物体实时移动
- 中关村在线 测试软件,主观测试软件:ZOL Monitor LCD 简介
- 有些牛逼,需要很长时间才能看得出来
- uva 11374(Dijkstra) HappyNewYear!!!
- Firefox下去掉密码自动填充