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上传导入相关推荐

  1. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  2. 如何合并多个Excel文件(相同列结构)至一个Excel文件中

    如何合并多个Excel文件(相同列结构)至一个Excel文件中 1. 将待合并数据格式一样的Excel文件放置在一个文件夹下 2. 新建一个Excel空文件,用来存放合并数据 3. 点击[数据]> ...

  3. linux系统读取excel文件是否存在,小弟我用poi读excel,在window下没有有关问题,但把程序放到linux上时,读取客户端的excel文件报错,不...

    我用poi读excel,在window下没有问题,但把程序放到linux上时,读取客户端的excel文件报错,不知道如何解决 我用poi读excel,在window下没有问题,但把程序放到linux上 ...

  4. Excel 2016 突然打开别人发过来的2个excel文件就关闭打不开,打开电脑上其他excel文件正常

    环境: Win 10专业版 Excel 2016 问题描述: Excel 2016 突然打开别人发过来的2个excel文件,就关闭打不开,打开电脑上其他excel文件正常 解决方案: 1.cmd输入a ...

  5. python导出数据到excel文件_Python笔记:把数据导出到Excel文件上

    相信初学Python数据分析的小伙伴都发现了,只是把数据加载在Python的环境中做数据处理还不够,因为环境的问题(Python加载进来的只是一张虚拟表,数据暂存内存中),我们最终还是需要把粗加工好的 ...

  6. JAVA导入/导出EXCEL文件,自定义校验,错误回写excel,使用简单快捷

    github地址: https://github.com/alan-et/alanpoi/tree/develop/alanpoi-analysis 项目中使用: <dependency> ...

  7. excel文件被写保护怎么解除_如何去掉Excel表格中的密码保护?

    如果你不愿意自己的Excel文件被别人查看,那么你可以给它设置密码保护,采用在保存文件时用加密的方法就可以实现保护目的,在这里要特别注意的是,自己设定的密码一定要记住,否则自己也将被视为非法入侵者而遭 ...

  8. python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法

    python将数据换为txt的方法有很多,可以用xlrd库实现.本人比较懒,不想按太多用的少的插件,利用已有库pandas将excel文件转换为txt文件. 直接上代码: ''' function:将 ...

  9. Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...

    springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...

  10. matlab如何读取excel文件中的数据?_Python自动化之从Excel文件读取数据

    前言: 在Python语言,常用的excel读写库有xrld和openpyxl两个,当然pandas库也可以从excel文件中读取数据,但这里不建议使用.有个问题就是,xrld只能用于读取数据而不能用 ...

最新文章

  1. 零起点学算法07——复杂一点的表达式计算
  2. java $.getjson_JQuery 获取json数据$.getJSON方法的实例代码
  3. 0-1背包一维数组的执行过程图示
  4. Python3字符串填充和对齐代码示例
  5. iOS Hacker Keychain相关The executable was signed with invalid entitlements
  6. Dubbo监控平台安装
  7. .net ListT
  8. 不同浏览器css引入外部字体的方式
  9. “1天一朵云”,这是如何做到的?
  10. KubeEdge 1.2.0 部署
  11. Ui学习笔记---EasyUI的EasyLoader组件源码分析
  12. 地质图、地质岩性数据、地质灾害分布、土壤理化性质数据集、土地利用数据、土壤重金属含量分布、植被类型分布
  13. acer台式计算机如何拆硬盘,原件 Acer V5471G拆卸与更换固态硬盘的详细说明
  14. 开关电源电路图及原理12v分析-详细版
  15. 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
  16. 文档服务器 件排名,全国服务器排名
  17. thinkphp6事件监听event-listene
  18. springboot仓储系统出入库模块设计系统java ssm
  19. element ui el-table单元格按需合并
  20. 一二线城市知名 IT互联网公司名单(最新整理版)出炉!

热门文章

  1. Python关键字及含义
  2. Excel隐藏当前工作表的2种操作
  3. javascript文字转化成语音
  4. 股粮网:手机号因出差被封 网友:解决不了问题就先解决提出问题的人?
  5. 数字证书(CA)的申请、安装及应用
  6. mysql 复合索引,普通索引,索引分类总结
  7. Android 进程保活资料汇总与华为白名单那些事
  8. Spring Security 集成 Authing CAS 认证(三)
  9. 关于字符型变量的理解
  10. 从“大数据革命”到“因果革命”