導(dǎo)出導(dǎo)入excel

<input type="button" value="導(dǎo)出Excel" id="exportexcel">
<input type="button" value="導(dǎo)入Excel" id="importexcel">
    
    $("#exportexcel").click(function(){
    location="person/exportExcel.do";
    })
    
    $("#importexcel").click(function(){
     if($("#myfile").val()==""){
     alert("請(qǐng)先選擇要導(dǎo)入的Excel文件!!!");
     }else{
     excel.submit();
     }
    })
    })
    private List<Dept> listDept = new ArrayList<Dept>();
    private List<Person> listPerson = new ArrayList<Person>();
    @Autowired
    private DeptServiceImpl deptdb;
    @Autowired
    private PersonServiceImpl perdb;
    private File myfile;//名必須為myfile ,同時(shí)有set get方法
    private String myfileFileName;//名必須 為:myfile+FileName有set get方法
    // 有set get方法,開(kāi)發(fā)struts多選框的回顯
    @RequestMapping("exportExcel")
    public String exportExcel( HttpServletResponse response) throws Exception{
        // 初始化HttpServletResponse對(duì)象
        // 定義表的標(biāo)題
        String title = "開(kāi)發(fā)部員工信息";

        //定義表的列名
        String[] rowsName = new String[] { "用戶(hù)編號(hào)", "姓名", "性別", "年齡", "入職時(shí)間"
                , "照片", "技能","學(xué)歷","簡(jiǎn)歷","部門(mén)"};

        //定義表的內(nèi)容
        List<Object[]> dataList = new ArrayList<Object[]>();
        Object[] objs = null;
        List<Person> listPerson =perdb.list();
        for (int i = 0; i < listPerson.size(); i++) {
            Person per = listPerson.get(i);
            objs = new Object[rowsName.length];
            objs[0] = per.getId();
            objs[1] = per.getName();
            objs[2] = per.getSex();
            objs[3] = per.getAge();
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String date = df.format(per.getJobtime());
            objs[4] = date;
            objs[5] = per.getFilepath();
            objs[6] = per.getSkill();
            objs[7] = per.getDegree();
            objs[8] = per.getResume();
            objs[9] = per.getDept().getDname();
            dataList.add(objs);
        }

        // 創(chuàng)建ExportExcel對(duì)象
        ExportExcel ex = new ExportExcel(title, rowsName, dataList);

        // 輸出Excel文件
        try {
            OutputStream output = response.getOutputStream();
            response.reset();
            response.setHeader("Content-disposition",
                    "attachment; filename=PersonList.xls");//保存人excel文件名
            response.setContentType("application/msexcel");
            ex.export(output);
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "success";
    }
    @RequestMapping("importExcel")
    public String importExcel(MultipartFile file,HttpServletRequest request) throws Exception{
         String realPath = request.getSession().getServletContext().getRealPath("upload");
         String fileName = file.getOriginalFilename();//取文件名
         //解決同名問(wèn)題
         //fileName = UUID.randomUUID().toString().replace("-", "")+fileName.substring(fileName.lastIndexOf("."));
         File f1=new File(realPath,fileName);
         if(!f1.exists()){
             f1.mkdirs();//如果不存在則創(chuàng)建其目錄
         }
        // 上傳文件到服務(wù)器中
        file.transferTo(f1);

        Person user = new Person();// 新建一個(gè)user對(duì)象
        Dept dept = new Dept();// 新建一個(gè)dept對(duì)象

        // 獲取服務(wù)器中文件的路徑
        String path = request.getSession().getServletContext().getRealPath("")
                + "/upload/" + fileName;

        try {
            InputStream is = new FileInputStream(path);
            HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);

            // 循環(huán)工作表Sheet
            for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
                HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
                if (hssfSheet == null) {
                    continue;
                }

                // 循環(huán)行Row
                for (int rowNum = 3; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
                    HSSFRow hssfRow = hssfSheet.getRow(rowNum);
                    if (hssfRow == null) {
                        continue;
                    }

                    // 循環(huán)列Cell
                    // 姓名   性別  年齡  入職時(shí)間    照片  技能  學(xué)歷  簡(jiǎn)歷  部門(mén)  
                    user.setName(getValue(hssfRow.getCell(1)));
                    user.setSex(getValue(hssfRow.getCell(2)));
                    user.setAge(Integer.parseInt(getValue(hssfRow.getCell(3))));
                    //處量時(shí)間
                    String da=getValue(hssfRow.getCell(4));
                    SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    user.setJobtime(sd.parse(da));//把字符轉(zhuǎn)為日期
                    user.setFilepath(getValue(hssfRow.getCell(5)));
                    user.setSkill(getValue(hssfRow.getCell(6)));
                    user.setDegree(getValue(hssfRow.getCell(7)));
                    user.setResume(getValue(hssfRow.getCell(8)));
                    //這里很重要,通過(guò)部門(mén)列表然后與excel中的部門(mén)字段進(jìn)行對(duì)比,匹配后獲取對(duì)應(yīng)的did
                    String dname = getValue(hssfRow.getCell(9));//獲取excel中的部門(mén)字段
                    listDept = deptdb.listDept();//得到數(shù)據(jù)庫(kù)中的部門(mén)列表
                    for (Dept dd : listDept) {//增強(qiáng)for循環(huán)
                        if (dd.getDname().equals(dname)) {//如果兩者匹配
                            dept.setDid(dd.getDid());//則得到對(duì)應(yīng)的did粟焊,并設(shè)置dept對(duì)象的did
                            user.setDept(dept);//再把dept對(duì)象設(shè)置到user對(duì)象中
                        }
                    }
                   perdb.addPerson(user);//寫(xiě)入到數(shù)據(jù)中
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

        return "redirect:list.do";//返回列表展示
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末谎亩,一起剝皮案震驚了整個(gè)濱河市臼氨,隨后出現(xiàn)的幾起案子透葛,更是在濱河造成了極大的恐慌贷揽,老刑警劉巖拆撼,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件施无,死亡現(xiàn)場(chǎng)離奇詭異辉词,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)猾骡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)瑞躺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人兴想,你說(shuō)我怎么就攤上這事幢哨。” “怎么了嫂便?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵捞镰,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我毙替,道長(zhǎng)岸售,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任厂画,我火速辦了婚禮凸丸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘袱院。我一直安慰自己屎慢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布坑填。 她就那樣靜靜地躺著抛人,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脐瑰。 梳的紋絲不亂的頭發(fā)上妖枚,一...
    開(kāi)封第一講書(shū)人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音苍在,去河邊找鬼绝页。 笑死,一個(gè)胖子當(dāng)著我的面吹牛寂恬,可吹牛的內(nèi)容都是我干的续誉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼初肉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼酷鸦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤臼隔,失蹤者是張志新(化名)和其女友劉穎嘹裂,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體摔握,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寄狼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了氨淌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泊愧。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖盛正,靈堂內(nèi)的尸體忽然破棺而出删咱,到底是詐尸還是另有隱情,我是刑警寧澤蛮艰,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布腋腮,位于F島的核電站,受9級(jí)特大地震影響壤蚜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜徊哑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一袜刷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莺丑,春花似錦著蟹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至昏名,卻和暖如春涮雷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轻局。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工洪鸭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仑扑。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓览爵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親镇饮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜓竹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容