我将一张表格中的行附加到另一张表格,而源表格的日期格式如下:Sat, Apr 29, 2017
当附加到目标工作表时,它会更改为4/29/2017
格式。
由于我要追加,我无法在追加之前设置单元格格式。
无论如何我可以将整张纸设置为纯文本吗?或以某种方式强制附加保持格式像源,而不是解释值?
我用来追加的命令是:
targetSheet.appendRow(row);
答案 0 :(得分:1)
虽然它可能不是一个干净的解决方案,我自己也在寻找一些解决方案,但这可能是您可以使用的解决方法。
添加撇号或其他不会被识别为日期一部分的符号。这将强制电子表格将其解释为文本。
答案 1 :(得分:0)
一种选择是追加行,然后清除格式。
function appendInPlainText() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow(["dummy", "data"]);
sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).clearFormat();
SpreadsheetApp.flush();
}
答案 2 :(得分:0)
似乎没有办法使用 sheet.appendRow(data).set 来追加一行并使用 .setNumberFormat。无论我如何尝试,都不会弹出 .setNumberFormat 选项。
以下是对我的情况有效的方法,可能对其他人有帮助: 我正在尝试添加一行,其中一个单元格的序列号以“000”开头。不幸的是,如果我没有在单元格中放置一些文本,零会自动删除。添加文本将在以后进行更多工作。这是对我有用的解决方案:
while (files.hasNext()) {
var file = files.next();
var name = file.getName(); // The name of the file is a serial number that starts with "000"
var url = file.getUrl();
var lastUpdate = file.getLastUpdated();
var description = file.getDescription();
var lastRow = sheet.getLastRow();
sheet.getRange(lastRow + 1, 1).setValue(name).setNumberFormat("@");
sheet.getRange(lastRow + 1, 2).setValue(url);
sheet.getRange(lastRow + 1, 3).setValue(lastUpdate);
sheet.getRange(lastRow + 1, 4).setValue(description);
}
它不像使用sheet.appendRow(data).set那么简单,但它确实追加一行并将格式设置为纯文本。希望有人知道更简单的方法。
以下是来自 Google 的更多信息: