采用poi方式读取Excel:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
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.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Test;
import com.cn.entity.Emp;
/**
* @author Study 2017年7月17日 下午11:08:03
*/
public class TestReadExcel {
@Test
public void readExcel03() throws IOException{
FileInputStream inputStream = new FileInputStream(new File("F://aa//excel//book2.xls"));
//读取工作簿
HSSFWorkbook workBook = new HSSFWorkbook(inputStream);
//读取工作表
HSSFSheet sheet = workBook.getSheetAt(0);
//读取总行数
int rowNum = sheet.getLastRowNum();
for (int i = 1; i <= rowNum; i++) {
HSSFRow row = sheet.getRow(i);
if(row == null){
continue;
}
Emp emp = new Emp();
emp.setId(getCellValue(row.getCell(0)));
emp.setName(getCellValue(row.getCell(1)));
emp.setSex(getCellValue(row.getCell(2)));
emp.setNum(Integer.parseInt(getCellValue(row.getCell(3))));
System.out.println(emp.toString());
}
inputStream.close();
workBook.close();//最后记得关闭工作簿
}
@Test
public void readExcel07() throws IOException{
FileInputStream inputStream = new FileInputStream(new File("F://aa//excel//book1.xlsx"));
//读取工作簿
XSSFWorkbook workBook = new XSSFWorkbook(inputStream);
//读取工作表
XSSFSheet sheet = workBook.getSheetAt(0);
//读取总行数
int rowNum = sheet.getLastRowNum();
for (int i = 1; i <= rowNum; i++) {
XSSFRow row = sheet.getRow(i);
if(row == null){
continue;
}
Emp emp = new Emp();
emp.setId(getCellValue(row.getCell(0)));
emp.setName(getCellValue(row.getCell(1)));
emp.setSex(getCellValue(row.getCell(2)));
emp.setNum(Integer.parseInt(getCellValue(row.getCell(3))));
System.out.println(emp.toString());
}
inputStream.close();
workBook.close();//最后记得关闭工作簿
}
//判断从Excel文件中解析出来数据的格式
private static String getCellValue(Cell cell){
String value = null;
if (cell == null || "".equals(cell)) {
value = "";
}else {
//简单的查检列类型
switch(cell.getCellTypeEnum())
{
case NUMERIC:// 数字
long dd = (long)cell.getNumericCellValue();
value = dd+"";
break;
case STRING:// 字符串
value = cell.getRichStringCellValue().getString();
break;
case FORMULA:
value = String.valueOf(cell.getCellFormula());
break;
case BLANK:
value = "";
break;
case BOOLEAN://boolean型值
value = String.valueOf(cell.getBooleanCellValue());
break;
case ERROR:
value = String.valueOf(cell.getErrorCellValue());
break;
default:
break;
}
}
return value;
}
public static void main(String[] args) {
System.out.println("aa"+getCellValue(null));
}
}
excel:
实体:
jar包:
结果:
采用jxl 方式 读取excel 文件 Unable to recognize OLE stream 错误:
原因:不支出读取 excel 2007 文件(*.xlsx)。只支持 excel 2003 (*.xls)。