java how to parse excel files


The POI package needs to be imported before the project is set up. POI related jar package download address: http: / / poi apache. org/download html

1. Parse the EXCEL file with the suffix.xlsx:

package com.shuai.hello;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ReadExcel {
  public static void main(String[] args) throws IOException {

    //File file = new File("C:/Users.xlsx");
    InputStream stream = new FileInputStream("C:/Users.xlsx");

    XSSFWorkbook xssfWorkbook = new XSSFWorkbook(stream);
    XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);

    int rowstart = xssfSheet.getFirstRowNum();
    int rowEnd = xssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
      XSSFRow row = xssfSheet.getRow(i);
      if(null == row) continue;
      int cellStart = row.getFirstCellNum();
      int cellEnd = row.getLastCellNum();

      for(int k=cellStart;k<=cellEnd;k++)
      {
        XSSFCell cell = row.getCell(k);
        if(null==cell) continue;


        switch (cell.getCellType())
        {
          case HSSFCell.CELL_TYPE_NUMERIC: //  digital
            System.out.print(cell.getNumericCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_STRING: //  string
            System.out.print(cell.getStringCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
            System.out.println(cell.getBooleanCellValue()
                + "\t");
            break;
          case HSSFCell.CELL_TYPE_FORMULA: //  The formula
            System.out.print(cell.getCellFormula() + "\t");
            break;
          case HSSFCell.CELL_TYPE_BLANK: //  A null value
            System.out.println(" ");
            break;
          case HSSFCell.CELL_TYPE_ERROR: //  The fault
            System.out.println(" ");
            break;
          default:
            System.out.print(" Unknown type   ");
            break;
        }

      }
      System.out.print("\n");
    }
  }
}

/*String fileType = filePath.substring(filePath.lastIndexOf(".") + 1, filePath.length());
InputStream stream = new FileInputStream(filePath);
Workbook wb = null;
if (fileType.equals("xls")) {
 wb = new HSSFWorkbook(stream);
} else if (fileType.equals("xlsx")) {
 wb = new XSSFWorkbook(stream);
} else {
 System.out.println(" You enter the excel Incorrect format ");
}*/

2. Resolve EXCEL file with.xls:

package com.shuai.hello;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFCell;
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.poifs.filesystem.POIFSFileSystem;

public class ReadXls {
  public static void main(String[] args) throws IOException, IOException {
    File file = new File("C:/Users/dengta/Desktop/ok1.xls");
    POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new FileInputStream(file));
    HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
    HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);

    int rowstart = hssfSheet.getFirstRowNum();
    int rowEnd = hssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
      HSSFRow row = hssfSheet.getRow(i);
      if(null == row) continue;
      int cellStart = row.getFirstCellNum();
      int cellEnd = row.getLastCellNum();

      for(int k=cellStart;k<=cellEnd;k++)
      {
        HSSFCell cell = row.getCell(k);
        if(null==cell) continue;
        //System.out.print("" + k + " ");
        //System.out.print("type:"+cell.getCellType());

        switch (cell.getCellType())
        {
          case HSSFCell.CELL_TYPE_NUMERIC: //  digital
                  System.out.print(cell.getNumericCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_STRING: //  string
            System.out.print(cell.getStringCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
            System.out.println(cell.getBooleanCellValue()
                + "  ");
            break;
          case HSSFCell.CELL_TYPE_FORMULA: //  The formula
            System.out.print(cell.getCellFormula() + "  ");
            break;
          case HSSFCell.CELL_TYPE_BLANK: //  A null value
            System.out.println(" ");
            break;
          case HSSFCell.CELL_TYPE_ERROR: //  The fault
            System.out.println(" ");
            break;
          default:
            System.out.print(" Unknown type   ");
            break;
        }

      }
      System.out.print("\n");
    }
  }
}