产品一张表luckysheet前端代码库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

72 lines
1.9 KiB

import Store from '../store';
import { getdatabyselectionNoCopy } from './getdata';
import { isRealNull, isRealNum } from './validate';
import { update } from './format';
//表格计数栏
export function countfunc() {
if(Store.luckysheet_select_save.length == 0){
return;
}
let min = Infinity, //最小值
max = -Infinity, //最大值
sum = 0, //求和
count = 0, //计数(非空单元格)
mean = 0; //平均值
for(let s = 0; s < Store.luckysheet_select_save.length; s++){
let data = getdatabyselectionNoCopy(Store.luckysheet_select_save[s]);
for (let r = 0; r < data.length; r++) {
for (let c = 0; c < data[0].length; c++) {
if(isRealNull(data[r][c])){
continue;
}
count++;
if(data[r][c].ct != null && data[r][c].ct.t == "d"){
continue;
}
let value = data[r][c].v;
if(!isRealNum(value)){
continue;
}
value = parseFloat(value);
sum += value;
if(value < min){
min = value;
}
if(value > max){
max = value;
}
}
}
}
let ret = "";
ret += "<span>计数:" + count + "</span>";
//处理成亿万格式
if (isFinite(max) || isFinite(min)) {
ret += "<span>求和:" + update("w", sum) + "</span>";
ret += "<span>平均值:" + update("w", Math.round(sum / count * 10000) / 10000) + "</span>";
}
if (isFinite(max)) {
ret += "<span>最大值:" + update("w", max) + "</span>";
}
if (isFinite(min)) {
ret += "<span>最小值:" + update("w", min) + "</span>";
}
$("#luckysheet-sta-content").html(ret);
}