Java Excel 通用导入
来源:互联网 发布:c 网页中数据写入xml 编辑:程序博客网 时间:2024/06/14 13:27
万分抱歉,因为最近项目上线 通用导入篇章现在才写
以上就是通用导入的全部内容了,写的比较糙。有不足的地方 还留言斧正。
废话不多说,上代码!!!
<!-- 加载 multipartResolver --> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <beans:property name="maxUploadSize" value="32505856" /> <beans:property name="maxInMemorySize" value="4096" /> </beans:bean>1.在spring配置文件种加载解析器(想具体了解的可以自己百度一下)下面我们页面上传文档需要这个bean去解析
<form id="from1" action="${webroot}/system/sysResource/improtExcel" method="post" enctype="multipart/form-data" > <input type="file" id="uploadFile" name="uploadFile"/> </from> <script type="text/javascript"> //Excel文件导入到数据库中 function importEmp(){ //检验导入的文件是否为Excel文件 var uploadFile = document.getElementById("uploadFile").value; if(uploadFile == null || uploadFile == ''){ alert("请选择要上传的Excel文件"); return; }else{ var fileExtend = uploadFile.substring(uploadFile.lastIndexOf('.')).toLowerCase(); if(fileExtend == '.xls'){ }else{ alert("文件格式需为'.xls'格式"); return; } } //提交表单 document.getElementById("from1").submit(); } </script>
2.页面和js提交动作
@ResponseBody @RequestMapping(value = "/improtExcel", method = { RequestMethod.POST }) public JsonResult ImprotExcel(@RequestParam(value="uploadFile")MultipartFile file) { SysResources obj = new SysResources (); try { List<Map<String, Object>> list = ImportExcelUntil.importExcel(file, obj); System.out.println(list); } catch (Exception e) { e.printStackTrace(); } //批量插入数据库 JsonResult jr = JsonResult.newInstance(); String ret = null; String ret = sysResourceService.insert(list); return ret == null ? jr.declareSuccess() : jr.declareFailure(ret); }3.controller 代码
package com.xiong.weixin.untils; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.springframework.web.multipart.MultipartFile; /** * * @author XiongYC * @date 2017年11月2日 * */ public class ImportExcelUntil{ /** * 拼装单个obj * @param obj * @param row * @return * @throws Exception */ private static Map<String, Object> dataObj(Object obj, HSSFRow row) throws Exception { Class<?> rowClazz= obj.getClass(); Field[] fields = FieldUtils.getAllFields(rowClazz); if (fields == null || fields.length < 1) { return null; } //容器 Map<String, Object> map = new HashMap<String, Object>(); //注意excel表格字段顺序要和obj字段顺序对齐 (如果有多余字段请另作特殊下标对应处理) for (int j = 0; j < fields.length; j++) { map.put(fields[j].getName(), getVal(row.getCell(j))); } return map; } public static List<Map<String, Object>> importExcel(MultipartFile file, Object obj) throws Exception { //装载流 POIFSFileSystem fs = new POIFSFileSystem(file.getInputStream()); HSSFWorkbook hw= new HSSFWorkbook(fs); //获取第一个sheet页 HSSFSheet sheet = hw.getSheetAt(0); //容器 List<Map<String, Object>> ret = new ArrayList<Map<String, Object>>(); //遍历行 从下标第一行开始(去除标题) for (int i = 1; i < sheet.getLastRowNum(); i++) { HSSFRow row= sheet.getRow(i); if(row!=null){ //装载obj ret.add(dataObj(obj,row)); } } return ret; } /** * 处理val(暂时只处理string和number,可以自己添加自己需要的val类型) * @param hssfCell * @return */ public static String getVal(HSSFCell hssfCell) { if (hssfCell.getCellType() == HSSFCell.CELL_TYPE_STRING) { return hssfCell.getStringCellValue(); } else { return String.valueOf(hssfCell.getNumericCellValue()); } } }4.导入工具类
以上就是通用导入的全部内容了,写的比较糙。有不足的地方 还留言斧正。
阅读全文
1 0
- Java Excel 通用导入
- java poi导入Excel通用工具类
- java poi导入Excel通用工具类
- 通用Excel导入设计
- 通用excel导入导出
- 通用Excel导入设计
- 通用EXCEL导入导出
- Excel通用导入实现
- java利用反射通用导入Excel到数据库
- 通用excel导入修改版
- 通用数据库导入导出excel
- Java Excel 通用导出
- Sql 导入 EXCEL 通用存储过程
- Sql 导入 EXCEL 通用存储过程
- Sql 导入 EXCEL 通用存储过程
- C#导入导出Excel通用类(SamWang)
- Delphi Excel导入 的通用程序
- Delphi Excel导入 的通用程序
- Spring Security--概念概览
- apicloud菜鸟问题
- 不看后悔flyerinternational揭秘同行骗子伎俩
- mac 系统使用 psutil 模块获取系统 cpu,内存等信息
- 理解ResNet结构与TensorFlow代码分析
- Java Excel 通用导入
- 在android手机端查看APP的本地数据库
- 1 让自己习惯C++
- 从kali到msf再到veil免杀的一条龙踩坑服务指南
- task(任务栈)、Activity启动模式详解
- 可视化数据分析软件几个可能的发展方向
- psutil工具使用介绍
- 画五角星
- 【蓝桥杯】【生日蜡烛】