搜索组件模块
开发环境
建模过程
流程设计
系统管理
数据库操作
日志输出
Excel处理
文件处理
常用类
-

TLv8 数据导入

grid工具栏添加导入按钮:

</>code

  1. importbtn = subdgrid3.insertSelfBar("导入清单","60px","");

HTML写按钮:

</>code

  1. <button id="importbtn">导入</button>

JS控制

</>code

  1. layui.upload.render({
  2. elem:'#'+importbtn,
  3. url:cpath+'/pur/importContractItems',
  4. accept: 'file',
  5. dataType: 'json',
  6. data:{contractID:ContraData.rowid},
  7. done: function(res, index, upload){
  8. if(res.code != '-1'){
  9. subdgrid3.refreshData();
  10. }else{
  11. alert(res.msg);
  12. }
  13. }
  14. });

引用layui:

<link type="text/css" rel="stylesheet" href="../../../resources/layui/css/layui.css">

<script type="text/javascript" src="../../../resources/layui/layui.js"></script>

layui文件上传


控制层的方法里面增加参数:@RequestParam("file") MultipartFile file

实例

</>code

  1. import org.springframework.stereotype.Controller;
  2. import org.springframework.web.bind.annotation.RequestMapping;
  3. import org.springframework.web.bind.annotation.RequestParam;
  4. import org.springframework.web.bind.annotation.ResponseBody;
  5. import org.springframework.web.multipart.MultipartFile;
  6. @Controller
  7. @RequestMapping("/pur")
  8. public class ImportContractItems {
  9. @ResponseBody
  10. @RequestMapping(value = "/importContractItems")
  11. public Object execute(@RequestParam("file") MultipartFile file, String contractID) throws Exception {
  12. JSONObject res = new JSONObject();
  13. return res;
  14. }
  15. }

关键参数:@RequestParam("file") MultipartFile file


利用公共类:com.tlv8.core.utils.ExcelUtils解析excel内容:

</>code

  1. Workbook workbook = ExcelUtils.getWorkbook(file);
  2. String[][] datas = ExcelUtils.readSheet(workbook, 0);//0:excel工作簿的编号第一个从0开始

完整的代码实例:

</>code

  1. package com.tlv8.pur.contract;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import org.apache.ibatis.jdbc.SQL;
  5. import org.apache.ibatis.session.SqlSession;
  6. import org.apache.poi.ss.usermodel.Workbook;
  7. import org.json.JSONObject;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestParam;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import org.springframework.web.multipart.MultipartFile;
  13. import com.tlv8.base.db.DBUtils;
  14. import com.tlv8.base.utils.IDUtils;
  15. import com.tlv8.core.utils.ExcelUtils;
  16. /**
  17. * 合同清单导入
  18. *
  19. * @author chenqian
  20. *
  21. */
  22. @Controller
  23. @RequestMapping("/pur")
  24. public class ImportContractItems {
  25. @ResponseBody
  26. @RequestMapping(value = "/importContractItems")
  27. public Object execute(@RequestParam("file") MultipartFile file, String contractID) throws Exception {
  28. JSONObject res = new JSONObject();
  29. SqlSession session = DBUtils.getSession("oa");
  30. Connection conn = null;
  31. PreparedStatement ps = null;
  32. try {
  33. String fileName = file.getOriginalFilename();
  34. if (fileName == null || "".equals(fileName)) {
  35. res.put("code", -1);
  36. res.put("msg", "导入失败:未选择文件或文件类型不正确!");
  37. } else if (fileName.toLowerCase().indexOf("xls") < 0 && !"".equals(fileName)) {
  38. res.put("code", -1);
  39. res.put("msg", "导入失败:文件类型不正确!正确的导入文件为Excel");
  40. } else {
  41. Workbook workbook = ExcelUtils.getWorkbook(file);
  42. String[][] datas = ExcelUtils.readSheet(workbook, 0);
  43. SQL sql = new SQL();
  44. sql.INSERT_INTO("pur_contract_items");
  45. sql.INTO_COLUMNS("fID", "fcontractID", "fbrand", "fnumber", "fprice", "ftotalprice", "fremarks");
  46. sql.INTO_COLUMNS("funit", "fservices", "fgoodsname", "fmodel", "fMaincfp", "VERSION", "fnum",
  47. "fmanufacturer", "fplaceofOrigin");
  48. sql.INTO_VALUES("?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?", "?");
  49. conn = session.getConnection();
  50. for (int i = 1; i < datas.length; i++) {
  51. ps = conn.prepareStatement(sql.toString());
  52. ps.setString(1, IDUtils.getGUID());
  53. ps.setString(2, contractID);
  54. ps.setString(3, datas[i][0]);// 品牌
  55. ps.setString(4, datas[i][1]);// 数量
  56. ps.setString(5, datas[i][3]);// 单价
  57. ps.setDouble(6, Double.valueOf(datas[i][1])*Double.valueOf(datas[i][3]));// 总价
  58. ps.setString(7, datas[i][6]);
  59. ps.setString(8, datas[i][2]);//
  60. ps.setString(9, datas[i][5]);// 服务内容
  61. ps.setString(10, datas[i][7]);// 货物名称
  62. ps.setString(11, datas[i][8]);// 型号
  63. ps.setString(12, datas[i][9]);// 主要配置参数
  64. ps.setInt(13, 0);
  65. ps.setInt(14, i);
  66. ps.setString(15, datas[i][10]);// 制造商
  67. ps.setString(16, datas[i][11]);// 产地
  68. ps.executeUpdate();
  69. }
  70. session.commit(true);
  71. res.put("code", 0);
  72. res.put("msg", "导入成功!");
  73. }
  74. } catch (Exception e) {
  75. session.rollback(true);
  76. res.put("code", -1);
  77. res.put("msg", "导入失败!详细:" + e.getMessage());
  78. e.printStackTrace();
  79. } finally {
  80. DBUtils.CloseConn(session, conn, ps, null);
  81. }
  82. return res;
  83. }
  84. }


Powered By layui