Ценю любую помощь, которую я могу получить по этому вопросу.
Я использую сценарий для автоматической отправки содержимого из электронной таблицы в документ как своего рода слияние супер-почты.С изменением текста в документе проблем нет, но заставить вести себя таблицы в документе оказалось сложнее.
Каждая таблица в документе связана с электронной таблицей.Что я пытаюсь сделать с ограниченным везением, это одно из следующих действий:
- Измените исходную таблицу в документе с одной электронной таблицы на другую, затем обновите все значения.
- Обновите все исходные таблицы в документе, затем отмените связь с источником.
- Непосредственное копирование диапазонов из электронной таблицы в документ.
Мне не повезло, поэтомудалеко.Код ниже, где я до.атрибут getLinkUrl()
возвращает ноль для каждой таблицы, найденной в документе.Любые указатели будут оценены.
function updateTables(documentID,spreadsheetID){
var ui = SpreadsheetApp.getUi();
//Check if input was passed
if(documentID === undefined){
var documentURL = ui.prompt('Table Update Module','Please enter the url of the document you wish to update tables on.', ui.ButtonSet.OK_CANCEL);
//Check for cancel
if(documentURL.getSelectedButton() == ui.Button.OK){
documentID = getIdFromUrl(documentURL.getResponseText());
}else{
Logger.log('Exit when asked for document URL.');
return;}
}
Logger.log('Replacement document ID: ' + documentID);
//Check if input was passed
if(spreadsheetID === undefined){
var spreadsheetURL = ui.prompt('Table Update Module','Please enter the url of the spreadsheet you wish to get the tables from.', ui.ButtonSet.OK_CANCEL);
//Check for cancel
if(spreadsheetURL.getSelectedButton() == ui.Button.OK){
spreadsheetID = getIdFromUrl(spreadsheetURL.getResponseText());
}else{
Logger.log('Exit when asked for spreadsheet URL.');
return;}
}
Logger.log('Replacement spreadsheet ID: ' + spreadsheetID);
//Get tables
var documentTables = DocumentApp.openById(documentID).getBody().getTables();
//Loop through tables
for(var i = 0; i < documentTables.length; ++i){
Logger.log('Table URL: ' + documentTables[i].getLinkUrl());
}
}