poi jar包作用及文字解析

java学习记录(5)- poi jar包作用及文字解析

链接模块:
1 poi 准备
2 poi 翻译
3 poi 图片解析
提要:

  1. poi下载及文档查看(文档学习与查看的过程)
  2. poi对于单元格的解析
  3. 实际工作的过程步骤

具体内容
一 java本身配置了很多jar包,很多包都提供了很完善的学习文档。从这些文档中获取jar包的相关知识是最快速和准确的。当然网上也会有很多关于文档实现的实例。这些是快速的获取编程途径的方式,但并不官方,在此次的代码过程中就有发现。

  • 获取路径 poi3.17官方下载
  • 此次是需要解析excel文档,HSSF能够解析 Excel ‘97(-2007)文档格式,XSSF能够解析2007 OOXML (.xlsx) 文档格式。
  • 文档学习过程,
    (1)下载文档解析之后进行内容的在目录–poi-bin-3.17-20170915/poi-3.17/docs/spreadsheet/quick-guide.html。 通过该篇文章能够快速熟悉excel的操作过程。
    (2) 目录–poi-bin-3.17-20170915/poi-3.17/docs/apidocs/index.html是能够进行内容的处理,查询相关的api及记录。

二 工程所需jar包

各个解析模块跟jar包的关系
command

jar包依赖关系
jar 包依赖关系

故此:
当我们只要使用xls格式时、只要导入poi-version-yyyymmdd.jar就可以了。
当我们还要使用xlsx格式、还要导入poi-ooxml-version-yyyymmdd.jar。
至于poi-ooxml-schemas-version-yyyymmdd.jar这个jar基本不太会用到的。
当我们需要操作word、ppt、viso、outlook等时需要用到poi-scratchpad-version-yyyymmdd.jar。

三 工程代码实现
获取每个单元格的内容

public static int MY_MINIMUM_COLUMN_COUNT = 40;
    public static Map<String, List<Object>> getData(String excelPath) throws EncryptedDocumentException, InvalidFormatException, IOException{
        Map map = new HashMap();
        Workbook wb = WorkbookFactory.create(new File(excelPath));
        DataFormatter formatter = new DataFormatter();
        int sheetNum = wb.getNumberOfSheets();
        System.out.println("sheet nums " + sheetNum);


        for(int i = 0; i < sheetNum; i++) {
            Sheet sheet = wb.getSheetAt(i);
            int rowStart = Math.min(0, sheet.getFirstRowNum());
            int rowEnd = Math.max(14000, sheet.getLastRowNum());

            for (int rowNum = rowStart; rowNum < rowEnd; rowNum++) {
               Row r = sheet.getRow(rowNum);
               if (r == null) {
                  // This whole row is empty
                  // Handle it as needed
                  continue;
               }

               int lastColumn = r.getLastCellNum();
               List list = new ArrayList();
               for (int cn = 0; cn < lastColumn; cn++) {
                   //Row.MissingCellPolicy.RETURN_BLANK_AS_NULL
                  Cell cell = r.getCell(cn);
                  if (cell == null) {
                      list.add("null");
                     // The spreadsheet is empty in this cell

                  } else {
                      switch (cell.getCellTypeEnum()) {
                        case STRING:
                            list.add(cell.getRichStringCellValue().getString());
                            break;
                        case NUMERIC:
                            if (DateUtil.isCellDateFormatted(cell)) {
                                Date d= cell.getDateCellValue();
                                list.add(d);
                                //how to trans util.Date to sql.Date; this date is util.Date if to store in database trans to sql.Date;

                            } else {
                                list.add(cell.getNumericCellValue());
                            }
                            break;
                        case BOOLEAN:
                            list.add(cell.getBooleanCellValue());
//                          System.out.println(cell.getBooleanCellValue());
                            break;
                        case FORMULA:
                            list.add(cell.getCellFormula());
//                          System.out.println(cell.getCellFormula());
                            break;
                        case BLANK:

                            break;
                        default:
                    }
                    String sheet_row = String.valueOf(i) + "_" + String.valueOf(rowNum);
                    map.put(sheet_row, list);
                  }
               }
            }

        }
        return map;
    }
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值