SpringBoot+MyBatis 整合导入数据 jeefast导入数据

本文介绍了如何使用SpringBoot和MyBatis进行数据导入。首先,将Excel数据转换为文本,然后添加必要的pom依赖。在Controller层编写处理文件的代码,特别地,对于Integer和Double类型,通过trim()去除字符串前后空格。接着,确保实体类的属性与数据类型匹配。在前端,使用ajax的同步方法通过Vue处理Excel上传,最后展示HTML的导入流程。
摘要由CSDN通过智能技术生成

上面的是效果图

选择导入首先我们需要吧Excel的数据全部转成文本(这个自己百度)

之后先导入pom依赖包

		<!--文件上传组件-->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.3.1</version>
		</dependency>
                <dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<!--读取excel文件-->
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.17</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>3.17</version>
		</dependency>

需要在Controller层写入处理文件代码

这里我在获取Integer型和Double型的数据的时候,我对他进行先按照String获取之后就去除trim()前后空格的方法去净化字符串

之后用包装类的方法去处理字符串转回它们原来的类型

	//处理文件上传


    @RequestMapping(value = "/excelImport")

    public String uploadImg(@RequestParam("file") MultipartFile file, HttpServletRequest request) {

        String contentType = file.getContentType();

        String fileName = file.getOriginalFilename();

        if (file.isEmpty()) {

            return "文件为空!";

        }

        try {

            //根据路径获取这个操作excel的实例

            HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());            //根据页面index 获取sheet页

            HSSFSheet sheet = wb.getSheetAt(0);

            //实体类集合

            List<Record> importDatas = new ArrayList<Record>();

            HSSFRow row = null;

            //循环sesheet页中数据从第二行开始,第一行是标题
            System.out.println(sheet.getPhysicalNumberOfRows());

            for (int i = 2; i < sheet.getPhysicalNumberOfRows()-2; i++) {

                //获取每一行数据
                row = sheet.getRow(i);
                System.out.println(row.getCell(3).getStringCellValue());
                System.out.println(row.getCell(0).getStringCellValue());
                Record data = new Record();
                String rid = row.getCell(0).getStringCellValue().trim();
                data.setRid(Integer.parseInt(rid));
                data.setStudentid(row.getCell(1).getStringCellValue());
                data.setCourseid(row.getCell(2).getStringCellValue());
                String fraction = row.getCell(3).getStringCellValue().trim();
                data.setFraction(Double.parseDouble(fraction));
                data.setDates(row.getCell(4).getStringCellValue());
                data.setNewdates(row.getCell(5).getStringCellValue());

                //importDatas.add(data);
                recordService.insert(data);
            }



        } catch (Exception e) {

            e.printStackTrace();

        }

        return "1";

    }

之后我们要处理实体类的部分

实体类一定要写对,类型一定要匹配

之后是js和vue的部分

这里用的是ajax的同步方法传的Excel

function dr(){
	$("#file").click();
}
function doimportExcel(){
	    var form = new FormData();
	    form.append("file", document.getElementById("file").files[0]);
	     $.ajax({
	         url: baseURL + '/platform/record/excelImport',        //后台url
	         data: form,
	         cache: false,
	         async: false,
	         type: "POST",                   //类型,POST或者GET
	         dataType: 'json',              //数据返回类型,可以是xml、json等
	         processData: false,
	         contentType: false,
	       success: function (data) {      //成功,回调函数
	        	if(data=1){
	        		alert("导入成功");
	        	}else{
	        		alert("导入失败");
	        	}
	             	
	         }, 
	         error: function (data) {      	//失败,回调函数
	        	 if(data=2){
	        		alert("导入的文件没有值");
	        	}
	         } 
	     });
	}

最后是html

这里是先走的导入进入方法

之后是在调的方法

<a class="btn btn-primary btn-sm" v-on:click="dr()"><i class="fa fa-plus"></i>&nbsp;导入</a>
<input type="file" name="file" id="file" style="display:none" v-on:change="doimportExcel()"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值