【问题标题】:Using batch request when insert columns in google spreadsheet在谷歌电子表格中插入列时使用批处理请求
【发布时间】:2021-04-05 00:40:21
【问题描述】:

我正在尝试向表中插入大量列,我需要插入 2 列,现在我的代码如下所示

sheet.insertColumnAfter(16),sheet.insertColumnAfter(18),sheet.insertColumnAfter(20),sheet.insertColumnAfter(22)

我尝试使用数组,没有任何效果,我将不胜感激

【问题讨论】:

    标签: google-apps-script batch-request


    【解决方案1】:

    我相信你的目标如下。

    • 您想使用 Google Apps 脚本插入 insertColumnAfter(16)insertColumnAfter(18)insertColumnAfter(20)insertColumnAfter(22) 等列。
    • 实现目标后,插入的列是“Q”、“T”、“W”和“Z”列。
    • 您想使用数组来实现这一点。

    修改点:

    • 在这种情况下,如何插入从insertColumnAfter(22)insertColumnAfter(16) 的列?
      • 我认为这可能是您的问题的原因。
    • 为了使用该数组,请准备一个包含列号的数组,并使用该数组插入列。

    当以上几点反映到脚本中时,变成如下。

    修改脚本:

    const sheet = SpreadsheetApp.getActiveSheet();
    const columns = [16, 18, 20, 22];
    columns.reverse().forEach(c => sheet.insertColumnAfter(c));
    
    • 在此脚本中,使用了活动工作表。所以请根据您的实际情况进行修改。
    • 运行此脚本时,会将列从第 22 列插入到第 16 列。这样,插入的列是“Q”、“T”、“W”和“Z”列。

    参考资料:

    【讨论】:

    • @Tanakie 你能告诉我,我还有一个公式需要插入到每个插入列的第4行,公式看起来像这样=ArrayFormula(IFS($N$4:$N=0,"нет закупочной цены",P4:P=0,"нет цены магазина",$N$4:$N*P4:P>0,(P4:P-$N$4:$N)/$N$4:$N))在这个公式中,只会改变这个range P4:P,我希望我描述的一切都正确
    • 如何在不每次都进入工作表的情况下插入它?试过RangeList,但只有setValue。这是示例链接 [link] (docs.google.com/spreadsheets/d/…)
    • @Антон Кожевников 感谢您的回复。我很高兴你的问题得到了解决。关于你的新问题,我想支持你。但我必须为我糟糕的英语水平道歉。不幸的是,我无法理解你的新问题。我为此道歉。那我能问一下它的细节吗?通过这个,我想试着理解它。
    • 现在我使用下面的方法插入一个公式,var rr1 = sheet.getRange('Q4') rr1.setValue('=ArrayFormula(IFS($N$4:$N=0,"нет закупочной цены",P4:P=0,"нет цены магазина",$N$4:$N*P4:P>0,(P4:P-$N$4:$N)/$N$4:$N))') 但是它非常昂贵,所以对于每一列
    • @Антон Кожевников 感谢您的回复。我不得不再次为我糟糕的英语水平道歉。不幸的是,我仍然无法理解您的新问题。但我想试着理解它。所以你能给我一点时间来理解它吗?但如果您需要立即获得新问题的解决方案,请告诉我。那时,我想建议将其作为新问题发布。这样,其他用户可以想到您的问题。如果你能合作解决你的新问题,我很高兴。可以合作解决吗?
    猜你喜欢
    • 2012-06-14
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多