一、常见API
1.文件(file) :File file=new File("文件位置“);
2.输入流(FileInputStream):FileInputStream fs=new FileInputStream(file);
3.工作簿(XSSFWorkbook) :XSSFWorkbook workbook=new XSSFWorkbook(InputStream inputStream);
4.电子表格(XSSFSheet)
创建电子表格: XSSFSheet sheet =workbook.createSheet("Sheet Name");
打开电子表格方式:
(1).XSSFSheet sheet=workbook.getSheetAt(0):sheet顺序从0开始
(2).XSSFSheet sheet=workbook.getSheet(String sheetname):根据sheet名称
5.行(XSSFRow)
创建行: XSSFRow row=sheet.createRow(int rowNum);
得到行: XSSFRow xssfRow=sheet.getRow(int rowNum);行从0开始
row.getFirstCellNum()//得到第一行
row.getLastCellNum()//得到最后一行
6.单元格(XSSFCell)
创建单元格:XSSFCell cell=xssfRow.createCell(0);//创建单元格
cell.getCellType(); //判断cell单元格的类型
得到单元格:XSSFCell cell=xssfRow.getCell(int cellNumh) 单元格从0开始
单元格的数据类型判断:
常量: 说明: 取值:
Cell.CELL_TYPE_NUMERIC 数值类型 cellValue.getNumberCellValue()
Cell.CELL_TYPE_STRING 字符串类型 cellValue.getStringCellValue()
Cell.CELL_TYPE_BOOLEAN 布尔类型 cellValue.getBooleanCellValue()
Cell.CELL_TYPE_FORMULA 表达式类型 需要转换
Cell.CELL_TYPE_ERROR 异常类型 cellValue.getErrorCellValue()
Cell.CELL_TYPE_BLANK 空
二、读取EXCEL 文件
public static void main(String[] args) throws Exception{
//输入文件
File file=new File("E:\\test\\user.xlsx");
//转换输入流
FileInputStream fis=new FileInputStream(file);
//创建工作簿
XSSFWorkbook workbook=new XSSFWorkbook(fis);
//得到电子表格(第几个)
XSSFSheet sheet=workbook.getSheetAt(0);
//遍历单元格
for(int rowNum=0;rowNum<=sheet.getLastRowNum();rowNum++) { //循环得到行
XSSFRow xssfRow=sheet.getRow(rowNum); //获取行
if(xssfRow==null) continue;
for(int columnNum =0;columnNum<xssfRow.getLastCellNum();columnNum++){ //循环获取列(单元格)
XSSFCell cell=xssfRow.getCell(columnNum);
if(cell==null) continue;
//判断单元格内容类型:根据类型不同用相应的方法获取值
switch (xssfRow.getCell(columnNum).getCellType()){
case Cell.CELL_TYPE_NUMERIC:
System.out.print(cell.getNumericCellValue()+" ");
break;
case Cell.CELL_TYPE_STRING:
System.out.print(cell.getStringCellValue()+" ");
break;
}
}
System.out.println();
}
}
确定Excel结构,每列内容和类型,直接取值:
for(int columnNum =0;columnNum<xssfRow.getLastCellNum();columnNum++){ //列
XSSFCell cell=xssfRow.getCell(columnNum);
if(cell==null) continue;
if(cell.getColumnIndex() == 1){ //获取第几列单元格内容
//第二列,类型设置为string,然后赋值给name
cell.setCellType(CellType.STRING);
userInfo.setUsername(cell.getStringCellValue());
}
if(cell.getColumnIndex() == 2){
userInfo.setPassword(cell.getStringCellValue());
}
if(cell.getColumnIndex() == 3){
userInfo.setEmail(cell.getStringCellValue());
}
if(cell.getColumnIndex() == 4){
userInfo.setPhone(cell.getStringCellValue());
}
}