在电子表格中将日期设置为工作表名称

时间:2016-12-12 17:32:39

标签: google-apps-script google-sheets

我试图在昨天的日期重新命名新创建的工作表,在某些情况下尝试使用14天前的日期重命名。这是我到目前为止所得到的。

我在Stackoverflow上找到了这个片段,并根据我的目的对其进行了一些修改。但是,这会生成以今天的日期命名的工作表。

// previous lines have been left out
// set sheet name to yesterday's date

var eet = ss.getSpreadsheetTimeZone();
var sheets = ss.getSheets();
var date = Utilities.formatDate(new Date(), eet, 'yyyy-MM-dd');
//this returns today's date (need yesterday's date, or date from 14 days ago)

sheets[1].setName(date);  // Rename second sheet

我希望你们能帮忙

2 个答案:

答案 0 :(得分:0)

在昨天的日期试试这个。它从当前日期减去1

var testDate = new Date();
var secondDate = new Date();
secondDate.setDate(testDate.getDate()-1);
var dateString = Utilities.formatDate(secondDate, eet, 'yyyy-MM-dd');

请注意,我没有检查日期字符串的设置。我确实重命名了变量以避免保留"日期"但可能没有必要。

答案 1 :(得分:0)

以下是执行前的工作表名称。

enter image description here

以下是执行后的工作表名称。

enter image description here

以下是代码:

function changeSheetNamesWithDates() {

   var ss = SpreadsheetApp.openById("ENTER_SPREADSHEET_NAME");
   var sheets = ss.getSheets();

   var count = 0;
   for (var row in sheets) {

       var startDate = new Date();
           startDate.setDate(startDate.getDate() - count);
       var dateString = Utilities.formatDate(startDate, "GMT", "yyyy-MM-dd");

           sheets[row].setName("Sheet " + dateString);
           count++;
   }
}

如果你只想要它纯粹的日期,那么删除单词" Sheet"来自.setName

 sheets[row].setName(dateString);