依赖包

cn.afterturn

easypoi-base

3.0.1

cn.afterturn

easypoi-web

3.0.1

cn.afterturn

easypoi-annotation

3.0.1

js代码

function confirmUpload() {

var doc = document.getElementById('file');

for(var i=0;i

var name = doc.files[i].name;

var hz =name.substring( name.lastIndexOf(".")+1);

if(hz!="xlsx"&&hz!="xls"){

alert("文件格式错误");

return false;

}

}

var $file1 = $("#file").val();//用户文件内容(文件)

// 判断文件是否为空

if ($file1 == "") {

alert("请选择上传的目标文件! ")

return false;

}

var formData = new FormData();

//数据赋值给format

formData.append("file", $('#file')[0].files[0]);

//执行上传

$.ajax({

type: "POST",

url: baseURL + 'upload/importsheet',

processData: false,

contentType: false,

data: formData, //相当于 //data: "{'str1':'foovalue', 'str2':'barvalue'}",

success: function (jsonResult) {

if (jsonResult.msg="ok"){

alert("上传成功",function(result){

if(result=="ok"){

window.location.reload();

}

})

}else {

alert("上传失败!")

}

},

});

};

controller代码

package com.wgjn.modules.cms.controller;

import cn.afterturn.easypoi.excel.ExcelImportUtil;

import cn.afterturn.easypoi.excel.entity.ImportParams;

import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;

import com.wgjn.common.utils.R;

import com.wgjn.common.utils.UploadUtils;

import com.wgjn.modules.cms.entity.*;

import com.wgjn.modules.cms.service.SysDataUploadService;

import com.wgjn.modules.cms.service.SysFilesUploadService;

import org.apache.poi.ss.usermodel.Workbook;

import org.json.JSONException;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

import org.springframework.web.multipart.MultipartFile;

import java.util.ArrayList;

import java.util.List;

@RestController

@RequestMapping("/upload")

public class SysDataUploadController {

@Autowired

private SysDataUploadService sysDataUploadService;

@PostMapping("/importsheet")

public R importSheets(@RequestParam("file") MultipartFile file) {

List systemBaseInfoEntityList = new ArrayList<>();

List devopsSystemBaseInfoEntityList = new ArrayList<>();

List devopsSystemMappingInfoEntityList = new ArrayList<>();

List deviceEntityList = new ArrayList<>();

List componentBaseInfoEntityList = new ArrayList<>();

List systemDeviceComponentRelEntityList = new ArrayList<>();

try {

// 根据file得到Workbook,主要是要根据这个对象获取,传过来的excel有几个sheet页

Workbook workBook = UploadUtils.getWorkBook(file);

ImportParams params = new ImportParams();

// 循环工作表Sheet

for (int numSheet = 0; numSheet < workBook.getNumberOfSheets(); numSheet++) {

String name = workBook.getSheetName(numSheet);

// 表头在第几行

params.setTitleRows(0);

// 距离表头中间有几行不要的数据

params.setStartRows(0);

// 第几个sheet页

params.setStartSheetIndex(numSheet);

// 验证数据

params.setNeedVerfiy(true);

if ("OA系统字典项".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

SystemBaseInfoEntity.class, params);

// 合格的数据

systemBaseInfoEntityList = result.getList();

// sysFilesUploadService.fileUpload(systemBaseInfoEntityList);

// 业务逻辑

} else if ("运维系统字典信息".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

DevopsSystemBaseInfoEntity.class, params);

// 校验合格的数据

devopsSystemBaseInfoEntityList = result.getList();

// 业务逻辑

// sysFilesUploadService.fileUpload(devopsSystemBaseInfoEntityList);

} else if ("设备信息".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

SysDeviceEntity.class, params);

// 校验合格的数据

deviceEntityList = result.getList();

// 业务逻辑

} else if ("组件字典信息".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

ComponentBaseInfoEntity.class, params);

// 校验合格的数据

componentBaseInfoEntityList = result.getList();

// 业务逻辑

} else if ("设备组件".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

SystemDeviceComponentRelEntity.class, params);

// 校验合格的数据

systemDeviceComponentRelEntityList = result.getList();

// 业务逻辑

} else if ("系统字典关联".equals(name)) {

ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(),

DevopsSystemMappingInfoEntity.class, params);

// 校验合格的数据

devopsSystemMappingInfoEntityList = result.getList();

// 业务逻辑

}

}

} catch (Exception e) {

return R.error("导入失败!请检查导入文档的格式是否正确");

}

String status = sysDataUploadService.fileUpload(systemBaseInfoEntityList, devopsSystemBaseInfoEntityList, deviceEntityList, componentBaseInfoEntityList, systemDeviceComponentRelEntityList, devopsSystemMappingInfoEntityList);

if ("ok".equals(status)) {

return R.ok();

} else {

return R.error();

}

}

}

本文地址:https://blog.csdn.net/weixin_45805531/article/details/107684192

希望与广大网友互动??

点此进行留言吧!

java excel 多sheet页_java导入excel操作多sheet页上传相关推荐

  1. java excel空格怎么表示_java导入excel中的空格问题

    最近项目需要,首先第一步就是要导入excel的数据 , 待一切代码写好后却发现总有部分数据被忽略.仔细查了原因后才发现java中的trim()没有起作用,于是我看了下trim()的源码. (图一) 首 ...

  2. php导入excel中文手册,使用PHP导入Excel和导出数据为Excel文件

    有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出 ...

  3. 通过Java程序将“/你的名字拼音缩写/input1/shixun1.txt”文件上传到HDFS的“/你的名字拼音缩写/java/input1/”目录下;通过Java程序将HDFS上的“/你的名字拼音

    题目: 通过Java程序将"/你的名字拼音缩写/input1/shixun1.txt"文件上传到HDFS的"/你的名字拼音缩写/java/input1/"目录下 ...

  4. java重命名sheet失败_java jxl excel 数据导出 重新命名无效的工作表名称 | 学步园...

    今天在java中使用jxl导出数据到excel工作表的时候,无论是在线直接打开还是保存到本地再打开,都会提示下面的错误信息: "Excel在'excel.xls'中发现不可读取的内容.是否恢 ...

  5. java筛选表格,java怎么获取excel中的数据_java筛选excel数据

    你好! 请教你个问题 java web程序如何将读取的excel表格里的数据插入到数据库,并显示在JSP页面上? 主要用poi.jar 包.包含两jar就可以了:poi-3.16.jar.poi-oo ...

  6. Java的poi技术读取和导入Excel

    2019独角兽企业重金招聘Python工程师标准>>> 项目结构: 用到的Excel文件: XlsMain .java 类 //该类有main方法,主要负责运行程序,同时该类中也包含 ...

  7. Java 从数据库中查找信息导入Excel表格中

    前端js function Excel (){//ajax请求 $.ajax({url : "outPutAboutShopInfo",type : "post" ...

  8. java中if条件格式_Java 设置Excel条件格式示例代码(高亮条件值、应用

    概述 在Excel中,应用条件格式功能可以在很大程度上改进表格的设计和可读性,用户可以指定单个或者多个单元格区域应用一种或者多种条件格式.本篇文章,将通过Java程序示例介绍条件格式的设置方法,设置条 ...

  9. java 下拉列表 可折叠 qq分组_Java在Excel中创建多级分组、折叠或展开分组的实现...

    本文介绍通过Java程序在Excel创建分组的方法,可对行或列分组进行分组并设置明细数据是否展开或折叠.设置数据分组并展开或折叠时,可通过以下方法: 方法一: 通过方法sheet.groupByRow ...

最新文章

  1. 社交网络图挖掘3--重叠社区的发现及Simrank
  2. python老鼠打洞问题_脑筋急转弯:老鼠为什么要打洞?这答案让人哭笑不得
  3. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...
  4. QueryList的使用
  5. Vuejs报错error: Unexpected console statement (no-console) at src\... 解决办法
  6. PP部分主数据导出SQVI设置
  7. 访问Webservice错误
  8. 13.2.6 会话跟踪技术
  9. C语言单片机中延时程序的实现
  10. 如何对抗硬件断点--- 调试寄存器
  11. PID控制器开发笔记之四:梯形积分PID控制器的实现
  12. 追踪 Kubernetes 中的网络流量
  13. mysql left join 中文_MySQL之LEFT JOIN问题汇总
  14. 架构师之路-创业互联网公司如何搭建自己的技术架构
  15. 学术杂谈|一篇所有研究生都该读的好文:阳光温热 科研静好!
  16. 如何使用IDEA自带的数据库连接工具连接达梦数据库,IDEA连接DM(达梦)数据库
  17. 用三张图理解深度学习的工作原理
  18. 两个运放制作加法器_初级模拟电路:8-2 加法与减法电路
  19. python植物大战僵尸辅助_Python自学入门,如何制作植物大战僵尸
  20. 推荐收藏 | 掌握这些步骤,机器学习模型问题药到病除

热门文章

  1. 短线的高手一般看什么,盯盘需要关注哪些内容
  2. 大数据分析师工资待遇怎么样?
  3. 机器学习中常见的防止过拟合处理方法
  4. 如何在idea上运行eclips项目。
  5. 软件加密保护:Mirage License Protector v5 注册版
  6. 模仿网易新闻部分界面
  7. android 集成ijkplayer,android studio集成ijkplayer的示例代码
  8. 基于MFC(VC++)的汽车修理管理系统毕业设计
  9. Paint 滤镜效果
  10. Ubantu平台安装Scrapy