@baselinelending/xlsx-calc

中文文档
0.9.2发布于 2026/10/23CommonJS零依赖近 30 天下载 2252

A simple xlsx formula calculator.

原始使用文档
 _  _  __    ____  _  _     ___   __   __     ___ 
( \/ )(  )  / ___)( \/ )   / __) / _\ (  )   / __)
 )  ( / (_/\\___ \ )  (   ( (__ /    \/ (_/\( (__ 
(_/\_)\____/(____/(_/\_)   \___)\_/\_/\____/ \___)

Installation

With npm:

npm install xlsx-calc

OR

yarn add xlsx-calc

How to use

Read the workbook with the great js-xlsx lib.

var XLSX = require('xlsx');
var workbook = XLSX.readFile('test.xlsx');

// change some cell value
workbook.Sheets['Sheet1'].A1.v = 42;

// recalc the workbook
var XLSX_CALC = require('xlsx-calc');
XLSX_CALC(workbook);

// recalc options for ignoring erroneous formulas
XLSX_CALC(workbook, { continue_after_error: true, log_error: true })

formulajs integration

npm install --save @formulajs/formulajs

var XLSX_CALC = require('xlsx-calc');

// load your calc functions lib
var formulajs = require('@formulajs/formulajs');

// import your calc functions lib
XLSX_CALC.import_functions(formulajs);

var workbook = {Sheets: {Sheet1: {}}};

// use it
workbook.Sheets.Sheet1.A5 = {f: 'BETA.DIST(2, 8, 10, true, 1, 3)'};
XLSX_CALC(workbook);

// see the result -> 0.6854705810117458
console.log(workbook.Sheets.Sheet1.A5.v);

How to contribute

Read the basic-tests.js.

Run tests

$ npm run test-w

Run webpack

$ npm run dev

write some test like:

//(...)
describe('HELLO', function() {
    it('says: Hello, World!', function() {
        workbook.Sheets['Sheet1'].A1.f = 'HELLO("World")';
        XLSX_CALC(workbook);
        assert.equal(workbook.Sheets['Sheet1'].A1.v, "Hello, World!");
    });
});
//(...)

Register your formula/function in the src/formulas.js file below the commentary "FORMULAS REGISTERED"

  // +---------------------+
  // | FORMULAS REGISTERED |
  // +---------------------+
  var formulas = {
    'FLOOR': Math.floor,
    'COUNTA': counta,
    'IRR': irr,
    'HELLO': hello // <---- Your contribution!!
  };

Write the implementation function below the commentary "THE IMPLEMENTATIONS".

// +---------------------+
// | THE IMPLEMENTATIONS |
// +---------------------+
function hello(name) {
  return name;
}

If everything is OK you will see the mocha out:

  1) XLSX_CALC HELLO says: Hello, World!:

      AssertionError: "World" == "Hello, World!"
      + expected - actual

      -World
      +Hello, World!
      
      at Context.<anonymous> (test/basic-test.js:510:20)

So end with the correct implementation:

// +---------------------+
// | THE IMPLEMENTATIONS |
// +---------------------+
function hello(name) {
  return "Hello, " + name + "!";
}

Now in terminal:

  HELLO
    ✓ says: Hello, World!

  79 passing (75ms)

Give me the balloon watermelon!

Create a pull request

Thx!

Contributors

Made with contributors-img.

MIT LICENSE

Copyright 2017, fabiooshiro

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

版本与发布记录

@baselinelending/xlsx-calc 共发布 7 个版本,首次发布于 2022/12/08;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.9.2latest2026/10/2316 天前
0.9.12026/09/101 个月前
0.9.02023/02/023 年前
0.8.42023/02/023 年前
0.8.32022/12/093 年前
0.8.22022/12/093 年前

关于 @baselinelending/xlsx-calc 的常见问题

@baselinelending/xlsx-calc 是什么?

A simple xlsx formula calculator.

如何安装 @baselinelending/xlsx-calc?

在项目目录运行 npm install @baselinelending/xlsx-calc,或使用 pnpm add / yarn add / bun add。

@baselinelending/xlsx-calc 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/baselinelending__xlsx-calc 是否存在。

@baselinelending/xlsx-calc 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@baselinelending/xlsx-calc 可以商用吗?

@baselinelending/xlsx-calc 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@baselinelending/xlsx-calc 的下载量有多少?

根据 npm 官方下载统计,@baselinelending/xlsx-calc 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,252 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@baselinelending/xlsx-calc 还在维护吗?

最新版本 0.9.2 发布于 2026/10/23(16 天前);至今共发布 7 个版本,其中过去 12 个月发布了 2 个;首次发布于 2022/12/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。