jfinal excel 文件导入
来源:互联网 发布:淘宝app如何收藏店铺 编辑:程序博客网 时间:2024/06/03 13:44
一、选择文件上传
html代码
<form id="myFormId" action="user/initimport" method="post"enctype="multipart/form-data" target="frmright"> <table class="tableStyle" formMode="transparent"> <tr></tr> <tr> <td> <input type="file" id="filePath" name="filePath" class="validate[required]"/> </td> </tr> <tr> <td colspan="4"> <input type="button" value="提交" id="btn" onclick='sub()'/> <input type="button" value="取消" onclick='top.Dialog.close()' /></td> </tr> </table> </form>
js代码
function initComplete(){ $('#myFormId').live('submit', function(){ var valid = $('#myFormId').validationEngine({returnIsValid: true}); if(valid){ $("#btn").attr("disabled", "true"); $(this).ajaxSubmit({ success: function(responseText, statusText, xhr, $form){ top.Dialog.alert(responseText, function() { closeWin(); }); } }); }return false; }); } function closeWin() { //刷新数据 top.frmright.refresh(true); //关闭窗口 top.Dialog.close(); } function sub() { $("#myFormId").submit(); }
二、excel文件处理
public void initimport(){ boolean flag=Db.tx(new IAtom() { boolean save_flag =true; @Override public boolean run() throws SQLException { try { UploadFile up = getFile("filePath"); List<String[]> list = ExcelKit.getExcelData(up.getFile()); for (String[] strings : list) { if (strings[0] != null && !"".equals(strings[0])) { String id = strings[0]; String username = strings[1]; String date = strings[2]; User user = new User(); if (!"".equals(username )) { user.set("username",username); } if (!"".equals(date )) { user.set("date",DateUtil.getSqlDate(date,"yyyy-MM-dd")); } save_flag = user.save(); } } } catch (Exception e) { save_flag = false; e.printStackTrace(); } return save_flag; } }
在excel单元格中,出现的数字可能会被自动转换格式。尤其是日期数据,比如2017-01-01,其结果就被转成2015。
excel的工具类方法ExcelKit.getData
public List<String[]> getExcelData(File file){ return getData(file).get(0);//选择sheet1 } private static List<List<String[]>> getData(File file){ HSSFWorkbook workbook; List<List<String[]>> data = new ArrayList<List<String[]>>(); try { workbook = new HSSFWorkbook(new FileInputStream(file)); HSSFSheet sheet=null; //循环sheet for (int i = 0; i < workbook.getNumberOfSheets(); i++) { sheet=workbook.getSheetAt(i); List<String[]> rows = new ArrayList<String[]>(); int colsnum = 0; //循环每一行 for (int j = 0; j <= sheet.getLastRowNum(); j++) { HSSFRow row=sheet.getRow(j); if(null != row){ //列数以excel第二行为准,第二行为标题,第一行为excel导入提示信息 colsnum = sheet.getRow(1).getPhysicalNumberOfCells(); String[] cols = new String[colsnum]; //循环每一个单元格,以一行为单位,组成一个数组 for (int k = 0; k < colsnum; k++) { //判断单元格是否为null,若为null,则置空 if(null != row.getCell(k)) { int type = row.getCell(k).getCellType(); //判断单元格数据是否为数字 if(type == HSSFCell.CELL_TYPE_NUMERIC){ //判断该数字的计数方法是否为科学计数法,若是,则转化为普通计数法 if(String.valueOf(row.getCell(k).getNumericCellValue()).matches(".*[E|e].*")) { DecimalFormat df = new DecimalFormat("#.#"); //指定最长的小数点位为10 df.setMaximumFractionDigits(10); cols[k] = df.format(row.getCell(k).getNumericCellValue()); //判断该数字是否是日期,若是则转成字符串 } else if(HSSFDateUtil.isCellDateFormatted(row.getCell(k))){ Date d = row.getCell(k).getDateCellValue(); DateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); cols[k] = formater.format(d); }else{ cols[k] = (row.getCell(k)+"").trim(); } } else { cols[k] = (row.getCell(k)+"").trim(); } } else { cols[k] = ""; } } //以一行为单位,加入list rows.add(cols); } } //返回所有数据,第一个list表示sheet,第二个list表示sheet内所有行数据,第三个string[]表示单元格数据 data.add(rows); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return data; }
1 0
- jfinal excel 文件导入
- Jfinal文件的导入导出
- 基于 angularjs+jfinal 的 excel文件导出
- jfinal之使用模板导出excel文件
- 2014.5.12 JFinal HSSFWorkbook导入Excel 并解析内容
- java利用poi和jfinal框架将excel导入数据库
- 如何导入Excel 文件
- EXCEL文件导入DATAWINDOW
- js导入Excel文件
- excel文件导入sql
- PB导入EXCEL文件
- postgreSQL导入excel文件
- winfrom导入excel文件
- struts2 excel文件导入
- php导入excel文件
- SQLSERVER导入EXCEL文件
- 导入Excel文件错误
- mysql导入excel文件
- 正则表达式入门(一)
- Linux -mv命令的10个实用例子
- 欢迎使用CSDN-markdown编辑器
- Java程序设计五道编程题
- MySql配置主从
- jfinal excel 文件导入
- C# 集合-并发处理-锁OR线程
- 一致性哈希
- AngularJS - 3种方案处理class
- opencv学习笔记(十七)利用cvPyrSegmentation()做图像分割
- Java中如何使封装自己的类,建立并使用自己的类库?
- class对象和classloader对象中关于路径问题
- threadingSocket示例
- ionic 隐藏ion-tab