編碼
我在 Google Sheets 中有一個腳本,它從名為 OUT 的表中獲取資料并將其傳輸到名為 EXPORT 的表中,然后將 IN!B2 的值增加 1。
function Transfer() {
var app = SpreadsheetApp;
var sss = app.getActiveSpreadsheet();
var out_sheet = sss.getSheetByName('OUT');
var out_sheet_lastrow = out_sheet.getLastRow();
var range_to_copy = out_sheet.getRange(2,1,out_sheet_lastrow,15).getValues();
var export_sheet = sss.getSheetByName('EXPORT');
var export_sheet_lastrow = export_sheet.getLastRow();
var cell = sss.getSheetByName('IN').getRange('B2');
var value = cell.getValue() * 1;
cell.setValue(value 1);
{
export_sheet.getRange(export_sheet_lastrow 1,1,out_sheet_lastrow,15).setValues(range_to_copy);
}
};
問題
由于 EXPORT 中的行范圍每次都會有所不同,因此我需要確保沒有空行,否則匯入 BigQuery 會因為匯入的空白行而出現錯誤。
例如,這是資料從 OUT 傳輸之前的 Sheet EXPORT:
資料傳輸前的作業表 EXPORT:

雖然這是傳輸后的 Sheet EXPORT:
資料傳輸后的作業表匯出:

需要的解決方案:
理想情況下,我想修改代碼以避免添加這個額外的行。如果這是不可能的,因為它是默認添加的,那么每次將資料從 OUT 移動到 EXPORT 時,最好的解決方案是幫助洗掉它,這樣當 BigQuery 嘗試獲取資料時,在作業表的結尾。
uj5u.com熱心網友回復:
描述
由于您是從下面的 getRange() 中的第 2 行開始,您實際上又獲得了 1 行資料,然后實際包含資料。如果它從第 1 行開始,那么您的原始代碼是正確的。您的代碼應更正如下
var range_to_copy = out_sheet.getRange(2,1,out_sheet_lastrow-1,15).getValues();
export_sheet.getRange(export_sheet_lastrow 1,1,out_sheet_lastrow-1,15).setValues(range_to_copy);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/496016.html
上一篇:結合LEFT、SEARCH和REGEXREPLACE
下一篇:替換公式檢索較少的資料表
