gaoluyang
4 天以前 c2398150b44b54a1f08e7af4b6a64f0c170046f0
src/utils/excelFountion.js
@@ -61,21 +61,18 @@
 */
function AVERAGE(...val) {
  try {
    let num = null;
    let arr = [];
    if (val && val.length > 0) {
      arr = val.filter((item) => item != null && item !== "");
      arr.forEach((item) => {
        num += item;
      });
      if (arr.length > 0) {
        return num / arr.length;
      } else {
        return null;
    // 单元格值经常以字符串形式传入;先展开参数并转成数字,避免
    // `AVERAGE(C3:D3)` 在展开后收到字符串而得到 NaN。
    const values = [];
    const flatten = (items) => items.forEach((item) => {
      if (Array.isArray(item)) return flatten(item);
      if (item !== null && item !== undefined && item !== "" && item !== " ") {
        const number = Number(item);
        if (Number.isFinite(number)) values.push(number);
      }
    } else {
      return null;
    }
    });
    flatten(val);
    return values.length ? values.reduce((sum, item) => sum + item, 0) / values.length : null;
  } catch (error) {}
}
/**