Средство отслеживания проблем удерживает этот запрос с 3 августа 2010 г. со средним приоритетом и только статусом «Triaged».Более 3 лет и никаких признаков решения от команды GAS.
Мой обходной путь - использовать специальный ведущий символ, который будет указывать состояние видимости строки / столбца, это ведущий обратный удар (`) вячейки верхнего заголовка строки / столбца.Если в заголовках столбцов используются объединенные ячейки , то пустой верхней верхней строке следует выделить только для этой функции, пока инженеры Google не улучшат API.То же самое применимо, если в ячейках 1-й строки / столбца есть формул .Эти выделенные строки / столбцы сами могут быть скрыты.
После начала использования этой функции каждую команду отображения / скрытия столбца / строки следует выполнять из настраиваемого меню, в противном случае будут возникать ошибки.при программной итерации диапазона из-за отсутствующего / чрезмерного обратного удара.
Например, чтобы скрыть строки выбранных ячеек, вызывается следующая функция
function hideSelectedRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = SpreadsheetApp.getActiveRange();
// hide rows and add a ` backtick to the header cell
for (var row = range.getRow(); row <= range.getLastRow(); row++)
{
// add backtick only if it isn't there (that may happen when manually unhiding the rows)
var cellHeader = sheet.getRange(row, 1)
var cellHeaderValue = cellHeader.getValue()
if ( !cellHeaderValue.match(/^`/) ) {
cellHeader.setValue('`' + cellHeaderValue)
}
// hide rows of selected range
sheet.hideRows( row );
}
}
и меню
SpreadsheetApp.getActiveSpreadsheet()
.addMenu("Show/Hide", [
{ name : "Hide Selected Rows", functionName : "hideSelectedRows" },
{ name : "Hide Selected Columns", functionName : "hideSelectedColumns" },
null,
{ name : "Hide Rows", functionName : "hideRows" },
{ name : "Hide Columns", functionName : "hideColumns" },
null,
{ name : "Show Rows", functionName : "showRows" },
{ name : "Show Columns", functionName : "showColumns" },
null,
{ name : "Show All Rows", functionName : "unHideAllRows" },
{ name : "Show All Columns", functionName : "unHideAllColumns" }
])
Как только инженеры Google найдут время для улучшения события onChange, можно будет автоматически добавлять эти метки.В настоящее время changeType ограничен EDIT, INSERT_ROW, INSERT_COLUMN, REMOVE_ROW, REMOVE_COLUMN, INSERT_GRID, REMOVE_GRID, OTHER без каких-либо сведений о том, какая строка / столбец была вставлена / удалена.Похоже, что команда GAS скудна.Я хотел бы, чтобы они могли нанять больше программистов (кхм кхм)