JEPaaS 社区

 找回密码
 立即注册
JEPaaS低代码平台-官网
查看: 2968|回复: 0

[知识经验] excel数据库导入

[复制链接]

4

主题

4

帖子

35

积分

凯特员工

积分
35
发表于 2021-6-30 16:11:20 | 显示全部楼层 |阅读模式
一、实现效果
1、对应的表单上新增导入按钮,根据模板进行数据的导入「也可以做预处理即导入前会弹出框让客户再次进行修改也可不修改」
二、实现思路
1、在对应的模块中的按钮配置中添加导入按钮2、在jepaas开发下选择excel导入中选择对应的表进行配置「切记表单中有下拉框或查询选择,要选择进行配置,与表单配置一样,可直接复制配置信息」
3、以上两步完成后,在导入的按钮事件中编写js,进行数据处理。
三、具体操作
1、相应表单添加按钮
2、Excel导入配置导入模版「制定模版进行上传」
3、在导入按钮中添加事件
四、相关代码(可选)
提示:JEEXCEL00000000此编码会在excel数据导入配置这里会自动生成,在导入事件中切记将其替换,否则无效
  1. function(btn,event,eOpts){
  2.     var grid = btn.up("jegridview");
  3.      var groupCode = 'JEEXCEL00000000'
  4.     JE.uploadFile({
  5.         multiSelect: false, //单附件 true为多附件
  6.         callback: function (cfg, data) {//data是所有数据
  7.             if (data.success) {
  8.                 //调用zip解析
  9.                 var resObj = JE.ajax({
  10.                     url: '/je/develop/excel/uploadFile',
  11.                     params: { groupCode: groupCode, fileKey: cfg.id }
  12.                 });
  13.              if(!resObj.success){               
  14.                JE.alert(resObj.obj);
  15.                return;            
  16.              }
  17.                 resObj=resObj.obj;
  18.                 if (resObj.PREVIEW == "1") {
  19.                     var sheetInfos = resObj.SHEETINFO;
  20.                     var items = new Array();
  21.                     var temIds = new Array();
  22.                     Ext.each(sheetInfos, function (sheetInfo) {
  23.                         var func = JE.getFuncData("JE_EXCEL_DATATEMP");
  24.                         temIds.push(sheetInfo.temId);
  25.                         func.info.j_query=[{"type":"=","code":"JE_EXCEL_CONFIGTEMP_ID","value":sheetInfo.temId,"cn":"and"}];
  26.                         var columns = new Array();
  27.                         columns.push({
  28.                             xtype: "rownumberer",
  29.                             width: 35,
  30.                             text: 'No.',
  31.                             align: 'center'
  32.                         })
  33.                         Ext.each(sheetInfo.columns, function (column) {
  34.                             Ext.each(func.grid.columns, function (col) {
  35.                                 if (col.dataIndex == column.dataIndex) {
  36.                                     var field = column.field;
  37.                                     delete column.field;
  38.                                     var _column = Ext.apply(col, column);
  39.                                     if (field) {
  40.                                         //更新编辑组件属性
  41.                                         Ext.each(['field', 'searchField', 'editField'], function (name) {
  42.                                             if (_column[name]) {
  43.                                                 Ext.apply(_column[name], field);
  44.                                             }
  45.                                         });
  46.                                     }
  47.                                     if (_column.field && ["rgroup", 'cgroup', 'cbbfield'].indexOf(_column.field.xtype) != -1) {
  48.                                         _column.tactics = [{ type: 'dic', dicCode: _column.field.configInfo.split(',')[0] }];
  49.                                         _column.renderer = JE.renderer;
  50.                                     }
  51.                                     columns.push(_column);
  52.                                     return false;
  53.                                 } else if (["JE_EXCEL_CONFIGTEMP_ID", "CODE", "MSG", "JE_EXCEL_DATATEMP_ID"].indexOf(col.dataIndex) != -1) {
  54.                                     columns.push(col);
  55.                                 }
  56.                             });
  57.                         });
  58.                         columns.push({
  59.                             text: "状态",
  60.                             dataIndex: "CODE",
  61.                             renderer: JE.renderer,
  62.                             width: 80,
  63.                             tactics: [{ bgCss: true, type: 'dic', dicCode: 'JE_EXCEL_DATASTATUS' }],
  64.                             field: {
  65.                                 xtype: "cbbfield",
  66.                                 configInfo: 'JE_EXCEL_DATASTATUS'
  67.                             }
  68.                         })
  69.                         columns.push({
  70.                             text: "状态消息",
  71.                             dataIndex: "MSG",
  72.                             width: 300,
  73.                             sortable: false,
  74.                             field: {
  75.                                 xtype: "textfield"
  76.                             }
  77.                         })
  78.                         func.grid.columns = columns;
  79.                         items.push({
  80.                             xtype: 'jemainview',
  81.                             bodyPadding: 1,
  82.                             title: sheetInfo.sheetName,
  83.                             idSuffix: "JE_EXCEL_DATATEMP" + sheetInfo.sheetIndex,
  84.                             funcData: func,
  85.                             border: 1,
  86.                             columns: sheetInfo.columns
  87.                         });
  88.                     });
  89.                     JE.win({
  90.                         title: "数据预处理",
  91.                         items: [{
  92.                             border: 0,
  93.                             xtype: "tabpanel",
  94.                             items: items
  95.                         }],
  96.                         useButton: true,
  97.                         autoShow: true,
  98.                         fn: function (win) {
  99.                             var resObj = JE.ajax({ url: "/develop/excelAction!doPreviewData.action", params: { groupCode: groupCode, temIds: temIds.join(",") } });
  100.                             if (resObj.success) {
  101.                                 JE.msg("数据处理成功");
  102.                                 grid.store.loadPage(1);
  103.                             } else {
  104.                                 JE.alert(resObj.obj);
  105.                             }
  106.                         }
  107.                     })
  108.                 } else {
  109.                     JE.msg("导入成功!");
  110.                     grid.store.load();
  111.                 }
  112.             } else {
  113.                 JE.alert(data.message);
  114.             }
  115.         }
  116.     });
  117. }
复制代码

五、总结(可选)
1、在配置导入时,容易遗忘下拉框或查询选择相应的配置 导致数据不全
2、带入的字段请记得勾选处理带值。
六、关键字
excel数据导入

写几个本帖的关键字,方便用户检索。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|JEPaaS 低代码平台社区 ( 京ICP备18023569号 )

GMT+8, 2024-5-3 13:38 , Processed in 0.060971 second(s), 23 queries .

Powered by 北京凯特伟业科技有限公司

Copyright © 2001-2021, JEPaaS.COM

快速回复 返回顶部 返回列表