<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    城市獵人

    在一網情深的日子里,誰能說得清是苦是甜,只知道確定了就義無反顧
    posts - 1, comments - 7, trackbacks - 0, articles - 89

    利用OPI讀取Excle文件

    Posted on 2009-09-02 13:44 sailor 閱讀(587) 評論(0)  編輯  收藏 所屬分類: java
    1、讀取文件
     /**
         * 導入方法
         * 
    @param request
         * 
    @return
         * 
    @throws Exception
         
    */

        
    public Message importCubage(HttpServletRequest request) throws Exception {
            Message message 
    = MessageFactory.getMessage();
            ServletContext context 
    = getServletContext();
                  
            UploadListener listener 
    = new UploadListener(request, 30);
            
    // Create a factory for disk-based file items
            FileItemFactory factory = new MonitoredDiskFileItemFactory(listener);
            
    // Create a new file upload handler
            ServletFileUpload upload = new ServletFileUpload(factory);
            
    try {
                List items 
    = upload.parseRequest(request);
                UserSession userSession 
    = UserSession.getUserSession(request
                        .getSession());
                
    for (int i = 0; i < items.size(); i++{
                    FileItem fileItem 
    = (FileItem) items.get(i);
                    
    if (!fileItem.isFormField()) {
                        InputStream inputstream 
    = fileItem.getInputStream();
                        
    //讀取excle文件
                        this.getVolumeCorrenctionFactorService().saveExcleWorkBook(inputstream, userSession);
                       
                        message.addMessage(MessageUtils.operateSuccess());
                    }

                }

                
    return message;
            }
     catch (FileUploadException e) {
                
    throw new FileUploadException(e.getMessage());
            }

        }


    2、讀取ExcleWorkBook
         /**
         * 讀取Excle
         * 
    @param is
         
    */

        
    public void saveExcleWorkBook(InputStream is, UserSession userSession){
            Message message 
    = MessageFactory.getMessage();
               
            
    //通過得到的文件輸入流inputstream創建一個HSSFWordbook對象
            try {
                HSSFWorkbook hssfworkbook 
    = new HSSFWorkbook(is);
                HSSFSheet hssfsheet 
    = null;
                
    for (int i = 0; i < hssfworkbook.getNumberOfSheets(); i++{
                     hssfsheet 
    = hssfworkbook.getSheetAt(i);
                     
    this.readExcleSheet(hssfsheet, userSession);
                }

            }
     catch (IOException e) {
                e.printStackTrace();
                message.addMessage(
    "讀取Excle文件失敗!");
            }
     
        }

    3、解析Excle
      /**
         * 讀取Sheet數據
         * 
    @param hssfsheet
         
    */

        
    private void readExcleSheet(HSSFSheet hssfsheet, UserSession userSession){
            
            
    //定義Sheet行
            HSSFRow rows = null;
            
    //定義列
            HSSFCell cell = null;
            
            Double firstColumn;
            
            Double firstRow;
            
            List list 
    = new ArrayList();
            
            VolumeCorrenctionFactorVO vo 
    = null;

             
    //遍歷該行所有的行,i表示行數 getPhysicalNumberOfRows行的總數
            for (int i = 1; i < hssfsheet.getPhysicalNumberOfRows(); i++{         
               rows 
    = hssfsheet.getRow(i);      

               
    //獲取第i行,第0列的值
               if(rows.getCell((short0).getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
               
    {
                   firstColumn 
    = rows.getCell((short0).getNumericCellValue();
               }
    else{
                   
    throw new BusinessException("Excle第" + (i+1+ "行,第" + "1列不是有效數字");
               }

               
               
    //獲取第i行,第j列的值
               for(short j = 1; j < hssfsheet.getRow(0).getLastCellNum(); j++ )
               
    {
                   
    //獲取第0行,第j列的值             
                   if(hssfsheet.getRow(0).getCell(j).getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
                   
    {
                       firstRow 
    = hssfsheet.getRow(0).getCell(j).getNumericCellValue();
                   }
    else{
                       
    throw new BusinessException("Excle第1行,第" + (j + 1+ "列不是有效數字");
                   }

                   
                   
    //獲取第i行,第j個單元格
                   cell = rows.getCell(j); 
                   
                   
                   
    //判斷是否是數字
                   if (null == cell || cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
                   
    {
                       vo 
    = new VolumeCorrenctionFactorVO();
                       vo.setDensity(firstRow);
                       vo.setTemprature(firstColumn);
                       
    if(null != cell){
                           Double cellContent 
    = cell.getNumericCellValue();
                           vo.setVolumeFactor(cellContent);
                       }

                           
                       list.add(vo);
                   }
    else{
                        
    throw new BusinessException("Excle第" + (i +  1+ "行,第" + (j + 1+ "列不是有效數字");
                   }

               }

     
            }

            
            
    if(list.size() > 0)
            
    {
                
    //構建批量插入SQL
                String sql = this.buildSQL(list,userSession);
                
                  
    //執行一次性插入多條SQL語句
                this.volumeCorrenctionFactorDAO.getSqlExecutor().exectue(sql, null);
            }

        }

    主站蜘蛛池模板: 国产精品亚洲一区二区在线观看| 日本一区二区在线免费观看 | 久久精品国产亚洲av高清漫画| 久久国产高潮流白浆免费观看| 亚洲中文无码永久免| 亚洲综合色视频在线观看| 最近中文字幕mv免费高清在线| 亚洲欧美乱色情图片| 久久精品国产精品亚洲艾| 免费观看一级毛片| 成人黄网站片免费视频| 亚洲欧洲国产综合AV无码久久| 亚洲中文字幕无码中文字在线| 一个人免费观看www视频在线| 色多多免费视频观看区一区| 亚洲欧洲日产国产综合网| 免费A级毛片无码久久版| 9420免费高清在线视频| 国产成人亚洲精品播放器下载| 亚洲第一极品精品无码久久| 女性自慰aⅴ片高清免费| 永久免费av无码入口国语片| 亚洲AV永久无码精品网站在线观看| 亚洲av无码专区国产乱码在线观看| 全免费a级毛片免费**视频| 99视频在线免费看| 一区二区三区免费在线观看| 亚洲娇小性xxxx色| 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲?v无码国产在丝袜线观看| 曰批视频免费40分钟试看天天| 青青免费在线视频| 亚洲国产精品综合久久久 | 蜜臀亚洲AV无码精品国产午夜.| 亚洲AV无码不卡在线播放| 免费人妻av无码专区| 免费无码肉片在线观看| 免费91最新地址永久入口 | 毛片免费观看网站| 久久aa毛片免费播放嗯啊| 又长又大又粗又硬3p免费视频 |