Commit 677768a9 by chenjinjing

no message

parent fce2ea1b
...@@ -116,10 +116,10 @@ export function planarArrBecomeListData(dataList, titleInY = false) { ...@@ -116,10 +116,10 @@ export function planarArrBecomeListData(dataList, titleInY = false) {
if (!titleInY) { if (!titleInY) {
let dataTitle = dataList[0]; let dataTitle = dataList[0];
for (let y = 1; y < dataList.length; y++) { for (let y = 1; y < dataList.length; y++) {
let subValue = dataList[y]; let subValueList = dataList[y];
for (let x = 0; x < subValue.length; x++){ for (let x = 0; x < subValueList.length; x++){
let value = subValue[x]; let value = subValueList[x];
let key = dataTitle[x]; let key = dataTitle[x];
if ( !result[x] ) result[x].push({key, values:[] }); if ( !result[x] ) result[x].push({key, values:[] });
result[x].values.push(value); result[x].values.push(value);
...@@ -128,10 +128,10 @@ export function planarArrBecomeListData(dataList, titleInY = false) { ...@@ -128,10 +128,10 @@ export function planarArrBecomeListData(dataList, titleInY = false) {
} else { } else {
for (let y = 0; y < dataList.length; y++) { for (let y = 0; y < dataList.length; y++) {
let subValue = dataList[y]; let subValueList = dataList[y];
result.push({ result.push({
key:subValue[0], key:subValueList[0],
values:subValue.slice(1, subValue.length) values:subValueList.slice(1, subValueList.length)
}) })
} }
} }
...@@ -140,18 +140,73 @@ export function planarArrBecomeListData(dataList, titleInY = false) { ...@@ -140,18 +140,73 @@ export function planarArrBecomeListData(dataList, titleInY = false) {
} }
/**
* analysisExcelDataOfList 将excel解出来的数据块按需求解析成可用数据
* @param dataList excel解出来的数据 [[x, y, name], [x值, y值, name值], [x, y, name], [x, y, name]] or
* [[x, a的x, b的x, c的x], [y, a的y, b的y, c的y ], [name, a的name, b的name, c的name] ]
* @param titleInY 第一个表头数据是否横向排列
* @returns 返回 [{x:a的x, y:a的y, name:a的name}, {x:b的x, y:b的y, name:b的name}, {x:c的x, y:c的y, name:c的name} ]
*/
export function analysisExcelDataOfList(dataList, titleInY = true) {
let result = [];
if (!titleInY) {//在y轴上排列
for (let i = 1; i < dataList.length; i++) {
let itemList = dataList[i];//[1,5,"测试数据"]
let x = itemList[0];
let y = itemList[1];
let name = itemList[2] || "";
if (isNaN(x) || isNaN(y) ) continue;
result.push({ x, y, name});
}
} else {
for (let i = 0; i < dataList.length; i++) {
let list = [];
let subList = dataList[i]; //[x, a的x, b的x, c的x]
let keys = subList[0]; //x
for (let x = 1; x < subList.length; x++){
let itemList = {};
let addInfo:any = {};
addInfo[keys] = keys; //x
itemList[addInfo[keys]] = subList[x]; //a的x, b的x
list.push(itemList);
}
result.push(list);
}
}
return result;
}
export function analysisExcelDataOfStringList(dataList) {
let result = [];
for (let i = 0; i < dataList.length; i++) {
if (!i) continue;
let subList = dataList[i];
result.push(subList[1]);
}
return result;
}
//==================================================================================================
/** /**
* analysisExcelDataOfMoreObject 将excel解出来的数据块按需求解析成可用数据 * analysisExcelDataOfMoreObject 将excel解出来的数据块按需求解析成可用数据
* @param dataList excel解出来的数据 * @param dataList excel解出来的数据
* @param isJumpTitle 是否跳过解析表头 * @param isJumpTitle 是否跳过解析表头
* @param headerInx 第一个表头数据是否横向排列 * @param headerInx 第一个表头数据是否横向排列
* @returns 返回 {"第一个表头数据":{"表头数据":值...} } * @returns 返回 {"第一个表头数据":{"表头数据":值...} }
*/ */
export function analysisExcelDataOfMoreObject(dataList, headerInx?) { export function analysisExcelDataOfMoreObject(dataList, titleInY = false) {
let result = {}; let result = {};
let titleList = dataList[0]; let titleList = dataList[0];
if (!headerInx) { if (!titleInY) {
for (let y =1; y < dataList.length; y++) { for (let y =1; y < dataList.length; y++) {
let dataTitle = dataList[y][0]; let dataTitle = dataList[y][0];
let thisData = {}; let thisData = {};
...@@ -181,65 +236,3 @@ export function planarArrBecomeListData(dataList, titleInY = false) { ...@@ -181,65 +236,3 @@ export function planarArrBecomeListData(dataList, titleInY = false) {
return result; return result;
} }
/**
* analysisExcelDataOfList 将excel解出来的数据块按需求解析成可用数据
* @param dataList excel解出来的数据
* @param keyObject 对应关系 {dataList表头名称: 英文}
* @param headerInx 第一个表头数据是否横向排列
* @returns 返回 {"第一个表头数据":{"表头数据":值...} }
*/
export function analysisExcelDataOfList(dataList, keyObject, headerInx?) {
let result = [];
if (!headerInx) {//在y轴上排列
let titleList = dataList[0];
let indexKeyNameMap = {};
titleList.forEach( (info, index) => {
indexKeyNameMap[index + 1] = info;
});
for (let i = 1; i < dataList.length; i++) {
let onceInfo = {};
let subList = dataList[i];
subList.forEach( (info, index) => {
let key = indexKeyNameMap[index + 1];
let checkKey = keyObject[key];
onceInfo[checkKey] = info;
});
result.push(onceInfo);
}
} else {//在x轴上排列
let indexKeyNameMap = {};
dataList.forEach( (info, index) => {
indexKeyNameMap[index + 1] = info[0];
});
let dataMap = {};
for(let y = 0; y < dataList.length; y++) {
let xList = dataList[y];
for (let x = 1; x < xList.length; x++) {
if (!dataMap[x]) dataMap[x] = {};
let key = indexKeyNameMap[y + 1];
let checkKey = keyObject[key];
dataMap[x][checkKey] = xList[x];
}
}
result = Object.values(dataMap);
}
return result;
}
export function analysisExcelDataOfStringList(dataList) {
let result = [];
for (let i = 0; i < dataList.length; i++) {
if (!i) continue;
let subList = dataList[i];
result.push(subList[1]);
}
return result;
}
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