<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);
            }

        }

    主站蜘蛛池模板: 无码乱肉视频免费大全合集| 一区二区视频免费观看| 日本免费网站视频www区| 亚洲人成网站在线播放影院在线| 一区二区免费电影| 亚洲人成精品久久久久| 国产一精品一AV一免费| 亚洲产国偷V产偷V自拍色戒| 精品视频在线免费观看| 91亚洲一区二区在线观看不卡| 日韩免费电影网址| 亚洲精品在线电影| 特级做A爰片毛片免费69| WWW亚洲色大成网络.COM | 2021精品国产品免费观看| 亚洲黄色在线播放| 在线观看视频免费完整版| 亚洲AV一区二区三区四区| xvideos亚洲永久网址| 中文字幕免费观看视频| 亚洲VA成无码人在线观看天堂| 1000部国产成人免费视频| 亚洲中文字幕乱码熟女在线| 国产成人涩涩涩视频在线观看免费| 日韩毛片免费一二三| 亚洲av无码国产精品色午夜字幕 | 亚洲中久无码不卡永久在线观看| 国产精品hd免费观看| 久久久久亚洲精品无码蜜桃| 精品久久久久久久久免费影院| 色欲aⅴ亚洲情无码AV蜜桃| 国产亚洲AV手机在线观看| 国产精品免费观看| 色www免费视频| 久久精品国产96精品亚洲| 最近免费中文字幕大全视频 | 国产成人无码区免费网站| 亚洲一区中文字幕在线观看| 亚洲国产成人a精品不卡在线| 亚洲免费在线视频| 羞羞网站免费观看|