ExceL文档2.上传解析Excel文档

控制层方法:

@RequestMapping(value = "/parseEXCEL.do", method = RequestMethod.POST)

        public String batchApplication(@RequestParam("file") MultipartFile file,
            HttpServletRequest request, HttpServletResponse response, Model model, HttpSession session) throws IOException {    
    
          request.setCharacterEncoding("utf-8");
          /*
           * 将上传Excel文件保存到D盘中excelFile临时文件夹中
           */
          String path = "D:\\excelFile";
        File tmpFile = new File(path);
        if (!tmpFile.exists()) {      
            tmpFile.mkdir();
        }
              String fileUrl = tmpFile + "/" + file.getOriginalFilename();
                      fileUrl = fileUrl.replaceAll("\\\\", "/");
    try {
        byte[] bytes = file.getBytes();
        /*
         * 保存临时文件
         */
        FileOutputStream fos = new FileOutputStream(fileUrl);
        fos.write(bytes);
        fos.close();
        
        FileInputStream fis = new FileInputStream(fileUrl);
         /*
          * 调用方法解析Excel文档返回一个List<Encryption>对象集合
          */
            List<Encryption> Encryptions = ExcelUtil.parseEXCEL(fis);
              /*
              * 插入操作前获取每条信息对应的ID值
              */
            for(Encryption encr:Encryptions){
                encr.setEncryptionid(UUIDPrimaryKeyUtil.getPrimaryKey());
               Boolean isEncs = encryptionService.addBatchExcel(encr);
            }

        fis.close();

    /*将服务器临时文件删除*/

        File fu = new File(fileUrl);
        if (fu.exists()) {    
            fu.delete();
        }
        } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
             }  
    
              return "";

      }


解析以及数据处理类:

package com.company.item.util.ExcelInfo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.company.item.model.encryptionManage.Encryption;
import com.company.item.util.info.LoginInfoUser;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class ExcelUtil {
    /*
     * private 私有 本类 static 静态方法 可以调用 final 程序运行不可更改
     */
    private static  final Map<String,String>  RJBBMAP =new HashMap<String,String>();;
    private static final Map<String,String> QXMAP =new HashMap<String,String>();
    private static final Map<String,String> RJLXMAP=new HashMap<String,String>();
    /*构造初始化*/
    public ExcelUtil(){
        /*
         * 初始化软件版本及对应的软件版本ID信息 key:rjbb value:rjbbID
         */
        RJBBMAP.put("沪友远程认证系统v1.0", "08e9a5b8-f896-484d-9969-044559303ba9");
        RJBBMAP.put("票易捷辅助v4.0", "1b6e6839-4293-4f9c-a448-268a09147fda");
        RJBBMAP.put("票易捷辅助v1.0", "43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd");
        RJBBMAP.put("办税助手网商贷v1.0", "63ed43b0-1052-45b0-9d70-050ecb297e68");
        RJBBMAP.put("文本接口v3.0", "75d54e4a-fff3-4fd6-a0af-704b55171556");
        RJBBMAP.put("票易捷辅助v2.0", "78f35e62-d306-440c-b55f-894fbd4d594e");
        RJBBMAP.put("办税助手v1.0", "7de6e05a-c997-4706-adc7-ffd82578cb9a");        
        RJBBMAP.put("沪友远程认证系统v2.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
        RJBBMAP.put("文本接口v1.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
        RJBBMAP.put("发票管理v2.0", "926892ee-bd3f-4b09-94aa-4fcac170fa61");
        RJBBMAP.put("文本接口v2.0", "a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8");
        RJBBMAP.put("办税助手v2.0", "b78a0d9c-4be0-41d6-8b96-658114f860d5");
        RJBBMAP.put("票易捷辅助v5.0", "c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8");
        RJBBMAP.put("票易捷辅助v3.0", "d85d4053-ca39-40a4-8b75-cb68efc838ca");
        RJBBMAP.put("机动车自动开票1.0.0.1", "da1d2f80-e6fa-4142-9d27-f802d703e4a0");
      
      /*数据库数据
       * 08e9a5b8-f896-484d-9969-044559303ba9    沪友远程认证系统v1.0
1b6e6839-4293-4f9c-a448-268a09147fda    票易捷辅助v4.0
43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd    票易捷辅助v1.0
63ed43b0-1052-45b0-9d70-050ecb297e68    办税助手网商贷v1.0
75d54e4a-fff3-4fd6-a0af-704b55171556    文本接口v3.0
78f35e62-d306-440c-b55f-894fbd4d594e    票易捷辅助v2.0
7de6e05a-c997-4706-adc7-ffd82578cb9a    办税助手v1.0
897bb9f0-872b-45ef-9224-1f71bd4526a9    沪友远程认证系统v2.0
8e8b046f-5dca-414d-a278-3bcb574f9f4e    文本接口v1.0
926892ee-bd3f-4b09-94aa-4fcac170fa61    发票管理v2.0
a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8    文本接口v2.0
b78a0d9c-4be0-41d6-8b96-658114f860d5    办税助手v2.0
c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8    票易捷辅助v5.0
d85d4053-ca39-40a4-8b75-cb68efc838ca    票易捷辅助v3.0
da1d2f80-e6fa-4142-9d27-f802d703e4a0    机动车自动开票1.0.0.1
       */
      
      /*数据库数据
       * 初始化权限ID及对应的权限值  key: qx值  value:qxID
       */
    
      QXMAP.put("1","8a1e78a5-405a-4919-8c89-68c6f6e564d5" );
      QXMAP.put("2", "7b5a7079-1eff-47bc-bff4-75d0aef78269");
      /*
      7b5a7079-1eff-47bc-bff4-75d0aef78269    2    无扫描枪
      8a1e78a5-405a-4919-8c89-68c6f6e564d5    1    有扫描枪
      */
      /*数据库数据
       * 初始化软件类型及对应的软件类型ID信息 key:rjlx  value:rjlxId
       */
      RJLXMAP.put("发票管理", "5dae44f5-dc71-4a98-b0b2-1666b4a178f9");
      RJLXMAP.put("办税助手网商贷", "6bbf5b8c-2a39-4b9d-9cfb-492611f4621a");
      RJLXMAP.put("机动车自动开票", "798a8220-7fb6-40b7-b355-61a42cf5613b");
      RJLXMAP.put("沪友远程认证系统", "7f0c5652-ee12-4d89-9169-d2652edd58c5");
      RJLXMAP.put("票易捷辅助", "81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2");
      RJLXMAP.put("文本接口", "bb6ef58c-3cff-4b20-a45e-c9af85e72456");
      RJLXMAP.put("车购税申报系统", "cadc1745-8a5e-4807-acb0-93d35b7abe72");
      /*  数据库数据
      5dae44f5-dc71-4a98-b0b2-1666b4a178f9    发票管理
      6bbf5b8c-2a39-4b9d-9cfb-492611f4621a    办税助手网商贷
      798a8220-7fb6-40b7-b355-61a42cf5613b    机动车自动开票
      7f0c5652-ee12-4d89-9169-d2652edd58c5    沪友远程认证系统
      81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2    票易捷辅助
      bb6ef58c-3cff-4b20-a45e-c9af85e72456    文本接口
      cadc1745-8a5e-4807-acb0-93d35b7abe72    车购税申报系统
      */
    }
    /*  静态域初始化*/
    static{
        /*
         * 初始化软件版本及对应的软件版本ID信息 key:rjbb value:rjbbID
         */
        RJBBMAP.put("沪友远程认证系统v1.0", "08e9a5b8-f896-484d-9969-044559303ba9");
        RJBBMAP.put("票易捷辅助v4.0", "1b6e6839-4293-4f9c-a448-268a09147fda");
        RJBBMAP.put("票易捷辅助v1.0", "43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd");
        RJBBMAP.put("办税助手网商贷v1.0", "63ed43b0-1052-45b0-9d70-050ecb297e68");
        RJBBMAP.put("文本接口v3.0", "75d54e4a-fff3-4fd6-a0af-704b55171556");
        RJBBMAP.put("票易捷辅助v2.0", "78f35e62-d306-440c-b55f-894fbd4d594e");
        RJBBMAP.put("办税助手v1.0", "7de6e05a-c997-4706-adc7-ffd82578cb9a");        
        RJBBMAP.put("沪友远程认证系统v2.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
        RJBBMAP.put("文本接口v1.0", "8e8b046f-5dca-414d-a278-3bcb574f9f4e");
        RJBBMAP.put("发票管理v2.0", "926892ee-bd3f-4b09-94aa-4fcac170fa61");
        RJBBMAP.put("文本接口v2.0", "a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8");
        RJBBMAP.put("办税助手v2.0", "b78a0d9c-4be0-41d6-8b96-658114f860d5");
        RJBBMAP.put("票易捷辅助v5.0", "c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8");
        RJBBMAP.put("票易捷辅助v3.0", "d85d4053-ca39-40a4-8b75-cb68efc838ca");
        RJBBMAP.put("机动车自动开票1.0.0.1", "da1d2f80-e6fa-4142-9d27-f802d703e4a0");
      
      /*数据库数据
       * 08e9a5b8-f896-484d-9969-044559303ba9    沪友远程认证系统v1.0
1b6e6839-4293-4f9c-a448-268a09147fda    票易捷辅助v4.0
43ef1f8e-bf9b-4692-b9f3-a06ee7775cbd    票易捷辅助v1.0
63ed43b0-1052-45b0-9d70-050ecb297e68    办税助手网商贷v1.0
75d54e4a-fff3-4fd6-a0af-704b55171556    文本接口v3.0
78f35e62-d306-440c-b55f-894fbd4d594e    票易捷辅助v2.0
7de6e05a-c997-4706-adc7-ffd82578cb9a    办税助手v1.0
897bb9f0-872b-45ef-9224-1f71bd4526a9    沪友远程认证系统v2.0
8e8b046f-5dca-414d-a278-3bcb574f9f4e    文本接口v1.0
926892ee-bd3f-4b09-94aa-4fcac170fa61    发票管理v2.0
a4ebb7a4-b5ff-46cc-b4d4-0849e4ea75e8    文本接口v2.0
b78a0d9c-4be0-41d6-8b96-658114f860d5    办税助手v2.0
c8bd5bf0-bea5-4ce1-a4e0-4b6fa02505e8    票易捷辅助v5.0
d85d4053-ca39-40a4-8b75-cb68efc838ca    票易捷辅助v3.0
da1d2f80-e6fa-4142-9d27-f802d703e4a0    机动车自动开票1.0.0.1
       */
      
      /*
       * 数据库数据
       * 初始化权限ID及对应的权限值  key: qx值  value:qxID
       */
    
      QXMAP.put("1","8a1e78a5-405a-4919-8c89-68c6f6e564d5" );
      QXMAP.put("2", "7b5a7079-1eff-47bc-bff4-75d0aef78269");
      /*
      7b5a7079-1eff-47bc-bff4-75d0aef78269    2    无扫描枪
      8a1e78a5-405a-4919-8c89-68c6f6e564d5    1    有扫描枪
      */
      /*数据库数据
       * 初始化软件类型及对应的软件类型ID信息 key:rjlx  value:rjlxId
       */
      RJLXMAP.put("发票管理", "5dae44f5-dc71-4a98-b0b2-1666b4a178f9");
      RJLXMAP.put("办税助手网商贷", "6bbf5b8c-2a39-4b9d-9cfb-492611f4621a");
      RJLXMAP.put("机动车自动开票", "798a8220-7fb6-40b7-b355-61a42cf5613b");
      RJLXMAP.put("沪友远程认证系统", "7f0c5652-ee12-4d89-9169-d2652edd58c5");
      RJLXMAP.put("票易捷辅助", "81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2");
      RJLXMAP.put("文本接口", "bb6ef58c-3cff-4b20-a45e-c9af85e72456");
      RJLXMAP.put("车购税申报系统", "cadc1745-8a5e-4807-acb0-93d35b7abe72");
      /*  数据库数据
      5dae44f5-dc71-4a98-b0b2-1666b4a178f9    发票管理
      6bbf5b8c-2a39-4b9d-9cfb-492611f4621a    办税助手网商贷
      798a8220-7fb6-40b7-b355-61a42cf5613b    机动车自动开票
      7f0c5652-ee12-4d89-9169-d2652edd58c5    沪友远程认证系统
      81e200d1-ec7c-4e7b-a7bb-04ae0d6849c2    票易捷辅助
      bb6ef58c-3cff-4b20-a45e-c9af85e72456    文本接口
      cadc1745-8a5e-4807-acb0-93d35b7abe72    车购税申报系统
      */
    }
    /*

    */
      /**
       *   main主方法测试
       * @author zt
       * @Date 2016年2月19日
       * @param args
       */
     public static void main(String[] args) {
     FileInputStream fis;
    try {
        fis = new FileInputStream("F://BOOK1.xls");
        parseEXCEL(fis);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }
     /**
      * 解析Excel数据流
      * @author zt
      * @Date 2016年2月18日
      * @param inputStream
      * @return
      * @throws Exception
      */
    public static  List<Encryption> parseEXCEL(InputStream inputStream) throws Exception {
    int count =0;
          Map<String,String> map = new HashMap<String,String>();
             
          List<Encryption> encrys=new ArrayList<Encryption>();
          /*
           * 处理输入流,获取一个对应的表格对象
           */
          Workbook excel = Workbook.getWorkbook(inputStream);  
          /*
           * 遍历表格对象获取表格中sheet子表
           */
        for(int i=0;i<excel.getNumberOfSheets();i++){
        /*
         *获取第i个子表对象
         */
        Sheet sheet=excel.getSheet(i);    
        /*
         *获取当前子表格总行数
         */
        int rows=sheet.getRows();//每个表格总行数
        /*
         * 如果第一行为标题则将第一行作为标题行单独处理
         */
         Cell[] rowTitle=sheet.getRow(0);//获取标题行
         /*
          * 从第二行开始遍历
          */
        for(int f=1;f<rows;f++){    
            /*
             * 获取当前前行对象
             */
            Cell[] row=sheet.getRow(f);
            
            /*
             * 获取行总格数
             */
            int rowLen = row.length;    
           for(int e=0;e<rowLen;e++){    
               /*
                * 标题对应的数据  标题key  数据value 存入map中
                */                              
          map.put(rowTitle[e].getContents(), row[e].getContents());            
           }
          /*
           * 将map中的数据存入项目对应的实体对象中,获取一个实体对象,并将这个对象放入list集合中返回,方便数据库存储
           */
           encrys.add(setEncryInfo(map));             
//            System.out.println("第"+count+"行");
//            count++;
//             System.out.println(map);
        }
        }
    
        return encrys;
      }
    
    /**
     *   map数据存入实体类对象
     * @author zt
     * @Date 2016年2月18日
     * @param map
     * @return
     */
    public static Encryption setEncryInfo(Map map){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-ss-mm");
    Encryption encry = new Encryption();
    if(map.get("userid")!=null&&map.get("userid")!=""){
        encry.setUserid(map.get("userid").toString()) ;
    }else{
        encry.setUserid(LoginInfoUser.user.getUserid());
    }
      if(map.get("bcwjlj")!=null&&map.get("bcwjlj")!=""){
         encry.setBcwjlj(map.get("bcwjlj").toString());
      }
      if(map.get("bz")!=null&&map.get("bz")!=""){
         encry.setBz(map.get("bz").toString());
      }
       if(map.get("createtime")!=null&&map.get("createtime")!=""){
       encry.setCreatetime(map.get("createtime").toString());
       }else{
           encry.setCreatetime(sdf.format(new Date()));  
       }
       if(map.get("dh")!=null&&map.get("dh")!=""){
           encry.setDh(map.get("dh").toString());
       }

       if(map.get("dz")!=null&&map.get("dz")!=""){
           encry.setDz(map.get("dz").toString());
       }
       if(map.get("gsmc")!=null&&map.get("gsmc")!=""){
           encry.setGsmc(map.get("gsmc").toString());
       }
       if(map.get("kzzd3")!=null&&map.get("kzzd3")!=""){
           encry.setKzzd3(map.get("kzzd3").toString());
       }
       if(map.get("kzzd4")!=null&&map.get("kzzd4")!=""){
           encry.setKzzd4(map.get("kzzd4").toString());
       }
       if(map.get("kzzd5")!=null&&map.get("kzzd5")!=""){
           encry.setKzzd5(map.get("kzzd5").toString());
       }
       if(map.get("kzzd6")!=null&&map.get("kzzd6")!=""){
           encry.setKzzd6(map.get("kzzd6").toString());
       }
       if(map.get("qx")!=null&&map.get("qx")!=""){
           encry.setQx(map.get("qx").toString());
           encry.setQxid(QXMAP.get(map.get("qx").toString()));
       }
       /*
       if(map.get("qxid")!=null){
           encry.setQxid(map.get("qxid").toString());
           
       }else{
           if(map.get("qx")!=null){
               encry.setQxid(QXMAP.get(map.get("qx").toString()));
           }
       }
       */
       if(map.get("rjbb")!=null&&map.get("rjbb")!=""){
           encry.setRjbb(map.get("rjbb").toString());
           encry.setRjbbid(RJBBMAP.get(map.get("rjbb").toString()));
       }
       /*
       if(map.get("rjbbid")!=null){
           encry.setRjbbid(map.get("rjbbid").toString());
           
       }else{
           if(map.get("rjbb")!=null){
           encry.setRjbbid(RJBBMAP.get(map.get("rjbb").toString()));
           }
       }
       */
       if(map.get("rjlx")!=null&&map.get("rjlx")!=""){
           encry.setRjlx(map.get("rjlx").toString());
           encry.setRjlxid(RJLXMAP.get(map.get("rjlx").toString()));
       }
       /*
       if(map.get("rjlxid")!=null){
           encry.setRjlxid(map.get("rjlxid").toString());
       }else{
           if(map.get("rjlx")!=null){
               encry.setRjlxid(RJLXMAP.get(map.get("rjlx").toString()));
           }
       }
       */
       if(map.get("sbh1")!=null&&map.get("sbh1")!=""){
           encry.setSbh1(map.get("sbh1").toString());
       }
       if(map.get("sbh2")!=null&&map.get("sbh2")!=""){
           encry.setSbh2(map.get("sbh2").toString());
       }
       if(map.get("sh")!=null&&map.get("sh")!=""){
           encry.setSh(map.get("sh").toString());
       }
       if(map.get("skph")!=null&&map.get("skph")!=""){
           encry.setSkph(map.get("skph").toString());
       }       
       
       if(map.get("sqzt")!=null&&map.get("sqzt")!=""){
           encry.setSqzt(map.get("sqzt").toString());
    
       }else{
            encry.setSqzt("未授权");
       }   
      return  encry;
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值