1. 环境
jdk1.6
poi3.6
2. 解析工具类
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
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;
public class ExcelParser implements Iterator<List<String>> {
private static final Logger logger = Logger.getLogger(ExcelParser.class);
private InputStream is = null;
private Iterator<?> rowIterator = null;
public ExcelParser(String excelFile){
HSSFWorkbook book = null;
HSSFSheet sheet = null;
try {
is = new FileInputStream(excelFile);
book = new HSSFWorkbook(is);
sheet = book.getSheetAt(0);
rowIterator = sheet.rowIterator();
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
public boolean hasNext(){
return rowIterator.hasNext();
}
public List<String> next(){
HSSFRow row = (HSSFRow)rowIterator.next();
List<String> erow = new ArrayList<String>();
Iterator<?> cellIterator = row.cellIterator();
while(cellIterator.hasNext()){
HSSFCell cell = (HSSFCell)cellIterator.next();
erow.add(this.getCellValue(cell));
}
return erow;
}
public void remove(){
throw new UnsupportedOperationException("本EXCEL解析器是只读的.");
}
private String getCellValue(HSSFCell cell){
String value = null;
//简单的查检列类型
switch(cell.getCellType())
{
case HSSFCell.CELL_TYPE_STRING://字符串
value = cell.getRichStringCellValue().getString();
break;
case HSSFCell.CELL_TYPE_NUMERIC://数字
long dd = (long)cell.getNumericCellValue();
value = dd+"";
break;
case HSSFCell.CELL_TYPE_BLANK:
value = "";
break;
case HSSFCell.CELL_TYPE_FORMULA:
value = String.valueOf(cell.getCellFormula());
break;
case HSSFCell.CELL_TYPE_BOOLEAN://boolean型值
value = String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_ERROR:
value = String.valueOf(cell.getErrorCellValue());
break;
default:
break;
}
return value;
}
public void close(){
if(is != null){
try {
is.close();
} catch (IOException e) {
logger.error(e.getMessage(), e);
}
}
}//close
}
3. 用法
ExcelParser ep = new ExcelParser("d:/test.xls");
while(ep.hasNext()){
List<String> row = ep.next();
System.out.println(row.get(0) + ", " + row.get(1));
}
ep.close();
分享到:
相关推荐
使用poi解析excel文件,并将数据写入到数据库 项目说明 这个项目实现的功能是读取excel文件中的数据,解析并写入数据库。 读取的excel文件位于项目目录下的 excel\0805.xlsx 使用IntelliJ IDEA开发此项目 使用MYSQL...
NULL 博文链接:https://hao0610.iteye.com/blog/1160678
使用poi解析excel将数据存入Oraclo所用的joi包
一个解单的java工程,利用poi解析excel.下载代码直接可以运行。
在使用poi解析Excel时,会遇缺少很多的包,这里都包括了
POI解析Excel简单实例
通过Java Poi 解析EXCEL数据,内附实现代码,绝对可以用。要分不为别的,只为能给个评论。
通过poi解析Excel示例
采用poi3.8解析excel文件,内含实例代码和jar包
poi解析excel2003、2007 poi解析excel2003、2007 poi解析excel2003、2007
利用 Apache POI 对 excel 操作并存入MySQL数据库的一个小demo。
自己写的一个poi解析excel 的工具类。里面有些实用的方法,满足基本的解析要求了。
最新版poi解析excel2007源码,简单实用,需要的可下.
1.不分版本,2003/2007完美解析 2.调用方便 3.输出直观 4.解析excel工程demo
apache poi解析Excel时报错,我将Excel打开后保存,就不会报错,我将重写的类从新打包这样问题虽然网上有解决方案,但是需要自己打包重写对应类,我已将这些步骤做好了。
最近公司需要把excel数据导入到mysql,自己结合网上例子写的demo。sql,excel都有,需要的小伙伴可以看看
POI解析Excel2007
使用java或android语言解析Excel数据时,通常采用poi的jar包进行解析,当前Apache最近的jar包是3.17,但有时版本过高导致出错,所以也附上poi-3.10的jar包
附件包含一个web项目,是一个简单的解析excel和word的例子,项目中包含jar poi解析excel、word2007,2010等版本