看起来谷歌表格犯了与Excel相同的错误,通过“提前思考”并在执行sheet.appendRow
时将值“1.1.1”转换为2001.01.01。我试图在插入行之前将负责列的数字格式设置为“@”(应该是纯文本) - 但看起来无效。另一方面,在插入之后做同样的操作也是无效的,因为内容已经是“日期”。
添加'之前工作,但它不是我需要的。
有没有办法提供默认格式或禁用此类自动转换(来自谷歌脚本)?
答案 0 :(得分:0)
我有一个单元格,其中表单存放由逗号分隔的可变数量的值,例如:" 1,2,4,6和#34;等等 - 当只有三个答案时,Google"帮助"我通过将值转换为日期对象。但它应该是一个选择列表......
它并不漂亮,但我通过使用 .getDisplayValue 代替 .getValue 来管理解决方法 - 它确实将单元格值更改为一个字符串,所以如果你需要进行进一步的操作,这些操作依赖于值是一个数字或某个东西,显然,这会失败。
在将数据传递给 .appendRow
之前,我会覆盖数组中问题单元格的值//getting the values
var values = s.getRange(row,1,1,lastCol).getValues()[0];
//brute force crushing of problem value
values[5] = s.getRange(row,6).getDisplayValue();