java读写excel之POI篇—003

本文详细解析了为什么80%的码农难以晋升为架构师,并通过实例展示了如何使用WorkbookFactory和POIFSFileSystem打开Excel文件,以及如何处理加密的Workbook。文章深入探讨了代码实现细节,旨在帮助开发者理解和掌握关键技能。
  1. 使用WorkbookFactory打开Workbook

@Test
    public void openWorkbookByWorkbookFactory(){
        FileInputStream fileInputStream = null;
        Workbook workbook = null;
        try {
            fileInputStream = new FileInputStream("D:\\test.xls");
            workbook = WorkbookFactory.create(fileInputStream);
            //获取第一个sheet Name
            System.out.println(workbook.getSheetName(0));
            //获取sheet总数
            System.out.println(workbook.getNumberOfSheets());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }


二,使用POIFSFileSystem打开Workbook

@Test
    public void openWorkbookByPOIFSFileSystem(){
        FileInputStream fileInputStream = null;
        Workbook workbook = null;
        try {
            fileInputStream = new FileInputStream("D:\\test.xls");
            POIFSFileSystem poifsFileSystem = new POIFSFileSystem(fileInputStream);
            workbook = new HSSFWorkbook(poifsFileSystem);
            //制定sheet Name还回sheet index
            System.out.println(workbook.getSheetIndex("三"));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }


三,打开加密的Workbook(读加密)

@Test
    public void operWorkbookOfSN(){
        try {
            FileInputStream fileInputStream = new FileInputStream("D:\\test.xls");
            BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
            POIFSFileSystem poifsFileSystem = new POIFSFileSystem(bufferedInputStream);
            Biff8EncryptionKey.setCurrentUserPassword("password");
            HSSFWorkbook hssfWorkbook = new HSSFWorkbook(poifsFileSystem);
            System.out.println("====================EncryptedWorkbook====================");  
            System.out.println("Number of Sheets:" + hssfWorkbook.getNumberOfSheets());  
            System.out.println("Sheet0's name:" + hssfWorkbook.getSheetName(0));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


转载于:https://my.oschina.net/hxsg/blog/509483

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值