Переименование файла в листе Google на имя предыдущего месяца с помощью скрипта - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу создать резервную копию файла листа Google, и его имя должно быть "название предыдущего месяца + год". Файл резервной копии создан, переименование файла не происходит.

function Copy() {
var sss = 
SpreadsheetApp.openById('1IK6YsZS3_NNAlFA41d8uKriPzfZs_2Ukyh94eeBFj40'); 
var ss = sss.getSheetByName('CURRENT'); 
var range = ss.getRange('A1:H45'); 
var data = range.getValues();

var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var yourNewSheet = activeSpreadsheet.getSheetByName("prevMonth");

if (yourNewSheet != null) 
{
    activeSpreadsheet.deleteSheet(yourNewSheet);
}

yourNewSheet = activeSpreadsheet.insertSheet();
yourNewSheet.setName("prevMonth");
yourNewSheet.getRange(yourNewSheet.getLastRow()+1,1,45,8).setValues(data);
}

1 Ответ

0 голосов
/ 06 ноября 2019

Используя код ниже:

function Copy() {
  var sss = SpreadsheetApp.openById('1GyPTwnQJYVJjBoIduz8OV6KBEV3qUraNZ_IyWiIP3pw');
  var ss = sss.getSheetByName('CURRENT'); 
  var range = ss.getRange('A1:H45'); 
  var data = range.getValues();
  var d = new Date();
  d.setMonth(d.getMonth() - 1);
  var prevMonth = Utilities.formatDate(d, 'GMT+1', 'MMMM yyyy');

  var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var yourNewSheet = activeSpreadsheet.getSheetByName(prevMonth);

  if (yourNewSheet != null) {
    activeSpreadsheet.deleteSheet(yourNewSheet);
  }

  yourNewSheet = activeSpreadsheet.insertSheet();
  yourNewSheet.setName(prevMonth);
  yourNewSheet.getRange(yourNewSheet.getLastRow()+1,1,45,8).setValues(data);
}

Это создаст лист с именем (по состоянию на сегодня 6 ноября) "Ноябрь 2019". Вам нужно будет только адаптировать часовой пояс в 6-й строке к тому, который подходит вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...