卓越在线 |返回单元格公式 - Javascript

Excel Online | Return Cell Formula - Javascript

本文关键字:Javascript 单元格 返回 在线      更新时间:2023-09-26

对于Excel Online,我想获取单元格中包含的公式。

目前,我正在使用getDataAsync((,但它只返回最终结果,而不返回公式:

Office.select('bindings#ObjSelect').getDataAsync({ coercionType: 'matrix', startRow: 0, startCol: 0, rowCount: 1, colCount: 1 }, 
    function (result) {
        console.log(result.value);
});

有没有办法返回公式?

正如Jeeped所提到的,Excel具有本机ISFORMULA和FORMULATEXT函数。您可以创建将显示公式并简单地返回数据的工作器单元格。

//Bind Cells
Office.context.document.bindings.addFromNamedItemAsync("A1:XFD1048576", "matrix", { id: 'objSelect'},function(e){
});
//Set Worker Cell
Office.select('bindings#workerCell').setDataAsync([['=FORMULATEXT('+Cell+')']],
    {startRow: 0, startColumn:99},function (asyncResult){
});
//Get Function
Office.select('bindings#objCell').getDataAsync({ coercionType: 'matrix', startRow: 0, startCol: 99, rowCount: 1, colCount: 1 }, 
        function (result) {
            console.log(result.value[0]);
    });

这将:)排序

您也可以使用range的公式属性,请参阅此处

    Excel.run(function (ctx) {
        var selectedRange = ctx.workbook.getSelectedRange();
        selectedRange.load('formulas'); // IMPORTANT, it tells Excel to load formulas
        return ctx.sync().then(function () {
            var formula = '';
            if (selectedRange.formulas !== undefined)) {
                formula = selectedRange.formulas[0][0];
            }
            if (formula.length > 0) {
                // do something here with the 'formula'
            }
        });
    });