一、常見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());
}
}