Commit abee1c35 authored by xiangjiaojunxp's avatar xiangjiaojunxp

六矿汇总excel转换

parent a7207d35
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
name="file" name="file"
ref="upload" ref="upload"
:before-upload="handleFileChange" :before-upload="handleFileChange"
action='' action='https://jsonplaceholder.typicode.com/posts'
:limit="1" :limit="1"
:file-list="fileList" :file-list="fileList"
:disabled="disableNextButton" :disabled="disableNextButton"
...@@ -70,6 +70,7 @@ import { exportExcel } from '../../../../public/exportExcel'; ...@@ -70,6 +70,7 @@ import { exportExcel } from '../../../../public/exportExcel';
var fileName="新建XLSX工作表"; //定义表名 var fileName="新建XLSX工作表"; //定义表名
var rule=[]; var rule=[];
var tempId;
export default { export default {
name: "Mymodule", name: "Mymodule",
data() { data() {
...@@ -117,6 +118,7 @@ export default { ...@@ -117,6 +118,7 @@ export default {
this.disableNextButton = this.selectedRule === ''; this.disableNextButton = this.selectedRule === '';
//根据选中的下拉选项值获取相应的信息 //根据选中的下拉选项值获取相应的信息
getSuppliesTemplate(this.selectedOption).then(response => { getSuppliesTemplate(this.selectedOption).then(response => {
tempId= this.selectedOption;
const sysSupplies = response.rows; const sysSupplies = response.rows;
this.luckysheetData = sysSupplies[0].templateContent; this.luckysheetData = sysSupplies[0].templateContent;
//将接收到的json存到json_data中 //将接收到的json存到json_data中
...@@ -140,6 +142,7 @@ export default { ...@@ -140,6 +142,7 @@ export default {
this.$message.error('查询失败,发生未知错误!'); this.$message.error('查询失败,发生未知错误!');
}); });
}, },
/** 规则下拉选 调佣后端的方法*/
handleRuleChange(){ handleRuleChange(){
if (this.selectedOption==='') { if (this.selectedOption==='') {
this.selectedRule=''; this.selectedRule='';
...@@ -246,8 +249,6 @@ export default { ...@@ -246,8 +249,6 @@ export default {
type: "warning"}); type: "warning"});
return return
} }
LuckyExcel.transformExcelToLucky( LuckyExcel.transformExcelToLucky(
evt, evt,
function(exportJson) { function(exportJson) {
...@@ -259,12 +260,11 @@ export default { ...@@ -259,12 +260,11 @@ export default {
return return
} }
console.log("导入数据的规则是:"+rule); console.log("导入数据的规则是:"+rule);
console.log("导入数据的规则是:"+tempId);
let sysRulez; let sysRulez;
let sysRules; let sysRules;
let value=[]; let value=[];
let map=new Map(); //获取规则 sysRulez是物料转换 sysRules是数据汇总规则 13
//获取物料转换的规则
//
for(let i=0;i<rule.length;i++){ for(let i=0;i<rule.length;i++){
if (rule[i].convertStatus==1){ if (rule[i].convertStatus==1){
sysRulez = JSON.parse(rule[i].detailContent); sysRulez = JSON.parse(rule[i].detailContent);
...@@ -275,6 +275,7 @@ export default { ...@@ -275,6 +275,7 @@ export default {
} }
//获取物料转换的sheet表 //获取物料转换的sheet表
let data=window.luckysheet.transToData(exportJson.sheets[sysRulez[0].se].celldata); let data=window.luckysheet.transToData(exportJson.sheets[sysRulez[0].se].celldata);
//获取物料转换中导入表的列,用来获取物料名
let key_i=sysRulez[0].ce; let key_i=sysRulez[0].ce;
//获取物料转换的数据 //获取物料转换的数据
for (let i=0;i<sysRules.length;i++){ for (let i=0;i<sysRules.length;i++){
...@@ -282,61 +283,350 @@ export default { ...@@ -282,61 +283,350 @@ export default {
value.push(sysRules[i].ce); value.push(sysRules[i].ce);
} }
console.log("value的值为:"+value); console.log("value的值为:"+value);
let smallMat=[]; switch (tempId){
for(let i=2;i<data.length;i++){
if(data[i][key_i]!=null){ case 2:
let num=data[i][key_i].m; {
smallMat.push(num); let department=['原煤','洗煤厂'];
}else{ for(let j=0;j<department.length;j++){
smallMat.push(null); let map=new Map();
let smallMat=[];
for(let i=parseFloat(sysRulez[0].re)+1;i<data.length;i++){
if(data[i][key_i]!=null && data[i][13].m==department[j]){
let num=data[i][key_i].m;
smallMat.push(num);
}else{
smallMat.push(null);
}
}
console.log(smallMat);
materialConvert(smallMat).then(response => {
let array = response.rows;
console.log(array);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i =parseFloat(sysRulez[0].re)+1; i < data.length; i++) {
let values = [];
if(data[i][13]!=null && data[i][13].m==department[j] && data[i][key_i]!=null){
for(let j=0;j<value.length;j++) {
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}
//插入多个value的值
let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i=0;i<values.length;i++){
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
//循环得到汇总结果
console.log(map);
let cells;
for(let i=0;i<sysRules.length;i++){
map.forEach((value, key) => {
let searchResult = luckysheet.find(key);
if(searchResult.length!=0 && key!=null){
cells=searchResult[0].column;
luckysheet.setCellValue(parseFloat(sysRules[i].rt)+j, cells,value[i]);
luckysheet.setCellValue(parseFloat(sysRules[i].rt)+j, cells,{"ct": {
"fa": "General",
"t": "n"
}});
}
});
}
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
console.log("走到这了,物料转换后续处理出问题了!!");
});
}
} }
} break;
console.log(smallMat); case 6:
materialConvert(smallMat).then(response => { {
let array = response.rows; let department=['二掘区','后勤服务二科','后勤服务一科','机电科','井运区','救护队','开拓区','开运区','通风区','通讯管理科','物资管理科','巷修区','一掘区','准备区','综二区','综一区','钻探区'];
console.log(array); //加个费用循环
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"}) for(let j=0;j<department.length;j++){
for (let i =2; i < data.length; i++) { let map=new Map();
let values = []; let smallMat=[];
if(data[i][key_i]!=null){ for(let i=parseFloat(sysRulez[0].re)+1;i<data.length;i++){
for(let j=0;j<value.length;j++) {
let a = parseFloat(data[i][value[j]].v); if(data[i][key_i]!=null && data[i][1].m==department[j]){
values.push(a); let num=data[i][key_i].m;
smallMat.push(num);
}else{
smallMat.push(null);
}
} }
}else{
break; console.log(smallMat);
materialConvert(smallMat).then(response => {
let array = response.rows;
console.log(array);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i =parseFloat(sysRulez[0].re)+1; i < data.length; i++) {
let values = [];
if(data[i][1]!=null && data[i][1].m==department[j] && data[i][key_i]!=null){
for(let j=0;j<value.length;j++) {
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}
//插入多个value的值
let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i=0;i<values.length;i++){
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
//循环得到汇总结果
console.log(map);
let cells;
for(let i=0;i<sysRules.length;i++){
map.forEach((value, key) => {
let searchResult = luckysheet.find(key);
if(searchResult.length!=0 && key!=null){
cells=luckysheet.find(key)[0].column;
luckysheet.setCellValue(parseFloat(sysRules[i].rt)+j, cells,value[i]);
luckysheet.setCellValue(parseFloat(sysRules[i].rt)+j, cells,{"ct": {
"fa": "General",
"t": "n"
}});
}
});
}
});
} }
//插入多个value的值 }
let index = smallMat.indexOf(data[i][key_i].m); break;
let key = array[index]; case 1:
if (map.has(key)) { {
let oldValues = map.get(key); let map=new Map();
for (let i=0;i<values.length;i++){ let smallMat=[];
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2)); for(let i=parseInt(sysRulez[0].re)+1;i<data.length;i++){
if(data[i][key_i]!=null){
let num=data[i][key_i].m;
smallMat.push(num);
}else{
smallMat.push(null);
}
}
for(let j=0;j<value.length;j++){
if(data[sysRulez[0].re][value[j]]!=null){
let num=data[sysRulez[0].re][value[j]].m;
smallMat.push(num);
}else{
smallMat.push(null);
} }
map.set(key, values);
} else {
map.set(key, values);
} }
//console.log(smallMat);
materialConvert(smallMat).then(response => {
let array = response.rows;
//console.log(array);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i =parseInt(sysRulez[0].re)+1; i < data.length; i++) {
let values = [];
if(data[i][key_i]!=null){
for(let j=0;j<value.length;j++) {
let a = parseFloat(data[i][value[j]].v);
if (isNaN(a)){
a=0;
}
values.push(a);
}
}else{
break;
}
//插入多个value的值
let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i=0;i<values.length;i++){
values[i] = parseFloat(parseFloat(parseFloat(values[i]) + parseFloat(oldValues[i])).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
//循环得到汇总结果
console.log(map);
let rowws;
let row;
let con;
for(let i=0;i<sysRules.length;i++){
map.forEach((value, key) => {
let matchingCells = [];
let name = data[sysRules[i].re][sysRules[i].ce].m
if (name.includes("洗煤")){
row = sysRules[i].rt;
con = parseInt(sysRules[i].rt)+10;
}else {
row = sysRules[i].rt;
con = 54;
}
for ( ; row <=con ; row++) {
let cellValue = luckysheet.getCellValue(row, parseInt(sysRulez[0].ct));
if (cellValue===null){
}else {
if (cellValue.includes(key)) {
luckysheet.setCellValue(row, sysRules[i].ct, value[i]);
luckysheet.setCellValue(row, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});
break;
}
}
}
// if (luckysheet.find(key).length>0) {
//
// rowws = luckysheet.find(key)[0].row; // rowws=luckysheet.find(key)[0].row;
// luckysheet.setCellValue(rowws, sysRules[i].ct, value[i]);
// luckysheet.setCellValue(rowws, sysRules[i].ct, {
// "ct": {
// "fa": "General",
// "t": "n"
// }
// });
// }
});
}
// debugger
// let value2 =[];
//
// for (let i=0;i<sysConver.length;i++){
// //value.push(data[sysRules[i].re][sysRules[i].ce].m);
//
// value2.push(sysConver[i].ce);
// }
//
// for (let i =parseInt(sysRulez[0].re)+1; i < data.length; i++) {
// let values2 = [];
// if(data[i][key_i]!=null){
// for(let j=0;j<value2.length;j++) {
// let a = parseFloat(data[i][value2[j]].v);
// if (isNaN(a)){
// a=0;
// }
// values2.push(a);
// }
// }else{
// break;
// }
// //插入多个value的值
// let index = smallMat.indexOf(data[i][key_i].m);
// let key = array[index];
// if (map.has(key)) {
// let oldValues = map.get(key);
// for (let i=0;i<values2.length;i++){
// values2[i] = parseFloat(parseFloat(parseFloat(values2[i]) + parseFloat(oldValues[i])).toFixed(2));
// }
// map.set(key, values2);
// } else {
// map.set(key, values2);
// }
// }
}).catch(() => {
// 处理错误逻辑,这里是一个空的错误处理函数
console.log("走到这了,物料转换后续处理出问题了!!");
});
} }
//循环得到汇总结果 break;
console.log(map); default :
let rowws; {
for(let i=0;i<sysRules.length;i++){ let map=new Map();
map.forEach((value, key) => { let smallMat=[];
rowws=luckysheet.find(key)[0].row; for(let i=parseFloat(sysRulez[0].re)+1;i<data.length;i++){
luckysheet.setCellValue(rowws, sysRules[i].ct,value[i]); if(data[i][key_i]!=null){
luckysheet.setCellValue(rowws, sysRules[i].ct,{"ct": { let num=data[i][key_i].m;
"fa": "General", smallMat.push(num);
"t": "n" }else{
}}); smallMat.push(null);
}
}
materialConvert(smallMat).then(response => {
let array = response.rows;
for (let i =parseFloat(sysRulez[0].re)+1; i < data.length; i++) {
let values = [];
if(data[i][key_i]!=null){
for(let j=0;j<value.length;j++) {
let a = parseFloat(data[i][value[j]].v);
values.push(a);
}
//插入多个value的值
let index = smallMat.indexOf(data[i][key_i].m);
let key = array[index];
if (map.has(key)) {
let oldValues = map.get(key);
for (let i=0;i<values.length;i++){
values[i] = parseFloat(parseFloat(values[i] + oldValues[i]).toFixed(2));
}
map.set(key, values);
} else {
map.set(key, values);
}
}
}
//循环得到汇总结果
debugger
console.log(map);
let rowws;
for(let i=0;i<sysRules.length;i++){
map.forEach((value, key) => {
let searchResult = luckysheet.find(key);
if(searchResult.length!=0 && key!=null){
rowws=searchResult[0].row;
luckysheet.setCellValue(rowws, sysRules[i].ct, value[i]);
luckysheet.setCellValue(rowws, sysRules[i].ct, {
"ct": {
"fa": "General",
"t": "n"
}
});
}
});
}
}); });
} }
}).catch(() => { }
// 处理错误逻辑,这里是一个空的错误处理函数
console.log("走到这了,物料转换后续处理出问题了!!");
this.$message.error('文件导入失败!发生未知错误,请重试!!');
});
//切换到想要的sheet //切换到想要的sheet
luckysheet.setSheetActive(0); luckysheet.setSheetActive(0);
}) })
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment