java解析excel以獲取String值


 

//maven配置

<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi</artifactId>
  <version>3.17</version><!--$NO-MVN-MAN-VER$ -->
</dependency>
<dependency>
  <groupId>org.apache.poi</groupId>
  <artifactId>poi-ooxml</artifactId>
  <version>3.17</version><!--$NO-MVN-MAN-VER$ -->
</dependency>

import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.lang3.StringUtils;
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.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.web.multipart.MultipartFile;

/**
* 解析excel

* @param cell
* @return
*/

public void doImport(MultipartFile file) {
  InputStream fis = null;
  Workbook workBook = null;
  try {
    fis = file.getInputStream();

    String fileName = file.getOriginalFilename();

    //截取后綴名
    String hz = fileName.substring(fileName.lastIndexOf("."), fileName.length());

    Sheet tcsSheet;
    if(".xlsx".equalsIgnoreCase(hz) || ".xlsx" == hz){
      workBook = new XSSFWorkbook(fis);
    }else{
      workBook = new HSSFWorkbook(fis);
    }

    //獲取sheet的數量
    int sheetNum = workBook.getNumberOfSheets();

    //遍歷sheet,獲取sheet中數據
    for(int i=0;i<sheetNum;i++){

      //判斷文件后綴是“.xlsx”還是“.xls”,並進行不同的操作
      if(".xlsx".equalsIgnoreCase(hz) || ".xlsx" == hz){
        tcsSheet = (XSSFSheet) workBook.getSheetAt(i);
      }else{
        tcsSheet = (HSSFSheet) workBook.getSheetAt(i);
      }

      //sheet名
      String sheetName = tcsSheet.getSheetName();

      int rows=tcsSheet.getPhysicalNumberOfRows();
      for (int r = 2; r < rows; r++) {//從第二行開始讀
        Row row;
        if(".xlsx".equalsIgnoreCase(hz) || ".xlsx" == hz){
          row = (XSSFRow) tcsSheet.getRow(r);
        }else{
          row = (HSSFRow) tcsSheet.getRow(r);
        }
        //第r行第0個單元格
        String cell0=getCellValueToString(row.getCell(0));
        //第r行第1個單元格
        String cell1=getCellValueToString(row.getCell(1));
      }
    }
  } catch (Exception e) {
    e.printStackTrace();
  }finally{
    try {
      if (null != workBook) {
        workBook.close();
      }
      if (fis != null) {
        fis.close();
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

/**
* 獲取列值
*
* @param cell
* @return
*/
private String getCellValueToString(Cell cell) {
  String value = StringUtils.EMPTY;
  if(null==cell)
    return value;
  cell.setCellType(CellType.STRING);
  value = cell.getStringCellValue();
  return value;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM