springmvc ajax excel文件上传,JSP+ajax+springMVC+MayBatis处理excel上传导入
jsp
导入
jquery
//数据导入
function importData(){
var files = $('input[name="importData"]').prop('files');//获取到文件列表
if(files.length == 0){
alert('请选择文件');
return;
}else{
var formData = new FormData();
var name = $("#importData").val();
formData.append("file",$("#importData")[0].files[0]);
formData.append("name",name);
var reg = /^.*\.(?:xls|xlsx)$/i;
if (!reg.test(name)) {//校验是否是excel格式的文件
alert("请上传excel格式的文件!");
return;
}
var url = "url";
$.ajax({
type : "post",
async : false,
traditional : true,
url : url,
dataType : "json",
data : formData,
processData : false,
contentType : false,
success : function(result) {
if (result.success) {
//保存刷新
//........
alert("导入成功!");
}
},
error : function(errorMsg) {
alert("导入失败!");
}
});
}
}
java
@Autowired
private IDimUserFileConfService dimUserFileConfService;
@Autowired
private IDimUserGiConfService dimUserGiConfService;
@RequestMapping(value = "importExel.json", method = RequestMethod.POST)
@ResponseBody
public Object importdata(@RequestParam("file") MultipartFile file,HttpServletRequest request, HttpServletResponse response,@RequestParam("user_id") String user_id,
@RequestParam("user_name") String user_name) {
String id = user_id+DateUtils.getDateTimeStr();
Date create_time = new Date();
String filename = file.getOriginalFilename();//原文件名字
XSSFWorkbook workbook1 = null;
HSSFWorkbook workbook2 = null;
try {
InputStream is = file.getInputStream();//获取输入流
if(filename.endsWith(".xlsx")){
workbook1 = new XSSFWorkbook(is);
XSSFSheet sheet = workbook1.getSheetAt(0); // 创建对工作表的引用
int rows = sheet.getPhysicalNumberOfRows();// 获取表格的
int columns = 0;
for (int r = 0; r < rows; r++) { // 循环遍历表格的行
if(r==0){
//在第一行标题行计算出列宽度,因为数据行中可能会有空值
columns = sheet.getRow(r).getLastCellNum();
continue;
}
String value = "";
Row row = sheet.getRow(r); // 获取单元格中指定的行对象
if (row != null) { //遍历单元格
for(int i = 0 ; i < columns; i++) {
Cell cell = row.getCell(i);
cell.setCellType(Cell.CELL_TYPE_STRING);
String temp = cell.getStringCellValue();
if (temp.indexOf(".") > -1) { //处理有小数的读取错误
value += String.valueOf(new Double(temp)).trim()+",";
} else {
value += temp.trim()+",";
}
}
}
String[] str = value.split(",");
int k = 0;
if(r % 200 == 0) {//文件拆分,每200行一个文件
k++;
id = k+user_id+DateUtils.getDateTimeStr()+"p";
//保存文件信息
dimUserFileConfService.addUserGiFile(id, filename+"_p"+k, user_id, user_name, new Date());
}
//处理用户地理信息保存
dimUserGiConfService.addUserGi(str[0], str[1], str[2], id);
}
if(!id.endsWith("p")) {
//保存文件信息
dimUserFileConfService.addUserGiFile(id, filename, user_id, user_name, create_time);
}
} else {
workbook2 = new HSSFWorkbook(is);
HSSFSheet sheet = workbook2.getSheetAt(0); // 创建对工作表的引用
int rows = sheet.getPhysicalNumberOfRows();// 获取表格的
int columns = 0;
for (int r = 0; r < rows; r++) { // 循环遍历表格的行
if(r==0){
//在第一行标题行计算出列宽度,因为数据行中可能会有空值
columns = sheet.getRow(r).getLastCellNum();
continue;
}
String value = "";
Row row = sheet.getRow(r); // 获取单元格中指定的行对象
if (row != null) { //遍历单元格
for(int i = 0 ; i < columns; i++) {
Cell cell = row.getCell(i);
cell.setCellType(Cell.CELL_TYPE_STRING);
String temp = cell.getStringCellValue();
if (temp.indexOf(".") > -1) { //处理有小数的读取错误
value += String.valueOf(new Double(temp)).trim()+",";
} else {
value += temp.trim()+",";
}
}
}
String[] str = value.split(",");
int k = 0;
if(r % 200 == 0) {//文件拆分,每200行一个文件
k++;
id = k+user_id+DateUtils.getDateTimeStr()+"p";
//保存文件信息
dimUserFileConfService.addUserGiFile(id, filename+"_p"+k, user_id, user_name, new Date());
}
//处理用户地理信息保存
dimUserGiConfService.addUserGi(str[0], str[1], str[2], id);
}
if(!id.endsWith("p")) {
//保存文件信息
dimUserFileConfService.addUserGiFile(id, filename, user_id, user_name, create_time);
}
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(workbook1 != null) {
workbook1.close();
}
if(workbook2 != null) {
workbook2.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return new RestResult(true, "ok");
}
maybatis
INSERT INTO dim_user_gi_file
values
(#{id},#{f_name},#{user_id},#{user_name},#{create_time, jdbcType=DATE})
springmvc ajax excel文件上传,JSP+ajax+springMVC+MayBatis处理excel上传导入相关推荐
- 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...
- 如何合并多个Excel文件(相同列结构)至一个Excel文件中
如何合并多个Excel文件(相同列结构)至一个Excel文件中 1. 将待合并数据格式一样的Excel文件放置在一个文件夹下 2. 新建一个Excel空文件,用来存放合并数据 3. 点击[数据]> ...
- linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...
我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错,不知道如何解决 我用poi读excel,在window下没有问题,但把程序放到linux上 ...
- Excel 2016 突然打开别人发过来的2个excel文件就关闭打不开,打开电脑上其他excel文件正常
环境: Win 10专业版 Excel 2016 问题描述: Excel 2016 突然打开别人发过来的2个excel文件,就关闭打不开,打开电脑上其他excel文件正常 解决方案: 1.cmd输入a ...
- python导出数据到excel文件_Python笔记:把数据导出到Excel文件上
相信初学Python数据分析的小伙伴都发现了,只是把数据加载在Python的环境中做数据处理还不够,因为环境的问题(Python加载进来的只是一张虚拟表,数据暂存内存中),我们最终还是需要把粗加工好的 ...
- JAVA导入/导出EXCEL文件,自定义校验,错误回写excel,使用简单快捷
github地址: https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis 项目中使用: <dependency> ...
- excel文件被写保护怎么解除_如何去掉Excel表格中的密码保护?
如果你不愿意自己的Excel文件被别人查看,那么你可以给它设置密码保护,采用在保存文件时用加密的方法就可以实现保护目的,在这里要特别注意的是,自己设定的密码一定要记住,否则自己也将被视为非法入侵者而遭 ...
- python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法
python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...
- Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...
springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...
- matlab如何读取excel文件中的数据?_Python自动化之从Excel文件读取数据
前言: 在Python语言,常用的excel读写库有xrld和openpyxl两个,当然pandas库也可以从excel文件中读取数据,但这里不建议使用.有个问题就是,xrld只能用于读取数据而不能用 ...
最新文章
- 零起点学算法07——复杂一点的表达式计算
- java $.getjson_JQuery 获取json数据$.getJSON方法的实例代码
- 0-1背包一维数组的执行过程图示
- Python3字符串填充和对齐代码示例
- iOS Hacker Keychain相关The executable was signed with invalid entitlements
- Dubbo监控平台安装
- .net ListT
- 不同浏览器css引入外部字体的方式
- “1天一朵云”,这是如何做到的?
- KubeEdge 1.2.0 部署
- Ui学习笔记---EasyUI的EasyLoader组件源码分析
- 地质图、地质岩性数据、地质灾害分布、土壤理化性质数据集、土地利用数据、土壤重金属含量分布、植被类型分布
- acer台式计算机如何拆硬盘,原件 Acer V5471G拆卸与更换固态硬盘的详细说明
- 开关电源电路图及原理12v分析-详细版
- 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
- 文档服务器 件排名,全国服务器排名
- thinkphp6事件监听event-listene
- springboot仓储系统出入库模块设计系统java ssm
- element ui el-table单元格按需合并
- 一二线城市知名 IT互联网公司名单(最新整理版)出炉!