java用POI导入导出Excel数据导数据库

Excel导入导出

http://www.cnblogs.com/Damon-Luo/p/5919656.html

 

导入Excel数据

  1. 页面

<form name="fileupload" action="importExcel" method="POST" enctype="multipart/form-data">

<div class="form-group">

<label for="file">上传文件</label>

 <input type="file"  id="file" name="file">

</div>

<button  οnclick="checkSuffix()" class="btn btn-default">提交</button>

 

//用于验证文件扩展名的正则表达式

function checkSuffix() {

var name = document.getElementById("file").value;

var strRegex = "(.xls|.xlsx|.xlsb|.xlsm|.xlst)$";

var re = new RegExp(strRegex);

if (re.test(name.toLowerCase())) {

alert("上传成功");

document.fileupload.submit();

} else {

alert("文件名不合法");

}

}

  1. </form>配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

 

</bean>

  1. 后台接收

@RequestMapping(value="/importExcel")

    public ModelAndView importExcel(HttpServletRequest request, HttpServletResponse response)

    {

     MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;

// 得到上传的文件

     MultipartFile deviceExcel = multipartRequest.getFile("file");

     ModelAndView mv=new ModelAndView();

     mv.setViewName("success");

     try {

     Workbook wookbook = new XSSFWorkbook(deviceExcel.getInputStream());//得到工作簿

     Sheet sheet = wookbook.getSheetAt(0); // 从工作区中取得页(Sheet)  

     //获得表头

         Row rowHead = sheet.getRow(0);

       //判断表头是否正确

         if(rowHead.getPhysicalNumberOfCells() != 2)

         {

           System.out.println("表头的数量不对!");

         }

       //获得数据的总行数

         int totalRowNum = sheet.getLastRowNum();

         //要获得属性

         String name = "";

         Double latitude = null;

         //获得所有数据

         for(int i = 1 ; i <= totalRowNum ; i++)

         {

           //获得第i行对象

           Row row = sheet.getRow(i);

           //获得获得第i行第0列的 String类型对象

           Cell cell = row.getCell((short)0);

          // name = cell.getStringCellValue().toString();

            name = (String) getRightTypeCell(cell);

           //获得一个数字类型的数据

           cell = row.getCell((short)1);

           //latitude = (int) cell.getNumericCellValue();

           latitude = (Double) getRightTypeCell(cell);

           System.out.println("名字:"+name+",年龄:"+latitude);

         }

} catch (Exception e) {

e.printStackTrace();

}   

     return mv;

    }

    /**

     *  

     * @param cell 一个单元格的对象

     * @return 返回该单元格相应的类型的值

     */

    public static Object getRightTypeCell(Cell cell){

      Object object = null;

      switch(cell.getCellType())

      {

        case Cell.CELL_TYPE_STRING :

        {

          object=cell.getStringCellValue();

          break;

        }

        case Cell.CELL_TYPE_NUMERIC :

        {

          cell.setCellType(Cell.CELL_TYPE_NUMERIC);

          object=cell.getNumericCellValue();

          break;

        }

        case Cell.CELL_TYPE_FORMULA :

        {

          cell.setCellType(Cell.CELL_TYPE_NUMERIC);

          object=cell.getNumericCellValue();

          break;

        }

        case Cell.CELL_TYPE_BLANK :

        {

          cell.setCellType(Cell.CELL_TYPE_BLANK);

          object=cell.getStringCellValue();

          break;

        }

      }

      return object;

}

导入Excel数据

  1. js代码

function exportEngExcel(){

$.ajaxFileUpload({

url : Utils.getRootPath()+'/engMonthlyDetail/exportEngExcel?engCode='+engCode,

secureuri : false,

type:"post",

dataType:'json',

success : function(data) {

},

error:function(d){

}

});

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值