Commit abee1c35 authored by xiangjiaojunxp's avatar xiangjiaojunxp

六矿汇总excel转换

parent a7207d35
......@@ -38,7 +38,7 @@
name="file"
ref="upload"
:before-upload="handleFileChange"
action=''
action='https://jsonplaceholder.typicode.com/posts'
:limit="1"
:file-list="fileList"
:disabled="disableNextButton"
......@@ -70,6 +70,7 @@ import { exportExcel } from '../../../../public/exportExcel';
var fileName="新建XLSX工作表"; //定义表名
var rule=[];
var tempId;
export default {
name: "Mymodule",
data() {
......@@ -117,6 +118,7 @@ export default {
this.disableNextButton = this.selectedRule === '';
//根据选中的下拉选项值获取相应的信息
getSuppliesTemplate(this.selectedOption).then(response => {
tempId= this.selectedOption;
const sysSupplies = response.rows;
this.luckysheetData = sysSupplies[0].templateContent;
//将接收到的json存到json_data中
......@@ -140,6 +142,7 @@ export default {
this.$message.error('查询失败,发生未知错误!');
});
},
/** 规则下拉选 调佣后端的方法*/
handleRuleChange(){
if (this.selectedOption==='') {
this.selectedRule='';
......@@ -246,8 +249,6 @@ export default {
type: "warning"});
return
}
LuckyExcel.transformExcelToLucky(
evt,
function(exportJson) {
......@@ -259,12 +260,11 @@ export default {
return
}
console.log("导入数据的规则是:"+rule);
console.log("导入数据的规则是:"+tempId);
let sysRulez;
let sysRules;
let value=[];
let map=new Map();
//获取物料转换的规则
//
//获取规则 sysRulez是物料转换 sysRules是数据汇总规则 13
for(let i=0;i<rule.length;i++){
if (rule[i].convertStatus==1){
sysRulez = JSON.parse(rule[i].detailContent);
......@@ -275,6 +275,7 @@ export default {
}
//获取物料转换的sheet表
let data=window.luckysheet.transToData(exportJson.sheets[sysRulez[0].se].celldata);
//获取物料转换中导入表的列,用来获取物料名
let key_i=sysRulez[0].ce;
//获取物料转换的数据
for (let i=0;i<sysRules.length;i++){
......@@ -282,61 +283,350 @@ export default {
value.push(sysRules[i].ce);
}
console.log("value的值为:"+value);
let smallMat=[];
for(let i=2;i<data.length;i++){
if(data[i][key_i]!=null){
let num=data[i][key_i].m;
smallMat.push(num);
}else{
smallMat.push(null);
switch (tempId){
case 2:
{
let department=['原煤','洗煤厂'];
for(let j=0;j<department.length;j++){
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("走到这了,物料转换后续处理出问题了!!");
});
}
}
}
console.log(smallMat);
materialConvert(smallMat).then(response => {
let array = response.rows;
console.log(array);
//luckysheet.setCellValue(12, 1, {bg:"#FF0000"})
for (let i =2; 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);
break;
case 6:
{
let department=['二掘区','后勤服务二科','后勤服务一科','机电科','井运区','救护队','开拓区','开运区','通风区','通讯管理科','物资管理科','巷修区','一掘区','准备区','综二区','综一区','钻探区'];
//加个费用循环
for(let j=0;j<department.length;j++){
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][1].m==department[j]){
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);
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));
}
break;
case 1:
{
let map=new Map();
let smallMat=[];
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("走到这了,物料转换后续处理出问题了!!");
});
}
//循环得到汇总结果
console.log(map);
let rowws;
for(let i=0;i<sysRules.length;i++){
map.forEach((value, key) => {
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"
}});
break;
default :
{
let map=new Map();
let smallMat=[];
for(let i=parseFloat(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);
}
}
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
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