Java读取Excel,03版本和07版本

2 篇文章 0 订阅

java读取Excel

采用poi,这里有个知识点,03版本和07版本的Excel是有区别的,03的最多只有65536行,07的无限制
读取03版本的Excel,后缀.xls
读取07版本的Excel,后缀.xlsx

public class ExcelReadTest {
    String PATH = "你的公共路径保存文件啥的";
    /**
     * 读取03版本的Excel表
     */
    @Test
    public void testRead03() throws Exception {
        //获取文件流
        FileInputStream fileInputStream = new FileInputStream(PATH + "03版本的统计表03.xls");
        //1.创建一个工作簿,使用Excel能操作的,在这都能操作
        Workbook workbook = new HSSFWorkbook(fileInputStream);
        //2.拿表.可以根据名字获取,有AT的是根据下表获取
        Sheet sheet = workbook.getSheetAt(0);
        //获取第几行
        Row row = sheet.getRow(1);
        //获取列
        Cell cell = row.getCell(1);
        //获取值,获取字符串
//        System.out.println(cell.getStringCellValue());
        //获取数字
//        System.out.println(cell.getNumericCellValue());
//        System.out.println(cell.getDateCellValue());
        //流关闭流
        fileInputStream.close();
    }
    /**
     * 读取07版本的Excel表
     */
    @Test
    public void testRead07() throws Exception {
        //获取文件流
        FileInputStream fileInputStream = new FileInputStream(PATH + "07版本的统计表07.xlsx");
        //1.创建一个工作簿,使用Excel能操作的,在这都能操作,把流传进去
        Workbook workbook = new XSSFWorkbook(fileInputStream);
        //2.拿表.可以根据名字获取,有AT的是根据下表获取
        Sheet sheet = workbook.getSheetAt(0);
        //获取第几行
        Row row = sheet.getRow(1);
        //获取列
        Cell cell = row.getCell(1);
        //获取值,获取字符串
        System.out.println(cell.getStringCellValue());
        //获取数字
//        System.out.println(cell.getNumericCellValue());
//        System.out.println(cell.getDateCellValue());
        //流关闭流
        fileInputStream.close();
    }
}

读取Excel的计算公式


    /**
     * Excel计算公式
     * @throws Exception
     */
    @Test
    public void testFormula() throws Exception {
        FileInputStream inputStream = new FileInputStream(PATH + "公式.xls");
        Workbook workbook = new HSSFWorkbook(inputStream);
        Sheet sheet = workbook.getSheetAt(0);

        Row row = sheet.getRow(4);//得到计算公式位置
        Cell cell = row.getCell(0);
        //拿到计算公式
        FormulaEvaluator FormulaEvaluator = new HSSFFormulaEvaluator((HSSFWorkbook) workbook);
        //输出单元格的内容
        int cellType = cell.getCellType();
        switch (cellType){
            case Cell.CELL_TYPE_FORMULA://公式
                String formula = cell.getCellFormula();//得到公式
                System.out.println(formula);
                //计算
                CellValue evaluate = FormulaEvaluator.evaluate(cell);//直接计算格子里面的公式
                String cellValue = evaluate.formatAsString();//打印值
                System.out.println(cellValue);
                break;
        }
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值