簡體   English   中英

在使用谷歌應用腳本將數據從谷歌表格注入谷歌幻燈片期間將日期轉換為 dd/mm/yyyy

[英]Convert date to dd/mm/yyyy during injection of data from google sheets to google slides using google apps script

我創建了一些腳本,允許我使用存儲在 Google 表格中的數據來生成一組 Google 幻燈片(基於預先格式化的模板幻燈片)。

以下腳本中的PreviousTargetCurrentTarget引用了在 Google 表格中格式化為日期單元格的單元格。 定義的格式是 dd/mm/yyyy。 當我運行腳本時,正確的日期被注入到谷歌幻燈片中,但是,它們看起來像這樣,而不是 dd/mm/yyyy 格式:

Sun Jul 26 2020 00:00:00 GMT+0100 (British Summer Time)

我可以通過將兩個單元格的格式更改為 Google 表格中的純文本字符串來解決此問題。 但是有沒有辦法在腳本運行期間重新格式化日期?

有什么想法可以在注入 Google 幻燈片期間修復格式嗎?

  var dataSpreadsheetUrl = ""; //sorry, I removed link to the sheet here as it contained sensitive information

  var ss = SpreadsheetApp.openByUrl(dataSpreadsheetUrl);
  var deck = SlidesApp.getActivePresentation();
  var sheet = ss.getSheetByName('1 - Project Overview');
  var values = sheet.getRange('A3:R').getValues();
  var slides = deck.getSlides();
  var templateSlide = slides[1];
  var presLength = slides.length;
  
  values.forEach(function(page){
  if(page[1]){
    
   var Project = page[1];
   var Lead = page [4]
   var RagStatus = page[5];
   var Trend = page[6];
   var Objectives = page[9];
   var Summary = page[10];
   var PreviousTarget = page[11];
   var CurrentTarget = page[12];
   var Risk1 = page[14];
   var Risk2 = page[15];
   var Issue1 = page[16];
   var Issue2 = page[17];
    
   templateSlide.duplicate(); //duplicate the template page
   slides = deck.getSlides(); //update the slides array for indexes and length
   newSlide = slides[2]; // declare the new page to update
    
    
   var shapes = (newSlide.getShapes());
     shapes.forEach(function(shape){
       shape.getText().replaceAllText('{{Project}}',Project);
       shape.getText().replaceAllText('{{Lead}}',Lead);
       shape.getText().replaceAllText('{{Objectives}}',Objectives);
       shape.getText().replaceAllText('{{Summary}}',Summary);
       shape.getText().replaceAllText('{{PreviousTarget}}',PreviousTarget);
       shape.getText().replaceAllText('{{CurrentTarget}}',CurrentTarget);
       shape.getText().replaceAllText('{{RagStatus}}',RagStatus);
       shape.getText().replaceAllText('{{Trend}}',Trend);
       shape.getText().replaceAllText('{{Risk1}}',Risk1);
       shape.getText().replaceAllText('{{Risk2}}',Risk2);
       shape.getText().replaceAllText('{{Issue1}}',Issue1);
       shape.getText().replaceAllText('{{Issue2}}',Issue2);
    }); 
   presLength = slides.length; 
   newSlide.move(presLength); 
  } // end our conditional statement
  }); //close our loop of values

//Remove the template slide
templateSlide.remove();
  
} ``` 

嘗試改變

var values = sheet.getRange('A3:R').getValues();

var values = sheet.getRange('A3:R').getDisplayValues();

看看這是否有幫助?

有關getDisplayValues的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM