【问题标题】:Copy google sheets data to another workbook with text formula as static text将谷歌表格数据复制到另一个工作簿,文本公式作为静态文本
【发布时间】:2023-01-16 18:00:34
【问题描述】:

我有下面的代码,可以将数据从一个 google 工作表工作簿复制到另一个工作簿,但是我确实有一个公式正在复制为日期值,但是我希望它复制为文本值。目前正在复制为 01/01/2023 11;20:00(日期) 我希望它复制为 01/01/2020 上午 11:20(文本)

=arrayformula(text(A2:A, "dd/mm/yyyy hh:mm am/pm")
var sourceSpreadsheetID = "ID1";
var sourceWorksheetName = "Overview";
var targetSpreadsheetID = "ID2";
var targetWorksheetName = "Overview Static";
function importData() {
  

  var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
  var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
  var thisData = thisWorksheet.getDataRange();
  //Uncomment line 11 below and comment out line 9 if you want to sync a named range. Replace "teamBugs" with your named range.
  //var thisData = thisSpreadsheet.getRangeByName("data");
 
  var toSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetID);
  var toWorksheet = toSpreadsheet.getSheetByName(targetWorksheetName);
  var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
  toRange.setValues(thisData.getValues()); 
}

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:
    var sourceSpreadsheetID = "ID1";
    var sourceWorksheetName = "Overview";
    var targetSpreadsheetID = "ID2";
    var targetWorksheetName = "Overview Static";
    function importData() {
      
    
      var thisSpreadsheet = SpreadsheetApp.openById(sourceSpreadsheetID);
      var thisWorksheet = thisSpreadsheet.getSheetByName(sourceWorksheetName);
      var thisData = thisWorksheet.getDataRange();
      //Uncomment line 11 below and comment out line 9 if you want to sync a named range. Replace "teamBugs" with your named range.
      //var thisData = thisSpreadsheet.getRangeByName("data");
      var replacedData = thisData.getValues().map(row => 
        row.map((v, i) =>
          // Assuming the dates are in the first column
          i === 0 ? Utilities.formatDate(v, ts, 'dd/MM/yyyy HH:mm a') : v
        )
      );
     
      var toSpreadsheet = SpreadsheetApp.openById(targetSpreadsheetID);
      var toWorksheet = toSpreadsheet.getSheetByName(targetWorksheetName);
      var toRange = toWorksheet.getRange(1, 1, thisData.getNumRows(), thisData.getNumColumns())
      toRange.setValues(replacedData); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多