`

qEcal

    博客分类:
  • dq
dq 
阅读更多
/**
     * 读取excel表格数据(用于处理批量导入web账号)
     * @author : zhouyao
     * @version: 1.0
     * <p>时间 : 2011-9-27</p>
     * <p>描述 : 批量添加web账号</p>
     * <p>Copyright 1988-2005, Huawei Tech. Co., Ltd.</p>
     */
    public List<WebUserBean[]> poiExcel2003(String path,
            ActionMessages message, HttpServletRequest request)
    {
        Map<Integer, String> excelHeaderMap = new HashMap<Integer, String>();
        WebUserBean[] webUserBeanArray = null;
        List<WebUserBean[]> webUserList = new ArrayList<WebUserBean[]>();
        InputStream input = null;
        POIFSFileSystem fs = null;
        HSSFWorkbook wb = null;
        HSSFSheet sheet = null;
        int i = 0;
        try
        {
           
            input = new FileInputStream(path);
            fs = new POIFSFileSystem(input);
            wb = new HSSFWorkbook(fs);
            sheet = wb.getSheetAt(0); //读取第一个工作空间
            int countMax = 0;
            countMax = sheet.getLastRowNum(); //获取总条数
            //最大值只能是12000条
            if (countMax > WEBUSERMAX_LENGTH)
            {
                logger
                        .debug("Failed to import data Datasize ,the result is :\r\n");
                message.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
                        "Failed.to.import.data.Datasize"));
                saveErrors(request, message);
                input.close();
                deletefile(path);
                return null;
            }
            Iterator<Row> rows = sheet.rowIterator();
            //设置表头数据,判断数据值对应WebUserBean的字段
            excelHeader(rows, excelHeaderMap, request);
            //按行读取
            while (rows.hasNext())
            {
               
                if (i == 0)
                {
                    webUserBeanArray = new WebUserBean[WEBUE_LENGTH];
                }
                HSSFRow row = (HSSFRow) rows.next();
                Iterator<Cell> cells = row.cellIterator();
                WebUserBean webUserBean = new WebUserBean();
                //按列读取数据
                while (cells.hasNext())
                {
                    readExcelWebUserArray(excelHeaderMap, cells, webUserBean,
                            request);
                }
                if (null != webUserBeanArray)
                {
                    webUserBeanArray[i] = webUserBean;
                    i++;
                }
                if (i == WEBUE_LENGTH)
                {
                    i = 0;
                    webUserList.add(webUserBeanArray);
                }
            }
        }
        catch (IOException ex)
        {
            logger.debug("Failed to import data Datasize ,the result is :\r\n"
                    + ex);
            message.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
                    "oper.file.failure"));
            saveErrors(request, message);
            return null;
        }
        finally
        {
            if (input != null)
            {
                try
                {
                    input.close();
                    deletefile(path);
                }
                catch (IOException e)
                {
                    logger.debug("Document flow anomalies,the result is :\r\n"
                            + e);
                    message.add(ActionMessages.GLOBAL_MESSAGE,
                            new ActionMessage("oper.file.failure"));
                    saveErrors(request, message);
                    deletefile(path);
                    return null;
                }
            }
        }
       
        if (null != webUserBeanArray && i > 0 && i != WEBUE_LENGTH)
        {
            WebUserBean webUserBeanArrayTemp[] = new WebUserBean[i];
            for (int j = 0; j < i; j++)
            {
                webUserBeanArrayTemp[j] = webUserBeanArray[j];
            }
            webUserList.add(webUserBeanArrayTemp);
        }
        return webUserList;
    }
   
  
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics