zoukankan      html  css  js  c++  java
  • POI操作Excel的API注意点总结

    本篇是关于POI.jar操作Excel的API注意事项

    基数问题

    说明:我使用的是POI 3.15版本的,在版本问题上建议大家,在版本稳定的基础上尽量使用高版本的

    看过很多帖子在问一个问题:假设原来有5行,删除最后一行之后,再获取还是5行的问题,我使用的这个版本没出现这样的问题,大家也可以使用我这个版本(哈哈)

    测试源码

    public void testPOI() {
    	try {
    		Workbook workbook = WorkbookFactory.create(new File("demo.xlsx"));
    		int numberOfSheets = workbook.getNumberOfSheets();
    		for (int s = 0; s < numberOfSheets; s++) {
    			String sheetName = workbook.getSheetName(s);
    			System.out.println(sheetName);
    			//获取总行数
    			Sheet sheet = workbook.getSheetAt(s);
    			//获取最后一行索引(基数为0)
    			int lastRowNum = sheet.getLastRowNum();
    			//获取总行数(基数为1)
    			int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
    			System.out.println("lastRowNum:" + lastRowNum);
    			System.out.println("physicalNumberofRows:" + physicalNumberOfRows);
    			for (int r = 0; r < physicalNumberOfRows; r++) {
    				if (r == sheet.getLastRowNum()) { //判断是否是最后一行
    					Row row = sheet.getRow(r);
    					sheet.removeRow(row); //如果是最后一行,删除这行
    				} else {
    					Row row = sheet.getRow(r);
    					//获取物理列(基数为1)
    					int physicalNumberOfCells = row.getPhysicalNumberOfCells();
    					//获取最后一列索引(基数为1)
    					short lastCellNum = row.getLastCellNum();
    					System.out.println("physicalNumberOfCells:" + physicalNumberOfCells);
    					System.out.println("lastCellNum:" + lastCellNum);
    				}
    			}
    			System.out.println("----------华丽分割线----------");
    			//获取最后一行索引(基数为0)
    			lastRowNum = sheet.getLastRowNum();
    			//获取总行数(基数为1)
    			physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
    			System.out.println("lastRowNum:" + lastRowNum);
    			System.out.println("physicalNumberofRows:" + physicalNumberOfRows);
    		}
    	} catch (EncryptedDocumentException e) {
    		e.printStackTrace();
    	} catch (InvalidFormatException e) {
    		e.printStackTrace();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    此贴持续更新......

  • 相关阅读:
    认识CSS样式/CSS样式的优势
    form表单中的label标签
    使用提交按钮,提交数据/使用重置按钮,重置表单信息
    使用下拉列表框,节省空间
    (七十)Xcode5及以上对于状态栏和导航栏样式的设定方法
    (六十九)使用block进行消息传递
    1039. Course List for Student (25)
    (六十八)使用XMPPFramework登录
    (六十七)Xcode导入XMPPFramework框架
    (六十六)TableView内容超过一屏时滚动到屏幕底部的方法
  • 原文地址:https://www.cnblogs.com/chentging/p/7120580.html
Copyright © 2011-2022 走看看