count.js
2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import Store from '../store';
import { getdatabyselectionNoCopy } from './getdata';
import { isRealNull, isRealNum } from './validate';
import { update } from './format';
import locale from '../locale/locale';
//表格计数栏
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 locale_formula = locale().formula;
let ret = "";
ret += "<span>"+locale_formula.count+":" + count + "</span>";
//处理成亿万格式
if (isFinite(max) || isFinite(min)) {
ret += "<span>"+locale_formula.sum+":" + update("w", sum) + "</span>";
ret += "<span>"+locale_formula.average+":" + update("w", Math.round(sum / count * 10000) / 10000) + "</span>";
}
if (isFinite(max)) {
ret += "<span>"+locale_formula.max+":" + update("w", max) + "</span>";
}
if (isFinite(min)) {
ret += "<span>"+locale_formula.min+":" + update("w", min) + "</span>";
}
$("#luckysheet-sta-content").html(ret);
}