上传excel文件到到服务器(导入信息)
技术准备:
1.文件上传
fileuploadtest.jsp
<html>
<head><base href="<%=basePath%>"><title>演示文件上传</title>
</head>
<body>
<%--文件上传的表单三个条件:1.表单组件标签只能用:<input type="file">下面这些是平常常用的组件:<input type="text|password|radio|checkbox|hidden|button|submit|reset|file"><select>,<textarea>等2.请求方式只能用postpost:参数写在请求体里面,既能提交文本数据,也可以提交二进制数据;长度理论上没有限制,不能使用缓存get:参数写在url上,url在请求头上,只能向后台提交文本数据;对参数长度有限制,可以使用缓存3.表单的编码格式只能用:multipart/from-data根据HTTP协议的规定,浏览器每次向后台提供参数,都会对参数进行统一编码了、;默认的编码是urlencoded,这种编码格式只能对文本数据进行编码浏览器每次向后台提交参数,都先会把参数转换成字符串,然后对这些数据同一进行编码;--%>
<form action="workbench/activity/fileUpload.do" method="post" enctype="multipart/form-data"><input type="file" name="myFile"><br><input type="text" name="userName"><br><%--上面这两个并不冲突,也就是及上传一个文件也传一个字符串到后台--%><input type="submit" value="提交">
</form></body>
</html>
controller层-》fileUpload()
springmvc的配置文件:
<!-- 配置文件上传解析器 id:必须是multipartResolver--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="maxUploadSize" value="#{1024*1024*5}"/><property name="defaultEncoding" value="utf-8"/></bean>
controller:
/*注意:* 这里需要先在springMVC中的配置文件中先配置文件上传解析器* 用于从前端放在响应体中的文件解析出来才能放到controller层接收*///测试文件上传controller@RequestMapping("/workbench/activity/fileUpload.do")@ResponseBodypublic Object fileUpload(String userName, MultipartFile myFile) throws IOException {//把文本数据打印在控制台System.out.println("userName="+userName);//把文件在服务器指定的目录中生成同一个文件String originalFilename = myFile.getOriginalFilename();File file = new File("D:\\实践项目\\CRM后台系统\\serverDir\\"+originalFilename);myFile.transferTo(file);//返回信息ReturnObject returnObject=new ReturnObject();returnObject.setMessage("上传成功");returnObject.setCode(Constant.RETURN_OBJECT_CODE_SUCCESS);return returnObject;}
2.使用Java解析excel文件:使用apache-poi
//使用apache-poi解析excel文件
public class ParseExcelTest {public static void main(String[] args) throws IOException {//根据excel文件生成HSSFWorkbook对象,封装了excel文件哎都所有信息InputStream is = new FileInputStream("D:\\实践项目\\CRM后台系统\\serverDir\\studentList.xls");HSSFWorkbook wb = new HSSFWorkbook(is);//根据wb获取HSSFSheet对象,封装了一页的所有信息HSSFSheet sheet = wb.getSheetAt(0);//页下标,下标从零开始//根据sheet获取HSSFSheet获取行HSSFRow row=null;HSSFCell cell=null;for (int i=0;i<=sheet.getLastRowNum();i++){//sheet.getLastRowNum()最后一行的下标row = sheet.getRow(i);//行下标,从零开始for (int j=0;j<row.getLastCellNum();j++){//row.getLastCellNum()最后一列下标+1//根据row对象获取HSSFCell对象,,封装一列的信息cell = row.getCell(j);//列下标,从零开始//获取列中的数据System.out.print(HSSFUtils.getCellValueForStr(cell)+" ");}//每一行中所有列都打完,打印一个换行System.out.println();}}}
工具类:
/*** 关于excel文件操作的工具类*/
public class HSSFUtils {/*** 从指定的HSSFCell对象中获取列的值* @return*/public static String getCellValueForStr(HSSFCell cell){String ret="";if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING){ret=cell.getStringCellValue();}else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){ret=cell.getNumericCellValue()+"";}else if(cell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){ret=cell.getBooleanCellValue()+"";}else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA){ret=cell.getCellFormula();}else{ret="";}return ret;}
}
注:使用Ajax向后台提交文件注意要设置是否要转成字符串和是否要进行encoded编码
并注意1.val()获取的是文件的名称,比对是否是所需文件格式要进行字符串的裁剪
str.substr(str.lastIndexOf(".")+1)//截取文件的后缀名
2.想要获取文件,需要从document中获得
其中有两种方式:1)document.getElementById()
2)$("按钮")[0].files[0]
//给批量导入的导入按钮添加单击事件$("#importActivityBtn").click(function (){//收集参数var activityFileName=$("#activityFile").val();//获取文件名称var suffix=activityFileName.substr(activityFileName.lastIndexOf(".")+1).toLocaleLowerCase();//截取字符串拿到后缀if (suffix!="xls"){alert("只支持xls文件!");return ;}var activityFile=$("#activityFile")[0].files[0];//得到文件本身//document.getElementById()//验证文件大小if (activityFile.size>5*1024*1024){alert("文件大小不能超过5MB!");return ;}//FormData这个是ajax提供的一个接口,相当于Java里面的类//这个类可以模拟键值对向后台提供参数。优点就是字符串文本和二进制都可以提交var formData=new FormData();formData.append("activityFile",activityFile);formData.append("userName","testName");//发送请求$.ajax({url:'workbench/activity/importActivity.do',data:formData,type:'post',contentType:false,//设置Ajax向后台提交参数之前,是否把所有的参数统一按urlencoded编码;processData:false,//默认情况下,会将参数转译成字符串格式。dataType:'json',success:function (data){if (data.code=="1"){alert("成功导入"+data.retData+"条数据!");$("#importActivityModal").modal("hide");queryActivityByConditionForPage(1,$("#demo_pag1").bs_pagination('getOption', 'rowsPerPage'));}else {alert(data.message);$("#importActivityModal").modal("show");}}})})
上传excel文件到到服务器(导入信息)相关推荐
- 实现web前端上传excel文件到flask服务器
这里有两种方法:1. html方式:2. javascript方式(jQuery+ajax) 第1种方法:html方式 这种方法直接通过设计form表单相关属性实现将excel表格上传到服务器,并在服 ...
- Jquery+SpringMVC实现上传Excel文件,并批量导入
1.前端代码 function alertUploadFile(){ //创建表单var formData = new FormData();var file = $("#upload&qu ...
- 上传excel文件到服务器
最近遇到了需要上传excel文件,并将excel表中的数据都出来,存到数据库中的需求,今天将步骤整理一下,如下: 一.新建一个html(或jsp页面),如:uploadExcel.html,代码如下: ...
- php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...
- php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...
- 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法
前言 本文主要给大家介绍了关于asp.net上传Excel文件并读取数据的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 实现如下: 前台代码:使用服务端控件实现上传 服务端 ...
- Django框架(上传Excel文件并读取)
博主今天整理下Django框架中上传Excel文件并读取 博主是要在管理平台中新增用例的维护功能,想着通过上传Excel文件来展示用例,下面是项目的路径图: 首先先建数据库模型 model.py 可以 ...
- vue之 上传 excel文件
目录 vue之 上传 excel文件 父组件 UploadExcel.vue 效果 vue之 上传 excel文件 父组件 <upload-excel-component :on-success ...
- Web项目,网页上传excel文件并解析实战示例
最近写了一个基于poi解析excel文件的工具类,所以想在web项目中测试一下,就做了这个简单的项目.本项目主要使用了 SpringMVC+RESTful+Maven的风格.适合有一定基础的人员. 源 ...
最新文章
- June:Datawhale开源学习小程序升级啦!
- 课题背景 一二三代测序技术
- 仅仅用几行python代码偷偷复制U盘文件
- 吴恩达机器学习(第一章)——初识机器学习
- python选择某一行_Python常用语法有哪些 如何快速入门Python开发
- 一键抠除路人甲,昇腾CANN带你识破神秘的“AI消除术”
- Unity5 VS UE4
- android端与windows端通信中文乱码问题
- SQLServer性能优化之活用临时表
- 【修订版】C#/ASP.Net 面试题及答案(1)
- layer——极简的jquery弹出层插件
- ssm提交post_SSM中get和post乱码笔记
- json 处理日期格式
- python服务器运维步骤_python运维服务器
- 编写注册表reg文件及批处理操作注册表
- 使用QT遍历Json文档及搜索子对象
- 快速找回Edge浏览器书签的方法
- Java将UTC格式时间转换为北京时间
- 维修技术论坛万能预装系统 v5.0
- iOS — 百度地图 使用