#google-apps-script
#google-apps-script
Вопрос:
я должен скопировать свой лист из file1 (16aWONG-TyHYxYFYqfDI7Pw2PVuNvDQ0cnFoIv_SDA4U) в file2 (1zieqvquc7rl xy9sb—SaNaEXKT399NvffM3F3nfAXGs) у меня есть этот скрипт, но он не сработал, я не знаю, куда поместить fromfile
function getdata() {
var files = DriveApp.getFileById("1zIeqvQuC7RlXy9SB--SaNaEXKT399NvffM3F3nfAXGs").getFiles()
while (files.hasNext()) {
var file = files.next();
var shoot = SpreadsheetApp.openById(file.getId());
var sourcesheet = SpreadsheetApp.getActive().getSheetByName("BahanMix");
var sourcerange = sourcesheet.getRange('A:D');
var sourcevalues = sourcerange.getValues();
var destsheet = shoot.getSheetByName('Sheet23');
var destrange = destsheet.getRange('A:D');
destrange.setValues(sourcevalues);
}
}
Ответ №1:
Я бы придерживался spreadsheet app
варианта использования диска в качестве исходного кода. Я думаю, вы можете получить то, что хотите, с помощью приведенного ниже кода. Я включил проверку, чтобы убедиться, что количество строк одинаковое.
function getDate() {
var fromFile = SpreadsheetApp.openById("16aWONG-TyHYxYFYqfDI7Pw2PVuNvDQ0cnFoIv_SDA4U");
var targetFile = SpreadsheetApp.openById("1zIeqvQuC7RlXy9SB--SaNaEXKT399NvffM3F3nfAXGs");
var sourcesheet = fromFile.getSheetByName("BahanMix");
var sourcerange = sourcesheet.getRange('A:D');
var sourcevalues = sourcerange.getValues();
var destsheet = targetFile.getSheetByName('Sheet23');
var destrange = destsheet.getRange('A:D');
//make sure the same number or rows exist
if (destsheet.getMaxRows()!= sourcesheet.getMaxRows()){
Browser.msgBox("Row MisMatch. Destination has "
destsheet.getMaxRows() " rows while source has "
sourcesheet.getMaxRows()) " rows."
}else{
destrange.setValues(sourcevalues);
}
}
Комментарии:
1. Привет, спасибо за помощь, он выдает небольшую ошибку, что количество строк должно быть точно таким же. Как насчет того, чтобы он не смотрел на длину строки?
2. К сожалению, если вы добавляете в Google таблицы более одного значения, вам необходимо указать точное количество строк и столбцов. Спасибо, что согласились.
Ответ №2:
Поскольку вы используете getActive()
свой скрипт, он привязан к вашей исходной электронной таблице, поэтому SpreadsheetApp
его можно использовать непосредственно для открытия файлов.
function getdata() {
var shoot = SpreadsheetApp.openById("1zIeqvQuC7RlXy9SB--SaNaEXKT399NvffM3F3nfAXGs");
var sourcesheet = SpreadsheetApp.getActive().getSheetByName("BahanMix");
var sourcerange = sourcesheet.getRange('A:D');
var sourcevalues = sourcerange.getValues();
var destsheet = shoot.getSheetByName('Sheet23');
var destrange = destsheet.getRange('A:D');
destrange.setValues(sourcevalues);
}