2015-05-14 62 views
1

我是Google新手,非常感謝您的幫助!如何在Google Apps腳本(GAS)中高效輸出到非連續範圍

這裏是我的數據看起來像(3個非連續的記錄,4個非相鄰場): https://docs.google.com/spreadsheets/d/18FFB2HlcfcciHj7NPmihZbuf47op2UMdRTKfpyTqowU/edit#gid=0

我有一個項目數組,並且每個項目是一個包含4個按鍵的對象。我想盡可能少的SetValue請求輸出到Google表格。如果我在1次調用中無法做到這一點,那麼一次輸出每個項目最合理。

我的想法是,我可以創建跨越整個列的字段1和4的範圍。然後我可以創建跨越整個項目行的範圍。然後,2之間的INTERSECTION是我想要輸出的範圍,一旦我組裝了2個值的數組。

或者,也許因爲假設我知道下面每個單元格的行/列,我可以返回範圍並使用範圍的UNION來創建映射。

但是在GAS中有交叉或聯合的功能嗎?還是我最好只是輸出每個單元格1?

感謝您的幫助!

+0

GAS使用JavaScript。無論JavaScript如何處理數組和對象,GAS都可以做到。 SpreadsheetApp服務使用2維數組讀取和寫入數據。您只需要在內部數組中爲要保留空白的單元格設置空白元素。或者,您可以獲取所有原始數據,然後將所需的更改注入到二維數組中,然後將其寫回電子表格。因此,使用該策略可以在一次調用中完成對電子表格的寫入。 –

+0

如果中間的單元格不是空白並且實際上是鏈接/公式,該怎麼辦? –

+0

這可能是一個問題。也許你可以寫一些代碼並測試它。 –

回答

1

沒有這樣的功能。它是一個接一個或連續的單元格。

但也有相當多的技巧/替代品可能適合你。正如桑迪在評論中指出的那樣,您可以獲得一個連續的範圍,其中包含所有必需的單元格,並將非必需的單元格設置爲空白或其原始值。這有不適用於公式的缺點。

您還可以使用簡單公式「指向」連續範圍來預先配置所需的單元格。那會馬上批量更新。

如果確實需要批量設置,你也可以抓住所有值廣泛的公式,和所有普通的值轉換爲等效的公式,例如abc變成="abc"1/1/2015=DATE(2015,1,1)(是的,這很麻煩),然後使用setFormulas設置所有內容,將原始公式和值都轉換爲公式。在不希望的單元格中更改實際的內容,並在所有批量操作中更改所需的單元格。

無論如何,這些只是解決方法。如第一句所述,這是不可能的,時期。您可能希望在Apps Script問題跟蹤器中將this report加入該功能投票並獲得更新。

相關問題