【问题标题】:Google Script - Insert Column inherits format谷歌脚本 - 插入列继承格式
【发布时间】:2017-06-14 03:51:25
【问题描述】:

我有一个简单的代码,其中 A1 中有一个日期,例如 06/06/2017

我正在尝试添加三列并在其中设置公式。 我通过使用添加列:

ss.insertColumns(1,3);

然后我在三列中设置公式:

ss.getRange(1,1).setFormula('=MONTH(D1);
ss.getRange(1,2).setFormula('=WEEKNUM(D1);
ss.getRange(1,3).setFormula('=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")');

但是最终发生的事情是,所有新列最终都继承了之前 A 列的格式(或者至少基于我对 Google 脚本的有限理解,我认为这是这样的)。因此,如果是新 A1,则显示 05/01/1900。当我单击格式>数字>数字时,它最终显示 6。所以数字是正确的,但格式是错误的。

我该如何处理这个问题?请记住,真实文件有数百行日期,我使用循环来分配公式。

【问题讨论】:

  • 如果 6 不是您想要的,那么您在寻找什么结果?
  • 我需要它显示 6 而无需手动单击“格式”。

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


【解决方案1】:

您可以在设置内容或公式的同时set the number format一个单元格。所以在

的情况下
ss.getRange(1,1).setFormula('=MONTH(D1);

这可以变成

ss.getRange(1,1).setFormula('=MONTH(D1)').setNumberFormat("0")

您可以在 .setNumberFormat(numberFormat) 中使用的 possible formats 与您在表格本身中使用的相同。

除了解决方案之外,这里设置 3 个单元格的更好方法(并与 your other question 关联)而不是一次设置一个公式,您可以通过一次调用设置所有三个。

ss.getRange(1,1,1,3)
.setFormulas([
    '=MONTH(D1)',
    '=WEEKNUM(D1)',
    '=CHOOSE( weekday(D1), "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")'])
.setNumberFormats(["0","0","text"]);

【讨论】:

  • 谢谢它的工作!我对 Google Script 很陌生,所以所有这些提示对我来说意义重大。
  • 只有一个问题 - 最后一行给出了某种错误。 无法将 Array 转换为 Object[][]。
  • 忘记将其包装为数组。在手机上从内存中编写代码而不进行测试的缺点。
猜你喜欢
  • 2021-07-13
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多