如何在java中导入Excel文件

  介绍

这篇文章给大家介绍如何在java中导入Excel文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>一、思路分析

1,我们要做导入,实际上也就是先文件上传,然后读取文件的数据。

2,我们要有一个导入的模板,因为我们导入的Excel列要和我们的数据字段匹配上,所以我们要给它来一个规定,也就是模板。

3,按照我们公司的套路,是做了一个导入信息的临时表,用来存导入文件中的信息。每当导入的时候,我们先把表信息清空,再拿到数据放进来,然后我们对导入的数据进行检查,最后才全部导入。

这样做的目的是防止导入的数据和列没有对上却也直接导到了库里面,要真这样了就很尴尬。我们做了三个按钮,一个导入,一个确认导入,一个导入模板下载。

4,捋一下过程:

点击批量导入按钮,跳转到导入页面。

点击模板下载。(事先写好一个模板。xls文件,此按钮放置下载链接)

在模板中录入数据。

点击导入按钮,跳出文件上传模态框。

选择文件,上传文件。

上传成功后调用后台方法,读取文件内容。

把内容生成表格,显示到导入页面。

观察数据有没有出错。

点击确认导入,调用后台方法,执行导入操作。

回调函数,导入成功/导入失败的提示。

<强>二、代码分析

1,前端js代码:

var  actionPath =, contextPath  +,“/alumni-import";      $(()函数,{//加才能载数据   loadData才能();//上才能传文件   还是({才能   ,,,下角符号:,(& # 39;xls # 39;),   ,,,subfixTip:,“请选择Excel的xls文件!“,   ,,,successCall:,功能(数据、,状态,a), {   ,,,,,美元(& # 39;[name=attachementPath] & # 39;) .val (data.fileName);   ,,,,,$ . post(时间+ actionPath “! importExcel",, {,“f_id": data.f_id },,功能(数据),{   ,,,,,,,if  (data.success), {   ,,,,,,,,,alertify.alert (data.message);   ,,,,,,,,,(“# myModal-import") .modal美元(“hide");   ,,,,,,,,,loadData ();   ,,,,,,,},{else    ,,,,,,,,,alertify.alert (data.message);   ,,,,,,,}      ,,,,,},,“json");   ,,,}   ,,});//导才能入   美元才能(“# btn-import") .click(函数(),{   ,,,var  html =,模板(“importTpl");   ,,,美元(“# import-body") . html (html);   ,,,(“# myModal-import")美元.modal ();   ,,});//才能确认导入   美元才能(“# btn-sure") .click(函数(),{   ,,,var  type =, (“# indentity-type")美元.val ();   ,,,alertify.confirm(“确定要全部导入吗?“,,函数(e), {   ,,,,,if  e(!),{,返回;},{else    ,,,,,,,$ . post (“/alumni-import ! saveReal ?类型=?+,类型,功能(数据),{   ,,,,,,,,,alertify.alert(“导入成功!“,,()函数,{   ,,,,,,,,,,,location.href =,“/校友! hrefPage";   ,,,,,,,,,});   ,,,,,,,},,“json");   ,,,,,}   ,,,});   ,,});   });50,   function  loadData (), {   var 才能;options =, {   ,,,url:, actionPath  +,“! page"   ,,};   loadPaginationData才能(选项);   }

2,后台功能代码

前端有四个请求,一个初始化页面数据加载,当然,一开始是没有数据的;一个导入文件上传;一个确认导入;一个导入完成后页面跳转回要信息页面(信息页面有一个批量导入跳转到这的导入页面)。

第一个后最后一个就不讲了,讲一下第二个和第三个。

①第二个

//上传文件后调用   public 才能;void  importExcel (), {   ,,,try  {   ,,,,,//清空临时表的数据   ,,,,,baseAlumniImportSrv.deleteAll ();   ,,,,,//读取文件   ,,,,,File  File =, gridFsDao.readFile (f_id);   ,,,,,//把文件信息给临时表   ,,,,,int  count =, excelXYSrv.importExcel(文件);   ,,,,,//清空上传的文件   ,,,,,file.delete ();   ,,,,,sendSuccessMsg(统计,,“上传成功“,+,count  +,“条数据“);   ,,,},catch  (IOException  e), {   ,,,,,LOGGER.error (e);   ,,,,,sendFailMsg (null,,“上传失败“);   ,,,}   以前,,}
 @Override ,//使用MongoDB  GridFS,具体详解请各自初学者自行百度,注释写不下去了,我也不会,心态爆炸~ ~ ~
  public 才能;File  readFile (String  f_id), {
  ,,,//拿到文件
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

如何在java中导入Excel文件