Excel Online | 返回单元格公式 – Javascript

对于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和FORMULATEXTfunction。 您可以创build将显示公式并简单地返回数据的工作单元。

 //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]); }); 

这将sorting:)

你也可以使用范围的公式属性,参考这里

  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' } }); });