java-POI操作Excel记录

本文介绍了Apache POI库用于读写Excel文件的基本概念,包括需要导入的jar包,以及针对不同Excel格式(xls/xlsx)创建Workbook、Sheet、Row和Cell的方法。通过示例代码展示了如何使用POI进行简单的Excel操作。
摘要由CSDN通过智能技术生成

POI简介

Apache POI是Apache软件基金会的开源库,POI提供API供开发人员对office格式档案的读和写的功能。

学习心得

需要导入的jar包:
dom4j-1.6.1.jar
poi-3.7.jar
poi-ooxml-3.7.jar
poi-ooxml-schemas-3.7.jar
xmlbeans-2.6.0.jar

注意:

1、现在人们普遍使用的Excel文档有xls 和xlsx两种文档格式,其中xls格式的Excel文档又分为5.0/95工作薄以及97-2003工作薄这两种。需要注意的是,由于5.0/95工作薄的版本太低,现在的POI文档不在支持这种类型的Excel文档的读取工作,当试图读取这种类型的Excel文档的时候,POI会抛出异常(OldExcelFormatException)。我使用的版本是POI3.7.

2、创建Workbook时,由于Excel存在xls及xlsx两种格式,所以创建方式有所不同,其中对于xls格式的文档,需要使用HSSFWorkbook来创建工作薄对象,而对于xlsx格式的Excel文档,则需要使用XSSFWorkbook来创建工作薄。其中HSSFWorkbook于XSSFWorkbook这两个类其实都是Workbook接口的一个实现类。下面是创建工作薄对象的代码:

//创建一个不存在的excel文件
    private static Workbook createWorkbookIfNotExist(String fileName) throws Exception {
        Workbook wb = null;
        
        if(fileName.endsWith(".xls")) {
            wb = new HSSFWorkbook();
        } else if(fileName.endsWith(".xlsx")) {
            wb = new XSSFWorkbook();
        } else {
            throw new Exception("文件类型错误!");
        }
        
        try{
            OutputStream output = new FileOutputStream(fileName);
            wb.write(output);
        }catch(FileNotFoundException e) {
            System.out.println("文件创建失败,失败原因为:" + e.getMessage());
            throw new FileNotFoundException();
        }
        System.out.println(fileName + "文件创建成功!");
        
        return wb;
    }
    
    //创建一个新的或者已存在的Excel文档的Workbook
    public static Workbook createWorkbook(String fileName) throws Exception {
        InputStream input = null;
        Workbook wb = null;
        
        try{
            input = new FileInputStream(fileName);
            wb = WorkbookFactory.create(input);
        } catch(FileNotFoundException e) {
            System.out.println("要打开的文件不存在,正试图创建该文件,请稍后……!");
            wb = createWorkbookIfNotExist(fileName);
        } catch(OldExcelFormatException e) {
            System.out.println("文件打开失败,原因:要打开的Excel文件版本过低!");
            throw new OldExcelFormatException("文件版
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值