开发者社区 问答 正文

poi文件读取(使用HSSFListener监听器):报错

项目中有Excel上传的功能以前Excel03使用的是HSSFWorkbook方式解析的。但是现在如果Excel达到上限的时候解析速度超慢。网上百度了一下原来可以使用HSSFListener进行解析。但是现在有一个问题使用HSSFListener监听器进行解析时如何指定需要解析的Sheet页。比如说我想要解析这个Excel的第2个Sheet.现在网上的都是解析所有的Sheet.难道我要把所有的Sheet都解析了然后再进行处理。请大神赐教。拜谢。


/** 
     * 遍历excel下所有的sheet 
     * @throws IOException 
     */  
    public void process(String fileName) throws IOException {  
        this.fs = new POIFSFileSystem(new FileInputStream(fileName));  
        MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(  
                this);  
        formatListener = new FormatTrackingHSSFListener(listener);  
        HSSFEventFactory factory = new HSSFEventFactory();  
        HSSFRequest request = new HSSFRequest();  
        if (outputFormulaValues) {  
            request.addListenerForAllRecords(formatListener);  
        } else {  
            workbookBuildingListener = new SheetRecordCollectingListener(  
                    formatListener);  
            request.addListenerForAllRecords(workbookBuildingListener);  
        }  
        factory.processWorkbookEvents(request, fs);  
    }



相关链接: http://blog.csdn.net/jinshuaiwang/article/details/15499685

展开
收起
kun坤 2020-06-07 16:08:09 931 分享 版权
1 条回答
写回答
取消 提交回答
  • [1]都回家过年了吗?######

    我也遇到了类似问题。没办法只能在getRows方法那加sheet判断,程序还是会遍历所有的sheet。

    另外还有一个问题,sax解析excel2007时,如何获取sheetname?

    ######通过这个解析的话,始终会读取所有的表,但是你可以通过加个sheetindex来控制
    2020-06-07 16:08:14
    赞同 展开评论
问答分类:
问答地址: