好记性不如烂笔头8-JAVA读取EXCEL文件
2015-01-29 17:04
507 查看
使用poi读取EXCEL的内容
在很多的场合,需要读取EXCEL文件。简单的示例。
需要引入第三方jar包:poi_3.6.jar
package com.daily;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*简单读取EXCEL中的内容
*@author 范芳铭
*/
public class EasyExcelRead {
privateList<Content> readXls(String excelFile) throws IOException {
InputStreamis = new FileInputStream(new File(excelFile));
HSSFWorkbookhssfWorkbook = new HSSFWorkbook(is);
Contentcontent = null;
List<Content>list = new ArrayList<Content>();
//循环工作表Sheet
for(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++){
HSSFSheethssfSheet = hssfWorkbook.getSheetAt(numSheet);
if(hssfSheet == null) {
continue;
}
//循环行Row
for(int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRowhssfRow = hssfSheet.getRow(rowNum);
if(hssfRow == null) {
continue;
}
content= new Content();
//0code;1姓名
HSSFCellone = hssfRow.getCell(0);
content.setCode(getValue(one));
HSSFCelltwo = hssfRow.getCell(1);
content.setName(getValue(two));
list.add(content);
}
}
returnlist;
}
/**
* 得到Excel表中的值
*/
privateString getValue(HSSFCell hssfCell) {
if(hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
//返回布尔类型的值
returnString.valueOf(hssfCell.getBooleanCellValue());
}else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
//返回数值类型的值
returnString.valueOf(hssfCell.getNumericCellValue());
}else {
//返回字符串类型的值
returnString.valueOf(hssfCell.getStringCellValue());
}
}
publicstatic void main(String[] args) throws Exception {
longstart = System.currentTimeMillis();
EasyExcelReadread = new EasyExcelRead();
List<Content>Contents = read.readXls("d:/ffm83/easyExcel.xls");
for(Contentcontent:Contents){
System.out.println(content.toString());
}
longend = System.currentTimeMillis();
System.out.println("生成excel文件耗时:"+ (end - start) + "(毫秒)");
}
//一个简单的保存简单信息的内部类
publicclass Content {
privateString code;
privateString name;
publicContent() {
}
publicContent(String code, String name) {
this.code= code;
this.name = name;
}
publicString getCode() {
returncode;
}
publicvoid setCode(String code) {
this.code= code;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
@Override
publicString toString(){
return"code:" + code + ",name:" + name;
}
}
}
在很多的场合,需要读取EXCEL文件。简单的示例。
需要引入第三方jar包:poi_3.6.jar
package com.daily;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*简单读取EXCEL中的内容
*@author 范芳铭
*/
public class EasyExcelRead {
privateList<Content> readXls(String excelFile) throws IOException {
InputStreamis = new FileInputStream(new File(excelFile));
HSSFWorkbookhssfWorkbook = new HSSFWorkbook(is);
Contentcontent = null;
List<Content>list = new ArrayList<Content>();
//循环工作表Sheet
for(int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++){
HSSFSheethssfSheet = hssfWorkbook.getSheetAt(numSheet);
if(hssfSheet == null) {
continue;
}
//循环行Row
for(int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRowhssfRow = hssfSheet.getRow(rowNum);
if(hssfRow == null) {
continue;
}
content= new Content();
//0code;1姓名
HSSFCellone = hssfRow.getCell(0);
content.setCode(getValue(one));
HSSFCelltwo = hssfRow.getCell(1);
content.setName(getValue(two));
list.add(content);
}
}
returnlist;
}
/**
* 得到Excel表中的值
*/
privateString getValue(HSSFCell hssfCell) {
if(hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
//返回布尔类型的值
returnString.valueOf(hssfCell.getBooleanCellValue());
}else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
//返回数值类型的值
returnString.valueOf(hssfCell.getNumericCellValue());
}else {
//返回字符串类型的值
returnString.valueOf(hssfCell.getStringCellValue());
}
}
publicstatic void main(String[] args) throws Exception {
longstart = System.currentTimeMillis();
EasyExcelReadread = new EasyExcelRead();
List<Content>Contents = read.readXls("d:/ffm83/easyExcel.xls");
for(Contentcontent:Contents){
System.out.println(content.toString());
}
longend = System.currentTimeMillis();
System.out.println("生成excel文件耗时:"+ (end - start) + "(毫秒)");
}
//一个简单的保存简单信息的内部类
publicclass Content {
privateString code;
privateString name;
publicContent() {
}
publicContent(String code, String name) {
this.code= code;
this.name = name;
}
publicString getCode() {
returncode;
}
publicvoid setCode(String code) {
this.code= code;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
@Override
publicString toString(){
return"code:" + code + ",name:" + name;
}
}
}
相关文章推荐
- 好记性不如烂笔头7-JAVA生成EXCEL文件
- 好记性不如烂笔头3-JAVA生成缩略图
- 好记性不如烂笔头18-java对Oracle的CLOB字段的操作
- 好记性不如烂笔头46-java拦截器-彻底理解动态代理的概念(1)
- 好记性不如烂笔头50-javaWeb框架struts2中的方法拦截器(5)
- 好记性不如烂笔头4-JAVA生成PDF文件
- 好记性不如烂笔头32-java通过过滤器加载常用数据(4)
- 好记性不如烂笔头47-java拦截器-用CGLib实现动态代理(2)
- 好记性不如烂笔头38-java监听windows窗口事件Listener(2)
- 好记性不如烂笔头30-java应用中的过滤器Filter(2)
- 好记性不如烂笔头24-JAVA处理数据库事务(2) - 脏数据
- 好记性不如烂笔头48-java拦截器-JDK自带动态代理和CGLIB效率比较(3)
- 好记性不如烂笔头1-JAVA基础数据类型和转换
- 好记性不如烂笔头17-java中的javaBean
- 好记性不如烂笔头26-JAVA处理文件事务(4)
- 记性不如烂笔头29-java应用中的过滤器Filter(1)
- 好记性不如烂笔头70-java中list的排序
- 好记性不如烂笔头49-javaWeb框架struts2中的拦截器(4)
- 好记性不如烂笔头43-javaWeb中Session相关事件监听器(7)
- 好记性不如烂笔头37-java应用中的监听器Listener(1)