Так как формула importrange не справляется, я использую этот скрипт, но он полностью зависит от количества строк в первичном документе (то есть я не могу сделать импорт, пока мое количество строк не совпадет). Файл из которого берутся данные динамический и строки меняются, каждый раз приходится вручную менять количество строк. Подскажите, как импортировать данные независимо от количества строк? А как импортировать не только в ячейку А1? А например в ячейке B2?
// source document
var sss = SpreadsheetApp.openById('sId');
// source sheet
var ss = sss.getSheetByName('name');
// Get data range
var SRange = ss.getRange("A:H");
// Copy to cell. In this case (A1)
var A1Range = SRange.getA1Notation();
// get data values in range
var SData = SRange.getValues();
// Target table. Where to unload
var tss = SpreadsheetApp.openById('tid');
// Destination sheet. Where to import
var ts = tss.getSheetByName('name');
// Clear the range before copying.
ts.getRange("A:H").clearContent();
// Copy to cell. In this case (A1)
ts.getRange(A1Range).setValues(SData);
}
Ох, извините... сделано)
Вы можете попробовать что-то вроде этого:
function copyMyData(sid,tid,sname,tname,row,col,rows,cols) {
var sid=sid || 'default-sid';
var tid=tid || 'default-tid';
var sname=sname || 'Sheet1';
var tname=tname || 'Sheet2';
var ss=SpreadsheetApp.openById(sid);
var sh=ss.getSheetByName(sname);
var row=row || 1;
var col=col || 1;
var rows=rows || sh.getLastRow()-row+1;
var cols=cols || sh.getLastColumn()-col+1;
if (sid && tid && sname && tname && row && col && rows && cols) {
var rg=sh.getRange(row,col,rows,cols);
var tss=SpreadsheetApp.openById(tid);
var tsh=tss.getSheetByName(tname);
//tsh.getRange(rg.getA1Notation()).clearContent();
tsh.clearContents();//you might want to clear the entire sheet
tsh.getRange(rg.getA1Notation()).setValues(rg.getValues());
}
}
Я использовал это, чтобы проверить это немного.
function tstCopyMyData() {
copyMyData(null,null,null,null,5,3,null,null);
}
Спасибо большое. Это то, что мне нужно :) :) Вы меня спасли))))) Спасибо большое )
Привет, вопросы только на английском разрешены, попробуйте перевести на английский.