嗨,我正在使用以下脚本从另一个Google表格导入数据,但是它没有引入我需要的公式,我尝试了ImportRange,但这似乎只是同步了两个表格,因此我需要删除原始工作表(工作表1)中的数据但也将其删除(我购买的工作表(主工作表)中的数据),还有另一种方法可以完成此操作,谢谢。
function Copy() {
var sss = SpreadsheetApp.openById('Sheet 1 ID');
var ss = sss.getSheetByName('results');
var range = ss.getRange('2:688');
var data = range.getValues();
var tss = SpreadsheetApp.openById('Master Sheet ID');
var ts = tss.getSheetByName('results');
ts.getRange(ts.getLastRow() + 1, 1, data.length, data[0].length).setValues(
data
);
var sheet = SpreadsheetApp.openById('Sheet 1 ID').getSheetByName('Roger');
ss.getRange('2:688').clearContent();
}
答案 0 :(得分:1)
getValues()
检索公式range#getFormulas
和range#getValues
并混合这两个数组以创建一个公式和值数组,供以后setValues()
使用。 var data = range.getValues();
data = range.getFormulas().map(function(e, i) {//i=index of row(e)
return e.map(function(f, j) {//j = index of column(f)
return f === "" ? data[i][j] : f;
});
});
或
var req = {
ranges: 'results!2:688',
valueRenderOption: 'FORMULA', //get formulas with values
};
var r = Sheets.Spreadsheets.Values.batchGet('Sheet 1 ID', req);
data = r.valueRanges[0].values;