被要求解析上传的excel实现批量修改,网上找个工具类 根据自己的要求 改了改

前端部分

var formData = new FormData();

formData.append("files", overallSituation.files[0]);

$.ajax({

url: "fms/******/upload*******File",

data: formData,

type: "POST",

// dataType: "json",

cache: false, //上传文件无需缓存

processData: false, //用于对data参数进行序列化处理 这里必须false

contentType: false, //必须

success: function (data) {

if(data=="null"){

Message.info("文件有误!");

}else if(data=="false"){

Message.info("出现异常!");

}else{

Message.info("成功修改数据"+data+"条!");

panelVm.close();

}

}

});

// controller 具体的 就不写了

@RequestMapping(value="/*****",method = RequestMethod.POST)

@ResponseBody

public String *****(@RequestParam("files") MultipartFile files) throws IOException{

return setFile(files);

}

// 工具类  把MultipartFile 这个对象解析成 List

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

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

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

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

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

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import org.springframework.web.multipart.MultipartFile;

import java.io.*;

import java.util.ArrayList;

/**

*

* @author   *****

* @Date 2020-11-03 10:30

*/

public class ExcleAnalysisUtil {

public ExcleAnalysisUtil() {

throw new Error("工具类不允许实例化!");

}

/**

* 获取并解析excel文件,返回一个二维集合

* @param file 上传的文件

* @return 二维集合(第一重集合为行,第二重集合为列,每一行包含该行的列集合,列集合包含该行的全部单元格的值)

*/

public static ArrayList> analysis(MultipartFile file) {

ArrayList> row = new ArrayList<>();

//获取文件名称

String fileName = file.getOriginalFilename();

System.out.println(fileName);

try {

//获取输入流

InputStream in = file.getInputStream();

//判断excel版本

Workbook workbook = null;

if (judegExcelEdition(fileName)) {

workbook = new XSSFWorkbook(in);

} else {

workbook = new HSSFWorkbook(in);

}

//获取第一张工作表

Sheet sheet = workbook.getSheetAt(0);

//从第二行开始获取 getLastRowNum

System.out.println(sheet.getLastRowNum());

System.out.println(sheet.getPhysicalNumberOfRows());

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

//循环获取工作表的每一行

Row sheetRow = sheet.getRow(i);

//循环获取每一列

ArrayList cell = new ArrayList<>();

for (int j = 0; j < sheetRow.getPhysicalNumberOfCells(); j++) {   //

//将每一个单元格的值装入列集合

sheetRow.getCell(j).setCellType(Cell.CELL_TYPE_STRING);

cell.add(sheetRow.getCell(j).getStringCellValue());

}

//将装有每一列的集合装入大集合

row.add(cell);

//关闭资源

workbook.close();

}

} catch (FileNotFoundException e) {

e.printStackTrace();

System.out.println("===================未找到文件======================");

} catch (IOException e) {

e.printStackTrace();

System.out.println("===================上传失败======================");

}

return row;

}

/**

* 判断上传的excel文件版本(xls为2003,xlsx为2017)

* @param fileName 文件路径

* @return excel2007及以上版本返回true,excel2007以下版本返回false

*/

private static boolean judegExcelEdition(String fileName){

if (fileName.matches("^.+\\.(?i)(xls)$")){

return false;

}else {

return true;

}

}

}

multipartfile转excel_MultipartFile解析Excel相关推荐

  1. POI文件导入:代码实现-解析Excel构造用户列表

    用户实体类配置构造方法 public User(Object [] values) {//用户名 手机号 工号 聘用 形式 入职 时间 部门编码this.username = values[1].to ...

  2. ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库

    做完了一个报表导入数据库 功能 遇到几个问题:一 .Poi解析excel 的两种格式 xls xlsx. 二.form表单上传使用ajax 三.excel 单元格中有公式存在普通的读取方式读到的是公式 ...

  3. 读取ppt并存入数据库_Java解析Excel文件并把数据存入数据库

    前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中.花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致 ...

  4. vue excel导入mysql详细教程_Vue前端上传EXCEL文件,后端(springBoot+MyBatis+MySQL)解析EXCEL并批量插入/更新数据库...

    文章目录 Vue前端 后端 controller层 service层:如何解析Excel文件 MyBatis:实现批量插入 在mysql中设置唯一索引Unique Index MySQL中的inser ...

  5. POI解析Excel表格

    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 这里实现poi解析Excel表格的例子,导入Exc ...

  6. SpringBoot 解析excel 使用easyexcel依赖 2.1.1版本

    1.  引入easyexcel 依赖 <dependencies><dependency> <!-- 解析excel 依赖 使用 easyexcel 这个--> & ...

  7. 解析Excel获取单元格数据

    今天自己写了一遍解析Excel的方法,虽然也是根据网上一些例子来写的,但是一边写一边在网上查找这些类.方法的含义及左右,感觉还是有所收获的.记录一下以后方便使用. private static fin ...

  8. springboot整合poi解析excel

    1.poi的maven引入 <!-- poi导入导出 --><dependency><groupId>org.apache.poi</groupId>& ...

  9. XX健康:预约管理-预约设置日历插件文件简单下载Excel文件解析Excel表数据批量导入

    1. 需求分析 前面我们已经完成了检查项管理.检查组管理.套餐管理等.接下来我们需要进行预约设置,其实就是设置每一天的体检预约最大数量.客户可以通过微信端在线预约,在线预约时需要选择体检的时间,如果客 ...

最新文章

  1. Python使用matplotlib可视化箱图、seaborn中的boxplot函数可视化分组箱图、在箱图中添加抖动数据点(Dot + Box Plot)
  2. Android加载大图、多图解决方案
  3. CSS 中的内联元素、块级元素以及display的各个属性的特点
  4. vue 子组件更新父组件状态 使用sync
  5. sqoop导出数据|Hive|HDFS和脚本编写
  6. efficientnet-yolo3-tf2的实现
  7. 深入了解vue中slot和slot-scope
  8. 3.MongoDB uri中包含特殊字符与读策略配置
  9. Periodic Call 1.0
  10. HTML静态网页作业——海贼王主题网页设计制作6个页面(HTML+CSS)
  11. Cross Compile libdnet and Python for Montavista/PowerPC
  12. JAVA 类和对象的实例
  13. RainMeter学习4
  14. Racket语言简单使用
  15. Java小程序--抓取emai
  16. php+日期周几,如何判断php一个日期是周几
  17. 为什么苹果手机通话的时候不能录音?
  18. 电脑合上盖子不锁屏_win10笔记本合上盖子不锁屏
  19. Dubbo:Dubbo服务发现
  20. python 隐函数作图(原创简单方法)

热门文章

  1. Hbuilder 连接夜神模拟器
  2. bim学习—— 第7章 放置幕墙门窗
  3. 雷军与小米:上扬的微笑与下行的隐忧
  4. Java程序员最喜欢的11款免费IDE编辑器
  5. ref与$res的关系
  6. axis调用java实现webservice实例
  7. 成长经历:DIV标签设置背景色,没有显示背景色
  8. js解决浏览器,SpeechSynthesis不能正常合成中文语音
  9. Python生成动态二维码,运用神库:qrcode
  10. mac电脑无法识别移动硬盘怎么解决?看过来!