setValue()后不保留格式

时间:2013-08-26 05:38:32

标签: javascript google-apps-script google-sheets google-docs

我正在制作一个简单的待办事项列表,当它完成时自动将任务移动到名为“已完成”的工作表,并为完成的任务添加时间戳。一切正常,唯一的问题是当时间戳添加到已完成的时间戳列时,它的格式不正确(单元格的中心)。

任何可能导致此问题的输入都将受到赞赏!

这是我的脚本代码:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var s = event.source.getActiveSheet();
  var r = event.source.getActiveRange();

  if(s.getName() == "Uncompleted" && r.getColumn() == 1 && r.getValue() == "Yes") {
    var row = r.getRow();
    var numColumns = s.getLastColumn();
    var targetSheet = ss.getSheetByName("Completed");
    var target = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    s.getRange(row, 1, 1, numColumns).moveTo(target);
    s.deleteRow(row);
    var completed = targetSheet.getRange(targetSheet.getLastRow(), 8);
    var time = s.getRange("H1").getValue();
    completed.setValue(time);
  }
 }

您可以在此处查看工作电子表格:

https://docs.google.com/spreadsheet/ccc?key=0AiU2vLPIL9GldHgyRUJMMVk5TTlSQVR1cFN1Sk10Tnc&usp=sharing

2 个答案:

答案 0 :(得分:0)

一种选择是使用方法copyTo(destination)

...
var completed = targetSheet.getRange(targetSheet.getLastRow(), 8);
/*var time = s.getRange("H1").getValue();
completed.setValue(time);*/
s.getRange("H1").copyTo(completed);
...

答案 1 :(得分:0)

在代码中添加以下行

completed.setHorizontalAlignment("center");