存取及修改試算表範圍。範圍可以是工作表中的單一儲存格,也可以是一組儲存格 工作表中相鄰的儲存格。
方法
內容詳盡的說明文件
activate()
將指定範圍設為 active range
,其中最上方
範圍左儲存格做為 current cell
。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var range = sheet.getRange('A1:D10'); range.activate(); var selection = sheet.getSelection(); // Current cell: A1 var currentCell = selection.getCurrentCell(); // Active Range: A1:D10 var activeRange = selection.getActiveRange();
回攻員
Range
:這個範圍用於鏈結。
activateAsCurrentCell()
將指定儲存格設為 current cell
。
如果指定的儲存格位於現有範圍內,則該範圍會變成有效範圍 範圍以目前儲存格為儲存格。
如果指定的儲存格不在任何現有範圍內,則現有的選取範圍會是 這個儲存格就會變成目前的儲存格和使用中的範圍
注意:指定的 Range
必須包含一個儲存格,否則會擲回
例外狀況。
// Gets the first sheet of the spreadsheet. var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; // Gets the cell B5 and sets it as the active cell. var range = sheet.getRange('B5'); var currentCell = range.activateAsCurrentCell(); // Logs the activated cell. console.log(currentCell.getA1Notation());
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addDeveloperMetadata(key)
將含有指定索引鍵的開發人員中繼資料新增至範圍。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on the sheet. const range = sheet.getRange('2:2'); // Adds the key 'NAME' to the developer metadata for row 2. range.addDeveloperMetadata('NAME'); // Gets the metadata and logs it to the console. const developerMetaData = range.getDeveloperMetadata()[0]; console.log(developerMetaData.getKey());
參數
名稱 | 類型 | 說明 |
---|---|---|
key | String | 新開發人員中繼資料的鍵。 |
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addDeveloperMetadata(key, visibility)
將開發人員中繼資料新增至範圍,具有指定索引鍵和瀏覽權限。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on Sheet1. const range = sheet.getRange('2:2'); // Adds the key 'NAME' and sets the developer metadata visibility to 'DOCUMENT' // for row 2 on Sheet1. range.addDeveloperMetadata('NAME', SpreadsheetApp.DeveloperMetadataVisibility.DOCUMENT); // Gets the updated metadata info and logs it to the console. const developerMetaData = range.getDeveloperMetadata()[0]; console.log(developerMetaData.getKey()); console.log(developerMetaData.getVisibility().toString());
參數
名稱 | 類型 | 說明 |
---|---|---|
key | String | 新開發人員中繼資料的鍵。 |
visibility | DeveloperMetadataVisibility | 新開發人員中繼資料的瀏覽權限。 |
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addDeveloperMetadata(key, value)
將含有指定鍵和值的開發人員中繼資料新增至範圍。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 of Sheet1. const range = sheet.getRange('2:2'); // Adds the key 'NAME' and sets the value to 'GOOGLE' for the metadata of row 2. range.addDeveloperMetadata('NAME', 'GOOGLE'); // Gets the metadata and logs it to the console. const developerMetaData = range.getDeveloperMetadata()[0]; console.log(developerMetaData.getKey()); console.log(developerMetaData.getValue());
參數
名稱 | 類型 | 說明 |
---|---|---|
key | String | 新開發人員中繼資料的鍵。 |
value | String | 新開發人員中繼資料的值。 |
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
addDeveloperMetadata(key, value, visibility)
新增開發人員中繼資料,並指定範圍的指定鍵、值和瀏覽權限。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on the sheet. const range = sheet.getRange('2:2'); // Adds the key 'NAME', sets the value to 'GOOGLE', and sets the visibility // to PROJECT for row 2 on the sheet. range.addDeveloperMetadata( 'NAME', 'GOOGLE', SpreadsheetApp.DeveloperMetadataVisibility.PROJECT); // Gets the updated metadata info and logs it to the console. const developerMetaData = range.getDeveloperMetadata()[0]; console.log(developerMetaData.getKey()); console.log(developerMetaData.getValue()); console.log(developerMetaData.getVisibility().toString());
參數
名稱 | 類型 | 說明 |
---|---|---|
key | String | 新開發人員中繼資料的鍵。 |
value | String | 新開發人員中繼資料的值。 |
visibility | DeveloperMetadataVisibility | 新開發人員中繼資料的瀏覽權限。 |
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyColumnBanding()
對範圍套用預設的欄頻帶主題。根據預設,頻帶包含頁首和 頁尾顏色。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on the sheet. const range = sheet.getRange('2:2'); // Applies column banding to row 2. const colBanding = range.applyColumnBanding(); // Gets the first banding on the sheet and logs the color of the header column. console.log(sheet.getBandings()[0].getHeaderColumnColorObject().asRgbColor().asHexString()); // Gets the first banding on the sheet and logs the color of the second column. console.log(sheet.getBandings()[0].getSecondColumnColorObject().asRgbColor().asHexString());
回攻員
Banding
— 新頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyColumnBanding(bandingTheme)
對範圍套用指定的欄頻帶主題。根據預設,頻帶具有標頭和 無頁尾顏色。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on the sheet. const range = sheet.getRange('2:2'); // Applies the INDIGO color banding theme to the columns in row 2. const colBanding = range.applyColumnBanding(SpreadsheetApp.BandingTheme.INDIGO); // Gets the first banding on the sheet and logs the color of the second column. console.log(sheet.getBandings()[0].getSecondColumnColorObject().asRgbColor().asHexString());
參數
名稱 | 類型 | 說明 |
---|---|---|
bandingTheme | BandingTheme | 要套用至範圍中資料欄的色彩主題。 |
回攻員
Banding
— 新頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyColumnBanding(bandingTheme, showHeader, showFooter)
將指定的欄頻帶主題套用至含有指定頁首和頁尾的範圍 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets rows 12-22 on the sheet. const range = sheet.getRange('12:22'); // Applies the BLUE color banding theme to rows 12-22. // Sets the header visibility to false and the footer visibility to true. const colBanding = range.applyColumnBanding(SpreadsheetApp.BandingTheme.BLUE, false, true); // Gets the banding color and logs it to the console. console.log(sheet.getBandings()[0].getSecondColumnColorObject().asRgbColor().asHexString()); // Gets the header color object and logs it to the console. Returns null because the header // visibility is set to false. console.log(sheet.getBandings()[0].getHeaderColumnColorObject()); // Gets the footer color and logs it to the console. console.log(sheet.getBandings()[0].getFooterColumnColorObject().asRgbColor().asHexString());
參數
名稱 | 類型 | 說明 |
---|---|---|
bandingTheme | BandingTheme | 要套用至範圍中資料欄的色彩主題。 |
showHeader | Boolean | 如果為 true ,系統會對第一個套用色帶主題的標頭顏色。
。 |
showFooter | Boolean | 如果為 true ,則色帶主題頁尾顏色會套用到最後一個
。 |
回攻員
Banding
— 新頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyRowBanding()
對範圍套用預設的列頻帶主題。根據預設,頻帶包含頁首和 頁尾顏色。
// Opens the spreadsheet by its URL. If you created your script from within a Google Sheets // spreadsheet, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets rows 1-30 on Sheet1. const range = sheet.getRange('1:30'); // Applies row banding to rows 1-30. range.applyRowBanding(); // Gets the hex color of the second banded row. const secondRowColor = range.getBandings()[0] .getSecondRowColorObject() .asRgbColor() .asHexString(); // Logs the hex color to console. console.log(secondRowColor);
回攻員
Banding
- 頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyRowBanding(bandingTheme)
將指定的列頻帶主題套用到範圍。根據預設,頻帶包含頁首和 頁尾顏色。
// Opens the spreadsheet by its URL. If you created your script from within a Google Sheets // spreadsheet, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets rows 1-30 on Sheet1. const range = sheet.getRange('1:30'); // Applies the INDIGO row banding theme to rows 1-30. range.applyRowBanding(SpreadsheetApp.BandingTheme.INDIGO); // Gets the hex color of the second banded row. const secondRowColor = range.getBandings()[0] .getSecondRowColorObject() .asRgbColor() .asHexString(); // Logs the hex color to console. console.log(secondRowColor);
參數
名稱 | 類型 | 說明 |
---|---|---|
bandingTheme | BandingTheme | 要套用至範圍內資料列的色彩主題。 |
回攻員
Banding
— 新頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
applyRowBanding(bandingTheme, showHeader, showFooter)
將指定的列頻帶主題套用至指定標頭和頁尾設定的範圍。
// Opens the spreadsheet by its URL. If you created your script from within a Google Sheets // spreadsheet, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets rows 1-30 on Sheet1. const range = sheet.getRange('1:30'); // Applies the INDIGO row banding to rows 1-30 and // specifies to hide the header and show the footer. range.applyRowBanding(SpreadsheetApp.BandingTheme.INDIGO, false, true);
參數
名稱 | 類型 | 說明 |
---|---|---|
bandingTheme | BandingTheme | 要套用至範圍內資料列的色彩主題。 |
showHeader | Boolean | 如果設為 true ,則色帶主題的標頭顏色會套用至第一列。 |
showFooter | Boolean | 如果設為 true ,則區塊主題頁尾顏色會套用至最後一列。 |
回攻員
Banding
— 新頻帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
autoFill(destination, series)
根據此範圍的資料,在 destinationRange
中填入資料。新的值
也會由指定的 series
類型決定。目的地範圍必須包含
並只往一個方向延伸。舉例來說,下列程式碼會填入 A1:A20
以及根據 A1:A4
中目前值的一連串遞增數字:
var sheet = SpreadsheetApp.getActiveSheet(); // Has values [1, 2, 3, 4]. var sourceRange = sheet.getRange("A1:A4"); // The range to fill with values. var destination = sheet.getRange("A1:A20"); // Inserts new values in A5:A20, continuing the pattern expressed in A1:A4 sourceRange.autoFill(destination, SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
參數
名稱 | 類型 | 說明 |
---|---|---|
destination | Range | 要自動填入值的範圍。目的地範圍 只包含這個範圍,而且只朝一個方向延伸 (向上、向下、向左或 右邊)。 |
series | AutoFillSeries | 用來計算新值的 AutoFill 系列類型。 此系列的效果會因來源資料的類型和數量而異。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
autoFillToNeighbor(series)
計算範圍,根據鄰近儲存格填入新資料並自動填入
,根據此範圍內的資料,設定新的值範圍。這些新的值
取決於指定的 series
類型
計算的目的地範圍會考量周遭資料,來判斷新的 應該插入「值」:如果資料位於 自動填入的新值只會延伸至這些資料相鄰的資料。
舉例來說,如果 A1:A20
填入了一連串遞增數字,而這個方法
會在包含一系列日期的 B1:B4
上呼叫,但新值只會
已插入 B5:B20
。因此,這些新的值會「stick」包含
值。
var sheet = SpreadsheetApp.getActiveSheet(); // A1:A20 has values [1, 2, 3, ... 20]. // B1:B4 has values [1/1/2017, 1/2/2017, ...] var sourceRange = sheet.getRange("B1:B4"); // Results in B5:B20 having values [1/5/2017, ... 1/20/2017] sourceRange.autoFillToNeighbor(SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
參數
名稱 | 類型 | 說明 |
---|---|---|
series | AutoFillSeries | 用來計算新值的 AutoFill 系列類型。 此系列的效果會因來源資料的類型和數量而異。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
breakApart()
將範圍內的所有多欄儲存格,再次拆解成個別儲存格。
對範圍呼叫這個函式等同於選取範圍,然後按一下 依序前往「格式」>「合併儲存格」>「取消合併」。
// Opens the spreadsheet by its URL. If you created your script from within a Google Sheets // spreadsheet, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:C6 on Sheet1. const range = sheet.getRange('A1:C6'); // Unmerges the range A1:C6 into individual cells. range.breakApart();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
canEdit()
決定使用者是否有權編輯範圍內的所有儲存格。試算表 擁有者隨時可以編輯受保護的範圍和工作表。
// Opens the spreadsheet by its URL. If you created your script from within a Google Sheets // spreadsheet, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:C6 on Sheet1. const range = sheet.getRange('A1:C6'); // Logs whether the user has permission to edit every cell in the range. console.log(range.canEdit());
回攻員
Boolean
- true
,如果使用者俱備編輯範圍中所有儲存格的權限;false
反之。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
check()
將範圍內核取方塊的狀態變更為「已勾選」。忽略範圍中的儲存格 但目前不包含已設定的勾選或未勾選值。
// Changes the state of cells which currently contain either the checked or unchecked value // configured in the range A1:B10 to 'checked'. var range = SpreadsheetApp.getActive().getRange('A1:B10'); range.check();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
clear()
clear(options)
清除使用 顯示的進階選項根據預設,系統會清除所有資料。
// The code below clears range C2:G7 in the active sheet, but preserves the format, // data validation rules, and comments. SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 5).clear({contentsOnly: true});
參數
名稱 | 類型 | 說明 |
---|---|---|
options | Object | 指定進階參數的 JavaScript 物件,如下所示。 |
進階參數
名稱 | 類型 | 說明 |
---|---|---|
commentsOnly | Boolean | 是否僅清除留言。 |
contentsOnly | Boolean | 是否僅清除內容。 |
formatOnly | Boolean | 是否僅清除格式;請注意 格式也會清除資料驗證規則。 |
validationsOnly | Boolean | 是否僅清除資料驗證規則。 |
skipFilteredRows | Boolean | 是否清除篩除的資料列。 |
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
clearContent()
清除範圍中的內容,保留格式不變。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:D10"); range.clearContent();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
clearDataValidations()
清除這個範圍的資料驗證規則。
// Clear the data validation rules for cells A1:B5. var range = SpreadsheetApp.getActive().getRange('A1:B5'); range.clearDataValidations();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
clearFormat()
清除這個範圍的格式設定。
這會清除範圍內儲存格或儲存格的文字格式設定,但不會重設任何 數字格式設定規則
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:D10"); range.clearFormat();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
clearNote()
清除指定儲存格或儲存格中的記事。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:D10"); range.clearNote();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
collapseGroups()
收合屬於該範圍的所有群組。如果沒有任何群組 範圍中,有部分覆蓋的最深展開群組會收合。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var range = sheet.getActiveRange(); // All row and column groups within the range are collapsed. range.collapseGroups();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
copyFormatToRange(gridId, column, columnEnd, row, rowEnd)
將範圍的格式複製到指定的位置。如果目的地較大或較小 來源範圍中的值,系統就會重複或截斷來源。請注意,此 方法只會複製格式。
如需 MeshId 參數的詳細說明,請參閱 getGridId()
。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getSheets()[0]; var range = source.getRange("B2:D4"); // This copies the formatting in B2:D4 in the source sheet to // D4:F6 in the sheet with gridId 1555299895. Note that you can get the gridId // of a sheet by calling sheet.getSheetId() or range.getGridId(). range.copyFormatToRange(1555299895, 4, 6, 4, 6);
參數
名稱 | 類型 | 說明 |
---|---|---|
gridId | Integer | 試算表中的工作表專屬 ID (無論位置為何)。 |
column | Integer | 目標範圍的第一欄。 |
columnEnd | Integer | 目標範圍的結尾欄。 |
row | Integer | 目標範圍的起始列。 |
rowEnd | Integer | 目標範圍的結束列。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
另請參閱
copyFormatToRange(sheet, column, columnEnd, row, rowEnd)
將範圍的格式複製到指定的位置。如果目的地較大或較小 來源範圍中的值,系統就會重複或截斷來源。請注意,此 方法只會複製格式。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getSheets()[0]; var destination = ss.getSheets()[1]; var range = source.getRange("B2:D4"); // This copies the formatting in B2:D4 in the source sheet to // D4:F6 in the second sheet range.copyFormatToRange(destination, 4, 6, 4, 6);
參數
名稱 | 類型 | 說明 |
---|---|---|
sheet | Sheet | 目標工作表。 |
column | Integer | 目標範圍的第一欄。 |
columnEnd | Integer | 目標範圍的結尾欄。 |
row | Integer | 目標範圍的起始列。 |
rowEnd | Integer | 目標範圍的結束列。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
copyTo(destination)
將特定儲存格範圍的資料複製到其他儲存格範圍。值和格式設定 已複製完成
// The code below copies the first 5 columns over to the 6th column. var sheet = SpreadsheetApp.getActiveSheet(); var rangeToCopy = sheet.getRange(1, 1, sheet.getMaxRows(), 5); rangeToCopy.copyTo(sheet.getRange(1, 6));
參數
名稱 | 類型 | 說明 |
---|---|---|
destination | Range | 複製目的地範圍;只有左上角的儲存格位置相關。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
copyTo(destination, copyPasteType, transposed)
將特定儲存格範圍的資料複製到其他儲存格範圍。
// The code below copies only the values of the first 5 columns over to the 6th column. var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange("A:E").copyTo(sheet.getRange("F1"), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
參數
名稱 | 類型 | 說明 |
---|---|---|
destination | Range | 複製目的地範圍;只有左上角的儲存格位置相關。 |
copyPasteType | CopyPasteType | 指定如何將範圍內容貼到 目的地。 |
transposed | Boolean | 是否應將範圍貼上轉換方向貼上。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
copyTo(destination, options)
將特定儲存格範圍的資料複製到其他儲存格範圍。根據預設 的格式就會複製,但也可以使用進階引數覆寫這項設定。
// The code below copies only the values of the first 5 columns over to the 6th column. var sheet = SpreadsheetApp.getActiveSheet(); sheet.getRange("A:E").copyTo(sheet.getRange("F1"), {contentsOnly:true});
參數
名稱 | 類型 | 說明 |
---|---|---|
destination | Range | 複製目的地範圍;只有左上角的儲存格位置相關。 |
options | Object | 指定進階參數的 JavaScript 物件,如下所示。 |
進階參數
名稱 | 類型 | 說明 |
---|---|---|
formatOnly | Boolean | 指定只應複製該格式 |
contentsOnly | Boolean | 指定只應複製內容 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
copyValuesToRange(gridId, column, columnEnd, row, rowEnd)
將範圍的內容複製到指定位置。如果目的地較大或較小 來源範圍中的值,系統就會重複或截斷來源。
如需 MeshId 參數的詳細說明,請參閱 getGridId()
。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getSheets()[0]; var range = source.getRange("B2:D4"); // This copies the data in B2:D4 in the source sheet to // D4:F6 in the sheet with gridId 0 range.copyValuesToRange(0, 4, 6, 4, 6);
參數
名稱 | 類型 | 說明 |
---|---|---|
gridId | Integer | 試算表中的工作表專屬 ID (無論位置為何)。 |
column | Integer | 目標範圍的第一欄。 |
columnEnd | Integer | 目標範圍的結尾欄。 |
row | Integer | 目標範圍的起始列。 |
rowEnd | Integer | 目標範圍的結束列。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
另請參閱
copyValuesToRange(sheet, column, columnEnd, row, rowEnd)
將範圍的內容複製到指定位置。如果目的地較大或較小 來源範圍中的值,系統就會重複或截斷來源。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var source = ss.getSheets()[0]; var destination = ss.getSheets()[1]; var range = source.getRange("B2:D4"); // This copies the data in B2:D4 in the source sheet to // D4:F6 in the second sheet range.copyValuesToRange(destination, 4, 6, 4, 6);
參數
名稱 | 類型 | 說明 |
---|---|---|
sheet | Sheet | 目標工作表。 |
column | Integer | 目標範圍的第一欄。 |
columnEnd | Integer | 目標範圍的結尾欄。 |
row | Integer | 目標範圍的起始列。 |
rowEnd | Integer | 目標範圍的結束列。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
createDataSourcePivotTable(dataSource)
從資料來源建立空白的資料來源資料透視表,固定在 這個範圍
本例說明如何建立及設定新的資料來源資料透視表。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var anchorCell = spreadsheet.getSheets()[0].getRange('A1'); var dataSource = spreadsheet.getDataSources()[0]; var pivotTable = anchorCell.createDataSourcePivotTable(dataSource); pivotTable.addRowGroup('dataColumnA'); pivotTable.addColumnGroup('dataColumnB'); pivotTable.addPivotValue('dataColumnC', SpreadsheetApp.PivotTableSummarizeFunction.SUM); pivotTable.addFilter('dataColumnA', SpreadsheetApp.newFilterCriteria().whenTextStartsWith('A').build());
參數
名稱 | 類型 | 說明 |
---|---|---|
dataSource | DataSource | 要建立資料透視表的來源資料來源。 |
回攻員
DataSourcePivotTable
:新建的資料來源資料透視表。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
createDataSourceTable(dataSource)
從資料來源建立空白的資料來源表格,固定在以下內容的第一個儲存格 範圍。
本例說明如何建立及設定新的資料來源資料表。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var anchorCell = spreadsheet.getSheets()[0].getRange('A1'); var dataSource = spreadsheet.getDataSources()[0]; var dataSourceTable = anchorCell.createDataSourceTable(dataSource); .addColumns('dataColumnA', 'dataColumnB', 'dataColumnC') .addSortSpec('dataColumnA', /* ascending= *\/ true) .addSortSpec('dataColumnB', /* ascending= *\/ false);
參數
名稱 | 類型 | 說明 |
---|---|---|
dataSource | DataSource | 要建立資料透視表的來源資料來源。 |
回攻員
DataSourceTable
:新建的資料來源資料表。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
createDeveloperMetadataFinder()
傳回 DeveloperMetadataFinderApi,以尋找此範圍內的開發人員中繼資料 範圍。只有當中繼資料完全隸屬於該範圍時,中繼資料才會在範圍內 範圍。舉例來說,與第 3:3 列相關聯的中繼資料不在範圍內 「A1:D5」但位於「1:5」範圍內
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:C6. const range = sheet.getRange('A1:C6'); // Creates a developer metadata finder to search for metadata in the scope of this range. const developerMetaDataFinder = range.createDeveloperMetadataFinder(); // Logs information about the developer metadata finder to the console. const developerMetaData = developerMetaDataFinder.find()[0]; console.log(developerMetaData.getKey()); console.log(developerMetaData.getValue()); console.log(developerMetaData.getVisibility().toString());
回攻員
DeveloperMetadataFinder
:開發人員中繼資料搜尋器,可搜尋這個範圍內的中繼資料。
createFilter()
建立篩選器,並套用至工作表中的指定範圍。您建立的數量上限
一個篩選器如要在建立篩選器後存取及修改篩選器,請使用 getFilter()
或 Sheet.getFilter()
。
let ss = SpreadsheetApp.getActiveSheet(); let range = ss.getRange("A1:C20"); // Creates a new filter and applies it to the range A1:C20 on the active sheet. function createFilter() { range.createFilter(); } // Gets the filter and applies criteria that only shows cells that aren't empty. function getFilterAddCriteria() { let filter = range.getFilter(); let criteria = SpreadsheetApp.newFilterCriteria() .whenCellNotEmpty() .build(); filter.setColumnFilterCriteria(2, criteria); }
Grid
工作表 (預設類型的工作表) 建立篩選器。
格狀工作表是未連結至資料庫的工作表。如要建立其他類型的篩選器
請參閱下列資源:
- 使用「
PivotTable.addFilter(sourceDataColumn, filterCriteria)
」建立資料透視表篩選器 - 使用
DataSourceSheet.addFilter(columnName, filterCriteria)
為連結至資料庫的工作表建立篩選器 - 使用
DataSourcePivotTable.addFilter(columnName, filterCriteria)
為資料透視表建立篩選器,連結至資料庫
回攻員
Filter
:新的篩選器。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
createPivotTable(sourceData)
從指定sourceData
(固定在第一個儲存格) 建立空白資料透視表
符合範圍內
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets cell A1 as a range in order to place the pivot table. const range = sheet.getRange('A1'); // Gets the range of the source data for the pivot table. const dataRange = sheet.getRange('E12:G20'); // Creates an empty pivot table from the specified source data. const pivotTable = range.createPivotTable(dataRange); // Logs the values from the pivot table's source data to the console. console.log(pivotTable.getSourceDataRange().getValues());
參數
名稱 | 類型 | 說明 |
---|---|---|
sourceData | Range | 要用來建立資料透視表的資料。 |
回攻員
PivotTable
:新建立的 PivotTable
。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
createTextFinder(findText)
建立範圍的文字搜尋器,以便尋找和取代這個範圍中的文字。
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var range = sheet.getActiveRange(); // Creates a text finder for the range. var textFinder = range.createTextFinder('dog'); // Returns the first occurrence of 'dog'. var firstOccurrence = textFinder.findNext(); // Replaces the last found occurrence of 'dog' with 'cat' and returns the number // of occurrences replaced. var numOccurrencesReplaced = textFinder.replaceWith('cat');
參數
名稱 | 類型 | 說明 |
---|---|---|
findText | String | 要搜尋的文字。 |
回攻員
TextFinder
:範圍的 TextFinder
deleteCells(shiftDimension)
刪除這個儲存格範圍。與所提供維度一起,工作表中的現有資料會隨著移動 接近刪除範圍
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:D10"); range.deleteCells(SpreadsheetApp.Dimension.COLUMNS);
參數
名稱 | 類型 | 說明 |
---|---|---|
shiftDimension | Dimension | 用於移轉現有資料的維度。 |
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
expandGroups()
展開範圍或控制項切換鈕與這個範圍交集的收合群組。 控制項切換位置是指顯示控制項切換鈕的位置,緊接在 視設定而定如果同一個營業地點有多個群組 Fitbit 團隊已展開
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; var range = sheet.getActiveRange(); // All row and column groups within the range are expanded. range.expandGroups();
回攻員
Range
:這個範圍用於鏈結。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getA1Notation()
傳回範圍的字串說明 (使用 A1 標記法)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange(1, 1, 2, 5); // Logs "A1:E2" Logger.log(range.getA1Notation());
回攻員
String
:A1 標記法中的範圍字串說明。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getBackground()
傳回範圍中左上角儲存格的背景顏色 (例如 '#ffffff'
)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var cell = sheet.getRange("B5"); Logger.log(cell.getBackground());
回攻員
String
:背景的顏色代碼。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getBackgroundObject()
傳回範圍中左上角儲存格的背景顏色。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var cell = sheet.getRange("B5"); Logger.log(cell.getBackgroundObject().asRgbColor().asHexString());
回攻員
Color
:範圍左上角儲存格的背景顏色。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getBackgroundObjects()
傳回範圍中儲存格的背景顏色。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B5:C6"); var bgColors = range.getBackgroundObjects(); for (var i in bgColors) { for (var j in bgColors[i]) { Logger.log(bgColors[i][j].asRgbColor().asHexString()); } }
回攻員
Color[][]
:背景顏色的 2D 陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getBackgrounds()
傳回範圍中儲存格的背景顏色 (例如 '#ffffff'
)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B5:C6"); var bgColors = range.getBackgrounds(); for (var i in bgColors) { for (var j in bgColors[i]) { Logger.log(bgColors[i][j]); } }
回攻員
String[][]
:背景色彩代碼的 2D 陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getBandings()
傳回套用至這個範圍內任何儲存格的色帶。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Sets a range. const range = sheet.getRange('A1:K50'); // Gets the banding info for the range. const bandings = range.getBandings(); // Logs the second row color for each banding to the console. for (let banding of bandings) { console.log(banding.getSecondRowColor()); }
回攻員
Banding[]
- 套用至這個範圍內任何儲存格的色帶。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getCell(row, column)
傳回某範圍內的指定儲存格。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); // The row and column here are relative to the range // getCell(1,1) in this code returns the cell at B2 var cell = range.getCell(1, 1); Logger.log(cell.getValue());
參數
名稱 | 類型 | 說明 |
---|---|---|
row | Integer | 儲存格相對於範圍的列。 |
column | Integer | 儲存格相對於範圍的欄。 |
回攻員
Range
:包含指定座標的單一儲存格範圍。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getColumn()
傳回這個範圍的起始欄位置。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); // Logs "2.0" Logger.log(range.getColumn());
回攻員
Integer
:試算表中該範圍的起始欄位置。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataRegion()
傳回四個基數 Direction
中展開的範圍副本,涵蓋所有
相鄰儲存格中的資料,如果範圍包含空白儲存格 (不包含這些儲存格)
沿著對角線方向傳回範圍本身這與選取範圍
在編輯器中輸入 Ctrl+A
。
// Assume the active spreadsheet is blank. var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; sheet.getRange("C2").setValue(100); sheet.getRange("B3").setValue(100); sheet.getRange("D3").setValue(100); sheet.getRange("C4").setValue(100); // Logs "B2:D4" Logger.log(sheet.getRange("C3").getDataRegion().getA1Notation());
回攻員
Range
:整份試算表的範圍資料地區或範圍。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataRegion(dimension)
傳回 Direction.UP
和 Direction.DOWN
展開範圍的副本 (如果
的指定維度是 Dimension.ROWS
,或 Direction.NEXT
和 Direction.PREVIOUS
(如果維度為 Dimension.COLUMNS
)。範圍擴大
是根據在表格形式整理出的範圍旁邊偵測資料。擴大範圍
涵蓋所有相鄰儲存格中的資料,其中包含指定維度的資料,包括表格
界定範圍如果原始範圍在指定維度周圍有空白儲存格,
範圍本身。這個方法類似於在編輯器中選取範圍並輸入資料欄的
Ctrl+Space
,或在編輯器中輸入 Shift+Space
。
// Assume the active spreadsheet is blank. var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; sheet.getRange("C2").setValue(100); sheet.getRange("B3").setValue(100); sheet.getRange("D3").setValue(100); sheet.getRange("C4").setValue(100); // Logs "C2:C4" Logger.log(sheet.getRange("C3").getDataRegion(SpreadsheetApp.Dimension.ROWS).getA1Notation()); // Logs "B3:D3" Logger.log( sheet.getRange("C3").getDataRegion(SpreadsheetApp.Dimension.COLUMNS).getA1Notation());
參數
名稱 | 類型 | 說明 |
---|---|---|
dimension | Dimension | 用來擴大範圍的維度。 |
回攻員
Range
— 範圍的資料地區或範圍,涵蓋了每一欄或跨列的各列
原始範圍。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataSourceFormula()
傳回範圍內第一個儲存格的 DataSourceFormula
;如果傳回值,則傳回 null
儲存格不含資料來源公式。
// Opens the spreadsheet file by its ID. If you created your script from a Google Sheets file, // use SpreadsheetApp.getActiveSpreadsheet(). // TODO(developer): Replace the ID with your own. const ss = SpreadsheetApp.openById('abc123456'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1 on Sheet1. const range = sheet.getRange('A1'); // Gets the data source formula from cell A1. const dataSourceFormula = range.getDataSourceFormula(); // Gets the formula. const formula = dataSourceFormula.getFormula(); // Logs the formula. console.log(formula);
回攻員
DataSourceFormula
- 儲存格的 DataSourceFormula
。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataSourceFormulas()
傳回範圍內儲存格的 DataSourceFormula
。
// Opens the spreadsheet file by its ID. If you created your script from a Google Sheets file, // use SpreadsheetApp.getActiveSpreadsheet(). // TODO(developer): Replace the ID with your own. const ss = SpreadsheetApp.openById('abc123456'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:B5 on Sheet1. const range = sheet.getRange('A1:B5'); // Gets an array of the data source formulas in the range A1:B5. const dataSourceFormulas = range.getDataSourceFormulas(); // Logs the first formula in the array. console.log(dataSourceFormulas[0].getFormula());
回攻員
DataSourceFormula[]
— DataSourceFormula
的陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataSourcePivotTables()
取得與範圍交集的所有資料來源資料透視表。
// Opens the spreadsheet file by its ID. If you created your script from a Google Sheets file, // use SpreadsheetApp.getActiveSpreadsheet(). // TODO(developer): Replace the ID with your own. const ss = SpreadsheetApp.openById('abc123456'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:G50 on Sheet1. const range = sheet.getRange('A1:G50'); // Gets an array of the data source pivot tables in the range A1:G50. const dataSourcePivotTables = range.getDataSourcePivotTables(); // Logs the last time that the first pivot table in the array was refreshed. console.log(dataSourcePivotTables[0].getStatus().getLastRefreshedTime());
回攻員
DataSourcePivotTable[]
:資料來源資料透視表清單。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataSourceTables()
取得與範圍交集的所有資料來源資料表。
// Opens the spreadsheet file by its ID. If you created your script from a Google Sheets file, // use SpreadsheetApp.getActiveSpreadsheet(). // TODO(developer): Replace the ID with your own. const ss = SpreadsheetApp.openById('abc123456'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:G50 on Sheet1. const range = sheet.getRange('A1:G50'); // Gets the first data source table in the range A1:G50. const dataSourceTable = range.getDataSourceTables()[0]; // Logs the time of the last completed data execution on the data source table. console.log(dataSourceTable.getStatus().getLastExecutionTime());
回攻員
DataSourceTable[]
:資料來源資料表的清單。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataSourceUrl()
傳回這個範圍內資料的網址,可用來建立圖表和查詢。
Code.gs
function doGet() { var ss = SpreadsheetApp.openById('1khO6hBWTNNyvyyxvob7aoZTI9ZvlqqASNeq0e29Tw2c'); var sheet = ss.getSheetByName('ContinentData'); var range = sheet.getRange('A1:B8'); var template = HtmlService.createTemplateFromFile('piechart'); template.dataSourceUrl = range.getDataSourceUrl(); return template.evaluate(); }
piechart.html
<!DOCTYPE html> <html> <head> <!--Load the AJAX API--> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> // Load the Visualization API and the corechart package. google.charts.load('current', {'packages': ['corechart']}); // Set a callback to run when the Google Visualization API is loaded. google.charts.setOnLoadCallback(queryData); function queryData() { var query = new google.visualization.Query('<?= dataSourceUrl ?>'); query.send(drawChart); } // Callback that creates and populates a data table, // instantiates the pie chart, passes in the data and // draws it. function drawChart(response) { if (response.isError()) { alert('Error: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); // Set chart options. var options = { title: 'Population by Continent', width: 400, height: 300 }; // Instantiate and draw the chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <!-- Div that holds the pie chart. --> <div id="chart_div"></div> </body> </html>
回攻員
String
:這個範圍的網址做為資料來源,可傳遞至其他 API (例如圖表)。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataTable()
以 DataTable 的形式傳回這個物件內的資料。
// Opens the spreadsheet file by its ID. If you created your script from a Google Sheets file, // use SpreadsheetApp.getActiveSpreadsheet(). // TODO(developer): Replace the ID with your own. const ss = SpreadsheetApp.openById('abc123456'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets the range A1:B7 on Sheet1. const range = sheet.getRange('A1:B7'); // Gets the range A1:B7 as a data table. The values in each column must be of the same type. const datatable = range.getDataTable(); // Uses the Charts service to build a bar chart from the data table. // This doesn't build an embedded chart. To do that, use sheet.newChart().addRange() instead. const chart = Charts.newBarChart() .setDataTable(datatable) .setOption('title', 'Your Chart Title Here') .build();
回攻員
DataTable
:以資料表形式呈現資料。
getDataTable(firstRowIsHeader)
以資料表的形式傳回這個範圍內的資料。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("A1:B7"); // Calling this method with "true" sets the first line to be the title of the axes var datatable = range.getDataTable(true); // Note that this doesn't build an EmbeddedChart, so you can't just use // Sheet#insertChart(). To do that, use sheet.newChart().addRange() instead. var chart = Charts.newBarChart() .setDataTable(datatable) .setOption("title", "Your Title Here") .build();
參數
名稱 | 類型 | 說明 |
---|---|---|
firstRowIsHeader | Boolean | 是否將第一列設為標題。 |
回攻員
DataTable
:以資料表格形式呈現的資料。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataValidation()
傳回範圍內左上方的儲存格的資料驗證規則。如果資料驗證作業
已在儲存格中設定,則此方法會傳回 null
。
// Log information about the data validation rule for cell A1. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = cell.getDataValidation(); if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); Logger.log('The data validation rule is %s %s', criteria, args); } else { Logger.log('The cell does not have a data validation rule.') }
回攻員
DataValidation
:範圍左上角儲存格的資料驗證規則。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDataValidations()
傳回範圍內所有儲存格的資料驗證規則。如果未驗證資料
這個方法會針對該儲存格在陣列中的位置傳回 null
。
// Change existing data validation rules that require a date in 2013 to require a date in 2014. var oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; var newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); var rules = range.getDataValidations(); for (var i = 0; i < rules.length; i++) { for (var j = 0; j < rules[i].length; j++) { var rule = rules[i][j]; if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); if (criteria == SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN && args[0].getTime() == oldDates[0].getTime() && args[1].getTime() == oldDates[1].getTime()) { // Create a builder from the existing rule, then change the dates. rules[i][j] = rule.copy().withCriteria(criteria, newDates).build(); } } } } range.setDataValidations(rules);
回攻員
DataValidation[][]
:與
範圍。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDeveloperMetadata()
取得與這個範圍相關聯的開發人員中繼資料。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets row 2 on Sheet1. const range = sheet.getRange('2:2'); // Adds metadata to row 2. range.addDeveloperMetadata('NAME', 'GOOGLE'); // Logs the metadata to console. for (const metadata of range.getDeveloperMetadata()) { console.log(`${metadata.getKey()}: ${metadata.getValue()}`); }
回攻員
DeveloperMetadata[]
:與這個範圍相關聯的開發人員中繼資料。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDisplayValue()
傳回範圍左上角儲存格的顯示值。值為 String
。
顯示的值會考量日期、時間和貨幣格式設定,包括
格式是由試算表的語言代碼設定自動套用。空白儲存格傳回空白值
字串。
// Opens the spreadsheet file by its URL. If you created your script from within a // Google Sheets file, you can use SpreadsheetApp.getActiveSpreadsheet() instead. // TODO(developer): Replace the URL with your own. const ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/abc123456/edit'); // Gets Sheet1 by its name. const sheet = ss.getSheetByName('Sheet1'); // Gets cell A30 and sets its value to 'Test code.' const cell = sheet.getRange('A30'); cell.setValue('Test code'); // Gets the value and logs it to the console. console.log(cell.getDisplayValue());
回攻員
String
:這個儲存格中顯示的值。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getDisplayValues()
傳回這個範圍值的矩形網格。
傳回顯示值的二維陣列,先依列再依欄建立索引。
值為 String
物件顯示的值會將日期、時間和
貨幣格式,包括由試算表語言代碼自動套用的格式
以及環境敘述空白儲存格會以陣列中的空字串表示。請記住,
範圍索引從 1, 1
開始,JavaScript 陣列是從 [0][0]
建立索引。
// The code below gets the displayed values for the range C2:G8 // in the active spreadsheet. Note that this is a JavaScript array. var values = SpreadsheetApp.getActiveSheet().getRange(2, 3, 6, 4).getDisplayValues(); Logger.log(values[0][0]);
回攻員
String[][]
:值的二維陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFilter()
傳回這個範圍所屬工作表上的篩選器;如果沒有篩選器,則傳回 null
工作表。
let ss = SpreadsheetApp.getActiveSheet(); let range = ss.getRange("A1:C20"); // Gets the existing filter on the sheet that the given range belongs to. let filter = range.getFilter();
回攻員
Filter
:篩選器。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontColorObject()
傳回範圍左上角的儲存格字型顏色。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); Logger.log(range.getFontColorObject().asRgbColor().asHexString());
回攻員
Color
:範圍左上角儲存格的字型顏色。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontColorObjects()
傳回範圍中儲存格的字型顏色。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); var results = range.getFontColorObjects(); for (var i in results) { for (var j in results[i]) { Logger.log(results[i][j].asRgbColor().asHexString()); } }
回攻員
Color[][]
:與範圍中的儲存格相關聯的 2D 字型顏色陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontFamilies()
傳回範圍中儲存格的字型系列。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); var results = range.getFontFamilies(); for (var i in results) { for (var j in results[i]) { Logger.log(results[i][j]); } }
回攻員
String[][]
— 與範圍中的儲存格相關聯的 2D 字型系列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontFamily()
傳回範圍左上角的儲存格字型系列。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); Logger.log(range.getFontFamily());
回攻員
String
— 儲存格的字型系列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontLine()
取得儲存格範圍左上角的儲存格線條樣式 ('underline'
、
'line-through'
或 'none'
)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); Logger.log(range.getFontLine());
回攻員
String
:字型行。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontLines()
取得範圍中儲存格的線條樣式 ('underline'
、'line-through'
或
'none'
)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range = sheet.getRange("B2:D4"); var results = range.getFontLines(); for (var i in results) { for (var j in results[i]) { Logger.log(results[i][j]); } }
回攻員
String[][]
:與範圍中的儲存格相關聯的二維字型陣列。
授權
使用這個方法的指令碼需要下列一或多個範圍的授權:
-
https://www.googleapis.com/auth/spreadsheets.currentonly
-
https://www.googleapis.com/auth/spreadsheets
getFontSize()
傳回範圍左上角儲存格的字型大小 (以點大小表示)。
var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; var range =