IntelliJ IDEA环境下 POI读写Exel文件

来源:互联网 发布:不要root的录像软件 编辑:程序博客网 时间:2024/05/21 08:11
    最近做的一个小项目,需要读取exel文件中的数值,用Java(emmm,因为我用java比较熟练)写算法进行计算后,再将处理得出的结果写到exel表中。    所以就把目标瞄准在POI的学习。

首先,最基本的就是把依赖添加进pom文件中去:

        <!--poi-->        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi</artifactId>            <version>3.14</version>        </dependency>        <!--ooxml -->        <dependency>            <groupId>org.apache.poi</groupId>            <artifactId>poi-ooxml</artifactId>            <version>3.14</version>        </dependency>
    读exel文件代码如下,我的文件是.xlsm结尾的,所以用的是XSSF方式。如果是 .xls 结尾的文件,则用HSSF方式(即把XSSF部分改为HSSF就可以了)。    注意要操作的.xlsm文件放在src/main/resources目录下,当然也可以直接写它的绝对路径。
public void readInfo() throws Exception{        //Excel文件        XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream(ResourceUtils.getFile("classpath:财务信息.xlsm")));        //取工作表        XSSFSheet sheet = wb.getSheetAt(0);        //循环读出每条记录,第0行为标题行,故从下标为1的行开始取数值        for(int i = 1; i <= sheet.getLastRowNum();i++ ){            XSSFRow row = sheet.getRow(i);            XSSFCell codeCell = row.getCell(0);            codeCell.setCellType(XSSFCell.CELL_TYPE_STRING); //设置单元格格式为String,否则无法用字符串接收一个将数字格式的cell            String code = codeCell.getStringCellValue();            Date date = row.getCell(1).getDateCellValue();  //单元格为date格式            Double income = row.getCell(2).getNumericValue();  //单元格为数字类型        }
写exel文件:
public void writeExel() throws Exception{        String excelFileName = "classpath:财务报表.xlsm";// 文件名        String sheetName = "第一季度财务报表";// 工作表名        XSSFWorkbook wb = new XSSFWorkbook();        XSSFSheet sheet = wb.createSheet(sheetName);        // 循环写入每条收入记录的主码和盈利额        for (int r = 1; r < 5; r++)        {            XSSFRow row = sheet.createRow(r);            XSSFCell codeCell = row.createCell(0);            codeCell.setCellValue(r);            XSSFCell profitCell1 = row.createCell(1);            profitCell1.setCellValue(500 * r);        }        FileOutputStream fileOut = new FileOutputStream(excelFileName);        // 将workbook写到输出流中        wb.write(fileOut);        fileOut.flush();        fileOut.close();    }

本篇文章只作为一个简单的示例,完整例子应该包含有数据的计算,但由于比较复杂,我就不把其他代码贴出来了。我们只探讨单纯的POI读写操作。

参考文章:

  • Java实现excel简单读写
  • Springboot 之 使用POI读取解析Excel文件
原创粉丝点击