|
一、实现效果
1、对应的表单上新增导入按钮,根据模板进行数据的导入「也可以做预处理即导入前会弹出框让客户再次进行修改也可不修改」
二、实现思路
1、在对应的模块中的按钮配置中添加导入按钮2、在jepaas开发下选择excel导入中选择对应的表进行配置「切记表单中有下拉框或查询选择,要选择进行配置,与表单配置一样,可直接复制配置信息」
3、以上两步完成后,在导入的按钮事件中编写js,进行数据处理。
三、具体操作
1、相应表单添加按钮
2、Excel导入配置导入模版「制定模版进行上传」
3、在导入按钮中添加事件
四、相关代码(可选)
提示:JEEXCEL00000000此编码会在excel数据导入配置这里会自动生成,在导入事件中切记将其替换,否则无效
- function(btn,event,eOpts){
- var grid = btn.up("jegridview");
- var groupCode = 'JEEXCEL00000000'
- JE.uploadFile({
- multiSelect: false, //单附件 true为多附件
- callback: function (cfg, data) {//data是所有数据
- if (data.success) {
- //调用zip解析
- var resObj = JE.ajax({
- url: '/je/develop/excel/uploadFile',
- params: { groupCode: groupCode, fileKey: cfg.id }
- });
- if(!resObj.success){
- JE.alert(resObj.obj);
- return;
- }
- resObj=resObj.obj;
- if (resObj.PREVIEW == "1") {
- var sheetInfos = resObj.SHEETINFO;
- var items = new Array();
- var temIds = new Array();
- Ext.each(sheetInfos, function (sheetInfo) {
- var func = JE.getFuncData("JE_EXCEL_DATATEMP");
- temIds.push(sheetInfo.temId);
- func.info.j_query=[{"type":"=","code":"JE_EXCEL_CONFIGTEMP_ID","value":sheetInfo.temId,"cn":"and"}];
- var columns = new Array();
- columns.push({
- xtype: "rownumberer",
- width: 35,
- text: 'No.',
- align: 'center'
- })
- Ext.each(sheetInfo.columns, function (column) {
- Ext.each(func.grid.columns, function (col) {
- if (col.dataIndex == column.dataIndex) {
- var field = column.field;
- delete column.field;
- var _column = Ext.apply(col, column);
- if (field) {
- //更新编辑组件属性
- Ext.each(['field', 'searchField', 'editField'], function (name) {
- if (_column[name]) {
- Ext.apply(_column[name], field);
- }
- });
- }
- if (_column.field && ["rgroup", 'cgroup', 'cbbfield'].indexOf(_column.field.xtype) != -1) {
- _column.tactics = [{ type: 'dic', dicCode: _column.field.configInfo.split(',')[0] }];
- _column.renderer = JE.renderer;
- }
- columns.push(_column);
- return false;
- } else if (["JE_EXCEL_CONFIGTEMP_ID", "CODE", "MSG", "JE_EXCEL_DATATEMP_ID"].indexOf(col.dataIndex) != -1) {
- columns.push(col);
- }
- });
- });
- columns.push({
- text: "状态",
- dataIndex: "CODE",
- renderer: JE.renderer,
- width: 80,
- tactics: [{ bgCss: true, type: 'dic', dicCode: 'JE_EXCEL_DATASTATUS' }],
- field: {
- xtype: "cbbfield",
- configInfo: 'JE_EXCEL_DATASTATUS'
- }
- })
- columns.push({
- text: "状态消息",
- dataIndex: "MSG",
- width: 300,
- sortable: false,
- field: {
- xtype: "textfield"
- }
- })
- func.grid.columns = columns;
- items.push({
- xtype: 'jemainview',
- bodyPadding: 1,
- title: sheetInfo.sheetName,
- idSuffix: "JE_EXCEL_DATATEMP" + sheetInfo.sheetIndex,
- funcData: func,
- border: 1,
- columns: sheetInfo.columns
- });
- });
- JE.win({
- title: "数据预处理",
- items: [{
- border: 0,
- xtype: "tabpanel",
- items: items
- }],
- useButton: true,
- autoShow: true,
- fn: function (win) {
- var resObj = JE.ajax({ url: "/develop/excelAction!doPreviewData.action", params: { groupCode: groupCode, temIds: temIds.join(",") } });
- if (resObj.success) {
- JE.msg("数据处理成功");
- grid.store.loadPage(1);
- } else {
- JE.alert(resObj.obj);
- }
- }
- })
- } else {
- JE.msg("导入成功!");
- grid.store.load();
- }
- } else {
- JE.alert(data.message);
- }
- }
- });
- }
复制代码
五、总结(可选)
1、在配置导入时,容易遗忘下拉框或查询选择相应的配置 导致数据不全
2、带入的字段请记得勾选处理带值。
六、关键字
excel数据导入
写几个本帖的关键字,方便用户检索。
|
|