是否有一种API方法与人们可能期望的名为sheet.getRange().getValuesOrFormulas()
的方法相同?那是(伪代码):
for each cell in the range
if(cell.getFormula() != '')
cell.getFormula();
else cell.getValue()
如果没有,是否有人有他们愿意分享的自定义功能?
答案 0 :(得分:4)
不,没有办法解决这个问题。
我不知道你会对此做什么,也不知道它有什么用处(因为没有方法可以立即设置)。无论如何,这里是使用公式和范围值填充数组的代码。
function valuesAndFormulas() {
var range = SpreadsheetApp.getActiveSheet().getDataRange();
var formulas = range.getFormulas();
var values = range.getValues();
var merge = new Array(formulas.length);
for( var i in formulas ) {
merge[i] = new Array(formulas[i].length);
for( var j in formulas[i] )
merge[i][j] = formulas[i][j] !== '' ? formulas[i][j] : values[i][j];
}
//now do something with it
Logger.log(merge);
}