Здравствуйте! Необходимо пересохранить Гугл таблицу с данными без сохранения формул, то есть сохранить только значения и формат ячеек. Подскажите, пожалуйста, как быстро это сделать?
Здравствуйте! Необходимо пересохранить Гугл таблицу с данными без сохранения формул, то есть сохранить только значения и формат ячеек. Подскажите, пожалуйста, как быстро это сделать?111
Здравствуйте. Можно копированием + специальной вставкой "только значений". Листов много в файле?
Если листов много, можно небольшой скрипт запустить, перебирающий все листы и проделывающий такое копирование и вставку на каждом листе: [vba]
Код
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); }); }
[/vba]
Здравствуйте. Можно копированием + специальной вставкой "только значений". Листов много в файле?
Если листов много, можно небольшой скрипт запустить, перебирающий все листы и проделывающий такое копирование и вставку на каждом листе: [vba]
Код
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
подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии
Да, конечно. Нужно немножко подшаманить в первых строчках предыдущего скрипта: [vba]
Код
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); }); }
[/vba]
Единственное, что копия будет создана в корневой папке вашего Гугл-диска. Т.е. если исходный файл зарыт где-то в дереве ваших папок, то новая копия будет создана не в той же зарытой папке. И вот что я точно не буду делать, так это писать скрипт, который будет не только копировать, но и помещать копию в ТУ же папку, что и исходный. Это ручками, пожалуйста, ручками и мышкой!
подправить скрипт, чтобы сначала создавалась копия файла, а уже затем в копии
Да, конечно. Нужно немножко подшаманить в первых строчках предыдущего скрипта: [vba]
Код
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); }); }
[/vba]
Единственное, что копия будет создана в корневой папке вашего Гугл-диска. Т.е. если исходный файл зарыт где-то в дереве ваших папок, то новая копия будет создана не в той же зарытой папке. И вот что я точно не буду делать, так это писать скрипт, который будет не только копировать, но и помещать копию в ТУ же папку, что и исходный. Это ручками, пожалуйста, ручками и мышкой! Gustav