#google-apps-script
Вопрос:
Я ищу значение в электронной таблице Google, чтобы получить его строку. Он работал в простой версии, но по какой-то причине сейчас вообще не может найти диапазон. Я проверил, есть ли значения, но по какой-то причине getRange("course")
не могу их найти.
Таким образом, вы можете видеть, что текст «курс» находится в массиве. Почему он не показывает свой номер строки?
function myFunction() {
// get IDs
var docTemplateID = "1R9qfWw2zwyseIgBiNonHJPArHCN6cbs50JPMQ7lUFiA";
var docOutputID = "1Yk49ZE0IQRjz5hP7zqm-aSy8Ph6r8N3Fole9lKqQUro";
var wsID = "1D-ahdZJGo66g6VbUYkWmC8nk7xNroXa-Fty-7jUIBV0";
// Open docs
var docTemplate = DocumentApp.openById(docTemplateID);
var docFinal = DocumentApp.openById(docOutputID);
// Open sheet in spreadsheet
var ws = SpreadsheetApp.openById(wsID).getSheetByName("AdPhoto4_2");
// Put values in array
var data = ws.getDataRange().getValues();
Logger.log(data);
//find column by name
var mainInfo = data[0].indexOf("info");
var assTask = data[0].indexOf("assTask");
// get main info
var rCourse = ws.getRange('course').getRow(); //ERROR STARTS HERE
var myCourse = data[rCourse][mainInfo];
var rUnits = ws.getRange("units").getRow();
var myUnits = data[rUnits][mainInfo];
var rYear = ws.getRange("year").getRow();
var myYear = data[rYear][mainInfo];
var rPrepname = ws.getRange("prepname").getRow();
var myPrepname = data[rPrepname][mainInfo];
var rDatecreated = ws.getRange("datecreated").getRow();
var myDatecreated = data[rDatecreated][mainInfo];
var rVersion = ws.getRange("version").getRow();
var myVersion = data[rVersion][mainInfo];
var rIntro = ws.getRange("intro").getRow();
var myIntro = data[rIntro][mainInfo];
var rStaff1 = ws.getRange("staff1").getRow();
var myStaff1 = data[rStaff1][mainInfo];
var rStaff2 = ws.getRange("staff2").getRow();
var myStaff2 = data[rStaff2][mainInfo];
// find how many paragraphs in template
var templateP = docTemplate.getBody().getParagraphs();
// clear doc before adding text
docFinal.getBody().clear();
// apply merge
myMerge(myCourse, myUnits, myYear, myPrepname, myDatecreated, myVersion, myIntro, myStaff1, myStaff2);
}
// function to add text and replace with values
function myMerge(myCourse, myUnits, myYear, myPrepname, myDatecreated, myVersion, myIntro, myStaff1, myStaff2) {
templateP.forEach(function(p) {
docFinal.getBody().appendParagraph(
p
.copy()
.replaceText("{course}", myCourse)
.replaceText("{units}", myUnits)
.replaceText("{year}", myYear)
.replaceText("{prepname}", myPrepname)
.replaceText("{datecreated}", myDatecreated)
.replaceText("{version}", myVersion)
.replaceText("{staff1}", myStaff1)
.replaceText("{staff1}", myStaff2)
)
});
}
Комментарии:
1. Вы используете именованный диапазон, чтобы получить диапазон, в котором находится ошибка?