美文网首页web我爱编程
java操作POI读写Excel文件

java操作POI读写Excel文件

作者: 就问皮不皮 | 来源:发表于2018-03-30 15:21 被阅读79次

    JAVA使用POI读、写Excel文件

    01.前言

    当前使用比较多的读取Excel文件API就是POI和JXL。
    JXL(Java Excel API) 官网地址:http://jexcelapi.sourceforge.net/
    Apache的POI(Poor Obfuscation Implementation)官网地址:http://poi.apache.org/

    POI支持微软的OLE2格式文件Office 2003及以下版本;同时支持微软的OOXML(Office Open XML)标准,也就是Office 2007以上版本。JXL只能实现对Excel 2003以下版本的支持。

    POI使用HSSF对象操作OLE2格式Excel,文件后缀为.xls的;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.xlsx的。对于OLE2版本的Excel,一个Sheet工作表它的行最多支持到65536行,列支持到256列;对于OOXML版本的Excel,一个Sheet工作表它的行支持到1048576行,列支持到16384列。

    02.POI的使用

    02.1.所需要的jar包

    jar包下载地址:https://www.apache.org/dyn/closer.lua/poi/release/bin/poi-bin-3.17-20170915.tar.gz

    本程序使用jar包:poi-3.17.jar poi-ooxml-3.17.jar poi-ooxml-schemas-3.17.jar xmlbeans-2.6.0.jar

    02.2.写数据到Excel

        @Test
        public void writeExcel() throws Exception {
            //创建工作簿
            XSSFWorkbook workbook = new XSSFWorkbook();
            //创建工作表
            XSSFSheet sheet = workbook.createSheet();
            //创建行
            XSSFRow row = sheet.createRow(2);
            //创建单元格,操作第三行第三列
            XSSFCell cell = row.createCell(2,CellType.STRING);
            cell.setCellValue("hellword");
            //
            FileOutputStream outputStream = new FileOutputStream(new File("test.xlsx"));
            workbook.write(outputStream);
            //关闭工作簿
            workbook.close();
        }
    

    其结果就是就内容“hellword” 写到当前工程的test.xlsx文件的第三行第三列中,如图:


    这里写图片描述

    02.03.读Excel数据

        @Test
        public void readExcel() throws Exception {
            //打开需要读取的文件
            FileInputStream inputStream = new FileInputStream(new File("text.xlsx"));
            //读取工作簿
            XSSFWorkbook wordBook = new XSSFWorkbook(inputStream);
            //读取工作表,从0开始
            XSSFSheet sheet = wordBook.getSheetAt(0);
            //读取第三行
            XSSFRow row = sheet.getRow(2);
            //读取单元格
            XSSFCell cell = row.getCell(2);//获取单元格对象
            String value = cell.getStringCellValue();
            System.out.println(value);
            //关闭输入流
            inputStream.close();
            //关闭工作簿
            wordBook.close();
        }
    

    结果如图:

    这里写图片描述

    03.补充

    一些常用操作:
    新建工作簿:
    HSSFWorkbook wb = new HSSFWorkbook();
    打开工作簿:
    HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(xlsFile));
    建立新的sheet对象:
    HSSFSheet sheet = wb.createSheet("我的第一个工作簿");
    选择第一个工作簿:
    HSSFSheet sheet = wb.getSheetAt(0);
    设置工作簿的名称:
    wb.setSheetName(0, "我的第一个工作簿");
    创建行对象:
    HSSFRow nRow = null;
    nRow = sheet.createRow(1); //第2行
    指定列 创建单元格对象:
    HSSFCell nCell = null;
    nCell = nRow.createCell((short)(2)); //第3列
    指定列 创建单元格对象:
    nCell.setCellValue("我是单元格");
    设置样式 注意:样式不能重复设置
    nCell.setCellStyle(leftStyle(wb));
    本程序所需要的jar包:链接:https://pan.baidu.com/s/1Canvtaxvk06VHB4g2d8SNw 密码:ev38
    具体使用可参照:https://poi.apache.org/spreadsheet/index.html
    对于junit的使用可以参照博主的另外一篇博客。

    相关文章

      网友评论

      • IT人故事会:老铁下次注意格式啊,不太清晰,给点建议对于新手需要的是注释啊
        就问皮不皮:@IT人故事会 好的,谢谢大佬
        IT人故事会:@就问皮不皮 建议你看看开源中国有个一行代码操作excel的插件,站在巨人的肩膀上成长才更高,互相关注了
        就问皮不皮:@IT人故事会 好的

      本文标题:java操作POI读写Excel文件

      本文链接:https://www.haomeiwen.com/subject/jsjicftx.html