您的位置:首页 > 其它

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

2016-02-23 10:33 387 查看
控制层方法:

@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;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息