首页 > 开发 > Java > 正文

java解析excel文件的方法

2024-07-13 10:03:40
字体:
来源:转载
供稿:网友

建立工程前需要导入POI包。POI相关jar包下载地址:http://poi.apache.org/download.html

1.解析.xlsx后缀名的的EXCEL文件:

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: // 数字              System.out.print(cell.getNumericCellValue()                  + "/t");              break;            case HSSFCell.CELL_TYPE_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: // 公式              System.out.print(cell.getCellFormula() + "/t");              break;            case HSSFCell.CELL_TYPE_BLANK: // 空值              System.out.println(" ");              break;            case HSSFCell.CELL_TYPE_ERROR: // 故障              System.out.println(" ");              break;            default:              System.out.print("未知类型  ");              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("您输入的excel格式不正确"); }*/  

2.解析后缀为.xls的EXCEL文件:

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: // 数字                    System.out.print(cell.getNumericCellValue()                  + "  ");              break;            case HSSFCell.CELL_TYPE_STRING: // 字符串              System.out.print(cell.getStringCellValue()                  + "  ");              break;            case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean              System.out.println(cell.getBooleanCellValue()                  + "  ");              break;            case HSSFCell.CELL_TYPE_FORMULA: // 公式              System.out.print(cell.getCellFormula() + "  ");              break;            case HSSFCell.CELL_TYPE_BLANK: // 空值              System.out.println(" ");              break;            case HSSFCell.CELL_TYPE_ERROR: // 故障              System.out.println(" ");              break;            default:              System.out.print("未知类型  ");              break;          }          }        System.out.print("/n");      }    }  } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表