JAVA解析EXCEL文件

     首先,需要导入POI包。

        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");
	    }
	}
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值