#google-apps-script #google-sheets
#google-приложения-скрипт #google-sheets
Вопрос:
У меня есть встроенная диаграмма на листе, и я перемещаю диаграмму на другой лист (который создается не мной, а кодом) с помощью метода moveChartToObjectSheet:
var charts = chartsSheet.getCharts()
for (var i in charts) {
var chart = charts[i];
var objectSheet = SpreadsheetApp.getActive().moveChartToObjectSheet(chart)
Но я не могу активировать эту таблицу объектов. После перемещения диаграммы я зацикливаю все листы и получаю положение листа объектов в цикле, или я получаю индекс листа и вызываю метод .activate, но этот лист не становится активным.
Я даже пытался активировать по его имени (хотя имена могут быть разными, если вы удалите одно, оно добавит следующий номер к имени листа объектов) и безуспешно.
Есть ли способ активировать таблицу объектов?
Комментарии:
1.
var myNewSheet ss.insertSheet('My New Sheet');
Я полагаю, что затем вы можете использоватьmyNewSheet.moveChartToObjectSheet(chart)
для добавления диаграммы на новый лист. Однако я это не тестировал.2. к сожалению, этот метод доступен только после таблицы, а не листа.
3. Прошу прощения, я не включил строку для настройки ss:
var SpreadsheetApp.getActive();
другим методом было бы объединить их, но если вы делаете что-то для чтения 2 разных листов в одном файле, вам может оказаться быстрее установить ss, как я сделал здесь.4. Я имею в виду, что этот метод недоступен после объекта «лист». Только после таблицы (ss.moveChartToObjectSheet (диаграмма)), но не sheet.moveChartToObjectSheet(диаграмма)
5. Немного покопался. Вы перемещаете диаграмму в новый объект типа листа , если диаграмма еще не находится ни в одном из них. Если это так, то он просто возвращает текущий объект, в котором он находится. Затем на уровне листа появляется, что вы будете использовать sheet.insertChart , чтобы поместить его в новое местоположение.