Здравствуйте! Необходимо пересохранить Гугл таблицу с данными без сохранения формул, то есть сохранить только значения и формат ячеек. Подскажите, пожалуйста, как быстро это сделать?
Здравствуйте! Необходимо пересохранить Гугл таблицу с данными без сохранения формул, то есть сохранить только значения и формат ячеек. Подскажите, пожалуйста, как быстро это сделать?111
Здравствуйте. Можно копированием + специальной вставкой "только значений". Листов много в файле?
Если листов много, можно небольшой скрипт запустить, перебирающий все листы и проделывающий такое копирование и вставку на каждом листе:
function leaveValuesInsteadOfFormulas() {
var ss = SpreadsheetApp.getActive();
var shts = ss.getSheets();
shts.forEach((v) => {
Logger.log(v.getSheetName());
var rng = v.getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
}
Здравствуйте. Можно копированием + специальной вставкой "только значений". Листов много в файле?
Если листов много, можно небольшой скрипт запустить, перебирающий все листы и проделывающий такое копирование и вставку на каждом листе:
function leaveValuesInsteadOfFormulas() {
var ss = SpreadsheetApp.getActive();
var shts = ss.getSheets();
shts.forEach((v) => {
Logger.log(v.getSheetName());
var rng = v.getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
}
Спасибо, Gustav! Листов много. А можете ли вы подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии была вставка только значений?
Спасибо, Gustav! Листов много. А можете ли вы подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии была вставка только значений?111
подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии
Да, конечно. Нужно немножко подшаманить в первых строчках предыдущего скрипта:
function leaveValuesInsteadOfFormulas2() {
var ssActive = SpreadsheetApp.getActive();
var ss = ssActive.copy("Копия БЕЗ ФОРМУЛ " + ssActive.getName());
var shts = ss.getSheets();
shts.forEach((v) => {
Logger.log(v.getSheetName())
var rng = v.getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
}
Единственное, что копия будет создана в корневой папке вашего Гугл-диска. Т.е. если исходный файл зарыт где-то в дереве ваших папок, то новая копия будет создана не в той же зарытой папке. И вот что я точно не буду делать, так это писать скрипт, который будет не только копировать, но и помещать копию в ТУ же папку, что и исходный. Это ручками, пожалуйста, ручками и мышкой!
подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии
Да, конечно. Нужно немножко подшаманить в первых строчках предыдущего скрипта:
function leaveValuesInsteadOfFormulas2() {
var ssActive = SpreadsheetApp.getActive();
var ss = ssActive.copy("Копия БЕЗ ФОРМУЛ " + ssActive.getName());
var shts = ss.getSheets();
shts.forEach((v) => {
Logger.log(v.getSheetName())
var rng = v.getDataRange();
rng.copyTo(rng, SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
});
}
Единственное, что копия будет создана в корневой папке вашего Гугл-диска. Т.е. если исходный файл зарыт где-то в дереве ваших папок, то новая копия будет создана не в той же зарытой папке. И вот что я точно не буду делать, так это писать скрипт, который будет не только копировать, но и помещать копию в ТУ же папку, что и исходный. Это ручками, пожалуйста, ручками и мышкой! Gustav