/// /// /// /// declare namespace GoogleAppsScript { namespace Spreadsheet { /** * An enumeration of the types of series used to calculate auto-filled values. The manner in which * these series affect calculated values differs depending on the type and amount of source data. */ enum AutoFillSeries { DEFAULT_SERIES, ALTERNATE_SERIES, } /** * Access and modify bandings, the color patterns applied to rows or columns of a range. Each * banding consists of a range and a set of colors for rows, columns, headers, and footers. */ interface Banding { copyTo(range: Range): Banding; getFirstColumnColor(): string | null; getFirstRowColor(): string | null; getFooterColumnColor(): string | null; getFooterRowColor(): string | null; getHeaderColumnColor(): string | null; getHeaderRowColor(): string | null; getRange(): Range; getSecondColumnColor(): string | null; getSecondRowColor(): string | null; remove(): void; setFirstColumnColor(color: string | null): Banding; setFirstRowColor(color: string | null): Banding; setFooterColumnColor(color: string | null): Banding; setFooterRowColor(color: string | null): Banding; setHeaderColumnColor(color: string | null): Banding; setHeaderRowColor(color: string | null): Banding; setRange(range: Range): Banding; setSecondColumnColor(color: string | null): Banding; setSecondRowColor(color: string | null): Banding; } /** * An enumeration of banding themes. Each theme consists of several complementary colors that are * applied to different cells based on the banding settings. */ enum BandingTheme { LIGHT_GREY, CYAN, GREEN, YELLOW, ORANGE, BLUE, TEAL, GREY, BROWN, LIGHT_GREEN, INDIGO, PINK, } /** * Access the existing BigQuery data source specification. To create a new data source * specification, use SpreadsheetApp.newDataSourceSpec(). */ interface BigQueryDataSourceSpec { copy(): DataSourceSpecBuilder; getParameters(): DataSourceParameter[]; getProjectId(): string; getRawQuery(): string; getType(): DataSourceType; } /** * The builder for BigQueryDataSourceSpecBuilder. */ interface BigQueryDataSourceSpecBuilder { build(): DataSourceSpec; copy(): DataSourceSpecBuilder; getParameters(): DataSourceParameter[]; getProjectId(): string; getRawQuery(): string; getType(): DataSourceType; removeAllParameters(): BigQueryDataSourceSpecBuilder; removeParameter(parameterName: string): BigQueryDataSourceSpecBuilder; setParameterFromCell(parameterName: string, sourceCell: string): BigQueryDataSourceSpecBuilder; setProjectId(projectId: string): BigQueryDataSourceSpecBuilder; setRawQuery(rawQuery: string): BigQueryDataSourceSpecBuilder; } /** * Access boolean conditions in ConditionalFormatRules. Each * conditional format rule may contain a single boolean condition. The boolean condition itself * contains a boolean criteria (with values) and formatting settings. The criteria is evaluated * against the content of a cell resulting in either a true or false value. If the * criteria evaluates to true, the condition's formatting settings are applied to the cell. */ interface BooleanCondition { getBackground(): string | null; getBold(): boolean | null; getCriteriaType(): BooleanCriteria; getCriteriaValues(): any[]; getFontColor(): string | null; getItalic(): boolean | null; getStrikethrough(): boolean | null; getUnderline(): boolean | null; } /** * An enumeration representing the boolean criteria that can be used in conditional format or * filter. */ enum BooleanCriteria { CELL_EMPTY, CELL_NOT_EMPTY, DATE_AFTER, DATE_BEFORE, DATE_EQUAL_TO, DATE_AFTER_RELATIVE, DATE_BEFORE_RELATIVE, DATE_EQUAL_TO_RELATIVE, NUMBER_BETWEEN, NUMBER_EQUAL_TO, NUMBER_GREATER_THAN, NUMBER_GREATER_THAN_OR_EQUAL_TO, NUMBER_LESS_THAN, NUMBER_LESS_THAN_OR_EQUAL_TO, NUMBER_NOT_BETWEEN, NUMBER_NOT_EQUAL_TO, TEXT_CONTAINS, TEXT_DOES_NOT_CONTAIN, TEXT_EQUAL_TO, TEXT_STARTS_WITH, TEXT_ENDS_WITH, CUSTOM_FORMULA, } /** * Styles that can be set on a range using Range.setBorder(top, left, bottom, right, vertical, horizontal, color, style). */ enum BorderStyle { DOTTED, DASHED, SOLID, SOLID_MEDIUM, SOLID_THICK, DOUBLE, } /** * Represents an image to add to a cell. To add an image to a cell, you must create a new image * value for the image using SpreadsheetApp.newCellImage() and CellImageBuilder. Then you can * use Range.setValue(value) or Range.setValues(values) to add the image value to the cell. */ interface CellImage { valueType: ValueType; getAltTextDescription(): string; getAltTextTitle(): string; getContentUrl(): string; getUrl(): string | null; toBuilder(): CellImageBuilder; } /** * Builder for CellImage. This builder creates the image value needed to add an image to a cell. */ interface CellImageBuilder { valueType: ValueType; build(): CellImage; getAltTextDescription(): string; getAltTextTitle(): string; getContentUrl(): string; getUrl(): string | null; setAltTextDescription(description: string): CellImageBuilder; setAltTextTitle(title: string): CellImageBuilder; setSourceUrl(url: string): CellImageBuilder; toBuilder(): CellImageBuilder; } /** * A representation for a color. */ interface Color { asRgbColor(): Base.RgbColor; asThemeColor(): ThemeColor; getColorType(): Base.ColorType; } /** * The builder for ColorBuilder. To create a new builder, use SpreadsheetApp.newColor(). */ interface ColorBuilder { asRgbColor(): Base.RgbColor; asThemeColor(): ThemeColor; build(): Color; getColorType(): Base.ColorType; setRgbColor(cssString: string): ColorBuilder; setThemeColor(themeColorType: ThemeColorType): ColorBuilder; } /** * Access conditional formatting rules. To create a new rule, use SpreadsheetApp.newConditionalFormatRule() and ConditionalFormatRuleBuilder. * You can use Sheet.setConditionalFormatRules(rules) to set the * rules for a given sheet. */ interface ConditionalFormatRule { copy(): ConditionalFormatRuleBuilder; getBooleanCondition(): BooleanCondition | null; getGradientCondition(): GradientCondition | null; getRanges(): Range[]; } /** * Builder for conditional format rules. * * // Adds a conditional format rule to a sheet that causes cells in range A1:B3 to turn red if * // they contain a number between 1 and 10. * var sheet = SpreadsheetApp.getActiveSheet(); * var range = sheet.getRange("A1:B3"); * var rule = SpreadsheetApp.newConditionalFormatRule() * .whenNumberBetween(1, 10) * .setBackground("#FF0000") * .setRanges([range]) * .build(); * var rules = sheet.getConditionalFormatRules(); * rules.push(rule); * sheet.setConditionalFormatRules(rules); */ interface ConditionalFormatRuleBuilder { build(): ConditionalFormatRule; copy(): ConditionalFormatRuleBuilder; getBooleanCondition(): BooleanCondition | null; getGradientCondition(): GradientCondition | null; getRanges(): Range[]; setBackground(color: string | null): ConditionalFormatRuleBuilder; setBold(bold: boolean | null): ConditionalFormatRuleBuilder; setFontColor(color: string | null): ConditionalFormatRuleBuilder; setGradientMaxpoint(color: string): ConditionalFormatRuleBuilder; setGradientMaxpointWithValue( color: string, type: InterpolationType, value: string, ): ConditionalFormatRuleBuilder; setGradientMidpointWithValue( color: string, type: InterpolationType, value: string, ): ConditionalFormatRuleBuilder; setGradientMinpoint(color: string): ConditionalFormatRuleBuilder; setGradientMinpointWithValue( color: string, type: InterpolationType, value: string, ): ConditionalFormatRuleBuilder; setItalic(italic: boolean | null): ConditionalFormatRuleBuilder; setRanges(ranges: Range[]): ConditionalFormatRuleBuilder; setStrikethrough(strikethrough: boolean | null): ConditionalFormatRuleBuilder; setUnderline(underline: boolean | null): ConditionalFormatRuleBuilder; whenCellEmpty(): ConditionalFormatRuleBuilder; whenCellNotEmpty(): ConditionalFormatRuleBuilder; whenDateAfter(date: Base.Date): ConditionalFormatRuleBuilder; whenDateAfter(date: RelativeDate): ConditionalFormatRuleBuilder; whenDateBefore(date: Base.Date): ConditionalFormatRuleBuilder; whenDateBefore(date: RelativeDate): ConditionalFormatRuleBuilder; whenDateEqualTo(date: Base.Date): ConditionalFormatRuleBuilder; whenDateEqualTo(date: RelativeDate): ConditionalFormatRuleBuilder; whenFormulaSatisfied(formula: string): ConditionalFormatRuleBuilder; whenNumberBetween(start: number, end: number): ConditionalFormatRuleBuilder; whenNumberEqualTo(number: number): ConditionalFormatRuleBuilder; whenNumberGreaterThan(number: number): ConditionalFormatRuleBuilder; whenNumberGreaterThanOrEqualTo(number: number): ConditionalFormatRuleBuilder; whenNumberLessThan(number: number): ConditionalFormatRuleBuilder; whenNumberLessThanOrEqualTo(number: number): ConditionalFormatRuleBuilder; whenNumberNotBetween(start: number, end: number): ConditionalFormatRuleBuilder; whenNumberNotEqualTo(number: number): ConditionalFormatRuleBuilder; whenTextContains(text: string): ConditionalFormatRuleBuilder; whenTextDoesNotContain(text: string): ConditionalFormatRuleBuilder; whenTextEndsWith(text: string): ConditionalFormatRuleBuilder; whenTextEqualTo(text: string): ConditionalFormatRuleBuilder; whenTextStartsWith(text: string): ConditionalFormatRuleBuilder; withCriteria(criteria: BooleanCriteria, args: any[]): ConditionalFormatRuleBuilder; } /** * Access the chart's position within a sheet. Can be updated using the EmbeddedChart.modify() function. * * chart = chart.modify().setPosition(5, 5, 0, 0).build(); * sheet.updateChart(chart); */ interface ContainerInfo { getAnchorColumn(): Integer; getAnchorRow(): Integer; getOffsetX(): Integer; getOffsetY(): Integer; } /** * An enumeration of possible special paste types. */ enum CopyPasteType { PASTE_NORMAL, PASTE_NO_BORDERS, PASTE_FORMAT, PASTE_FORMULA, PASTE_DATA_VALIDATION, PASTE_VALUES, PASTE_CONDITIONAL_FORMATTING, PASTE_COLUMN_WIDTHS, } /** * An enumeration of data execution error codes. */ enum DataExecutionErrorCode { DATA_EXECUTION_ERROR_CODE_UNSUPPORTED, NONE, TIME_OUT, TOO_MANY_ROWS, TOO_MANY_CELLS, ENGINE, PARAMETER_INVALID, UNSUPPORTED_DATA_TYPE, DUPLICATE_COLUMN_NAMES, INTERRUPTED, OTHER, TOO_MANY_CHARS_PER_CELL, } /** * An enumeration of data execution states. */ enum DataExecutionState { DATA_EXECUTION_STATE_UNSUPPORTED, RUNNING, SUCCESS, ERROR, NOT_STARTED, } /** * The data execution status. */ interface DataExecutionStatus { getErrorCode(): DataExecutionErrorCode; getErrorMessage(): string; getExecutionState(): DataExecutionState; getLastRefreshedTime(): Base.Date | null; isTruncated(): boolean; } /** * Access and modify existing data source. To create a data source table with new data source, see * DataSourceTable. */ interface DataSource { getSpec(): DataSourceSpec; updateSpec(spec: DataSourceSpec): DataSource; } /** * Access and modify a data source column. * * Only use this class with data that's connected to a database. */ interface DataSourceColumn { getDataSource(): DataSource; getFormula(): string; getName(): string; hasArrayDependency(): boolean; isCalculatedColumn(): boolean; remove(): void; setFormula(formula: string): DataSourceColumn; setName(name: string): DataSourceColumn; } /** * Access and modify existing data source formulas. */ interface DataSourceFormula { forceRefreshData(): DataSourceFormula; getAnchorCell(): Range; getDataSource(): DataSource; getDisplayValue(): string; getFormula(): string; getStatus(): DataExecutionStatus; refreshData(): DataSourceFormula; setFormula(formula: string): DataSourceFormula; waitForCompletion(timeoutInSeconds: number): DataExecutionStatus; } /** * Access existing data source parameters. */ interface DataSourceParameter { getName(): string; getSourceCell(): string | null; getType(): DataSourceParameterType; } /** * An enumeration of data source parameter types. */ enum DataSourceParameterType { DATA_SOURCE_PARAMETER_TYPE_UNSUPPORTED, CELL, } /** * Access and modify existing data source pivot table. * Only use this class with data that's connected to a database */ interface DataSourcePivotTable { addColumnGroup(columnName: string): PivotGroup; addFilter(columnName: string, filterCriteria: FilterCriteria): PivotFilter; addPivotValue(columnName: string, summarizeFunction: PivotTableSummarizeFunction): PivotValue; addRowGroup(columnName: string): PivotGroup; asPivotTable(): PivotTable; forceRefreshData(): DataSourcePivotTable; getDataSource(): DataSource; getStatus(): DataExecutionStatus; refreshData(): DataSourcePivotTable; waitForCompletion(timeoutInSeconds: number): DataExecutionStatus; } /** * Access and modify existing data source sheet. To create a new data source sheet, use Spreadsheet.insertDataSourceSheet(spec). * * Only use this class with data that's connected to a database. */ interface DataSourceSheet { addFilter(columnName: string, filterCriteria: FilterCriteria): DataSourceSheet; asSheet(): Sheet; autoResizeColumn(columnName: string): DataSourceSheet; autoResizeColumns(columnNames: string[]): DataSourceSheet; forceRefreshData(): DataSourceSheet; getColumnWidth(columnName: string): number; getDataSource(): DataSource; getFilters(): DataSourceSheetFilter[]; getSheetValues(columnName: string, startRow?: number, numRows?: number): any[]; getSortSpecs(): SortSpec[]; getStatus(): DataExecutionStatus; refreshData(): DataSourceSheet; removeFilters(columnName: string): DataSourceSheet; removeSortSpec(columnName: string): DataSourceSheet; setColumnWidth(columnName: string, width: number): DataSourceSheet; setColumnWidths(columnNames: string[], width: number): DataSourceSheet; setSortSpec(columnName: string, ascending: boolean): DataSourceSheet; waitForCompletion(timeoutInSeconds: number): DataExecutionStatus; } /** * Access and modify an existing data source sheet filter. To create a new data source sheet filter, use DataSourceSheet.addFilter(columnName, filterCriteria). * * Only use this class with data that's connected to a database. */ interface DataSourceSheetFilter { getDataSourceColumn(): DataSourceColumn; getDataSourceSheet(): DataSourceSheet; getFilterCriteria(): FilterCriteria; remove(): void; setFilterCriteria(filterCriteria: FilterCriteria): DataSourceSheetFilter; } /** * Access the general settings of an existing data source spec. To access data source spec for * certain type, use as...() method. To create a new data source spec, use SpreadsheetApp.newDataSourceSpec(). * * This example shows how to get information from a BigQuery data source spec. * * var dataSourceTable = * SpreadsheetApp.getActive().getSheetByName("Data Sheet 1").getDataSourceTables()[0]; * var spec = dataSourceTable.getDataSource().getSpec(); * if (spec.getType() == SpreadsheetApp.DataSourceType.BIGQUERY) { * var bqSpec = spec.asBigQuery(); * Logger.log("Project ID: %s\n", bqSpec.getProjectId()); * Logger.log("Raw query string: %s\n", bqSpec.getRawQuery()); * } */ interface DataSourceSpec { asBigQuery(): BigQueryDataSourceSpec; copy(): DataSourceSpecBuilder; getParameters(): DataSourceParameter[]; getType(): DataSourceType; } /** * The builder for DataSourceSpec. To create a specification for certain type, use as...() method. To create a new builder, use SpreadsheetApp.newDataSourceSpec(). To use the specification, see DataSourceTable. * * This examples show how to build a BigQuery data source specification. * * var spec = SpreadsheetApp.newDataSourceSpec() * .asBigQuery() * .setProjectId('big_query_project') * .setRawQuery('select @FIELD from table limit @LIMIT') * .setParameterFromCell('FIELD', 'Sheet1!A1') * .setParameterFromCell('LIMIT', 'namedRangeCell') * .build(); */ interface DataSourceSpecBuilder { asBigQuery(): BigQueryDataSourceSpecBuilder; build(): DataSourceSpec; copy(): DataSourceSpecBuilder; getParameters(): DataSourceParameter[]; getType(): DataSourceType; removeAllParameters(): DataSourceSpecBuilder; removeParameter(parameterName: string): DataSourceSpecBuilder; setParameterFromCell(parameterName: string, sourceCell: string): DataSourceSpecBuilder; } /** * Access and modify existing data source table. To create a new data source table on a new sheet, * use Spreadsheet.insertSheetWithDataSourceTable(spec). * * This example shows how to create a new data source table. * * SpreadsheetApp.enableBigQueryExecution(); * var spreadsheet = SpreadsheetApp.getActive(); * var spec = SpreadsheetApp.newDataSourceSpec() * .asBigQuery() * .setProjectId('big_query_project') * .setRawQuery('select @FIELD from table limit @LIMIT') * .setParameterFromCell('FIELD', 'Sheet1!A1') * .setParameterFromCell('LIMIT', 'namedRangeCell') * .build(); * // Starts data execution asynchronously. * var dataSheet = spreadsheet.insertSheetWithDataSourceTable(spec); * var dataSourceTable = dataSheet.getDataSourceTables()[0]; * // waitForCompletion() blocks script execution until data execution completes. * dataSourceTable.waitForCompletion(60); * // Check status after execution. * Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState()); * * This example shows how to edit a data source. * * SpreadsheetApp.enableBigQueryExecution(); * var dataSheet = SpreadsheetApp.getActive().getSheetByName("Data Sheet 1"); * var dataSourceTable = dataSheet.getDataSourceTables()[0]; * var dataSource = dataSourceTable.getDataSource(); * var newSpec = dataSource.getSpec() * .copy() * .asBigQuery() * .setRawQuery('select name from table limit 2') * .removeAllParameters() * .build(); * // Updates data source specification and starts data execution asynchronously. * dataSource.updateSpec(newSpec); * // Check status during execution. * Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState()); * // waitForCompletion() blocks script execution until data execution completes. * dataSourceTable.waitForCompletion(60); * // Check status after execution. * Logger.log("Data execution state: %s.", dataSourceTable.getStatus().getExecutionState()); */ interface DataSourceTable { forceRefreshData(): DataSourceTable; getDataSource(): DataSource; getRange(): Range; getStatus(): DataExecutionStatus; refreshData(): DataSourceTable; waitForCompletion(timeoutInSeconds: Integer): DataExecutionStatus; } /** * An enumeration of data source types. */ enum DataSourceType { DATA_SOURCE_TYPE_UNSUPPORTED, BIGQUERY, } /** * Access data validation rules. To create a new rule, use SpreadsheetApp.newDataValidation() and DataValidationBuilder. You can use * Range.setDataValidation(rule) to set the validation rule for a range. * * // 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.') * } */ interface DataValidation { copy(): DataValidationBuilder; getAllowInvalid(): boolean; getCriteriaType(): DataValidationCriteria; getCriteriaValues(): any[]; getHelpText(): string; } /** * Builder for data validation rules. * * // Set the data validation for cell A1 to require a value from B1:B10. * var cell = SpreadsheetApp.getActive().getRange('A1'); * var range = SpreadsheetApp.getActive().getRange('B1:B10'); * var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); * cell.setDataValidation(rule); */ interface DataValidationBuilder { build(): DataValidation; copy(): DataValidationBuilder; getAllowInvalid(): boolean; getCriteriaType(): DataValidationCriteria; getCriteriaValues(): any[]; getHelpText(): string | null; requireCheckbox(): DataValidationBuilder; requireCheckbox(checkedValue: any): DataValidationBuilder; requireCheckbox(checkedValue: any, uncheckedValue: any): DataValidationBuilder; requireDate(): DataValidationBuilder; requireDateAfter(date: Base.Date): DataValidationBuilder; requireDateBefore(date: Base.Date): DataValidationBuilder; requireDateBetween(start: Base.Date, end: Base.Date): DataValidationBuilder; requireDateEqualTo(date: Base.Date): DataValidationBuilder; requireDateNotBetween(start: Base.Date, end: Base.Date): DataValidationBuilder; requireDateOnOrAfter(date: Base.Date): DataValidationBuilder; requireDateOnOrBefore(date: Base.Date): DataValidationBuilder; requireFormulaSatisfied(formula: string): DataValidationBuilder; requireNumberBetween(start: number, end: number): DataValidationBuilder; requireNumberEqualTo(number: number): DataValidationBuilder; requireNumberGreaterThan(number: number): DataValidationBuilder; requireNumberGreaterThanOrEqualTo(number: number): DataValidationBuilder; requireNumberLessThan(number: number): DataValidationBuilder; requireNumberLessThanOrEqualTo(number: number): DataValidationBuilder; requireNumberNotBetween(start: number, end: number): DataValidationBuilder; requireNumberNotEqualTo(number: number): DataValidationBuilder; requireTextContains(text: string): DataValidationBuilder; requireTextDoesNotContain(text: string): DataValidationBuilder; requireTextEqualTo(text: string): DataValidationBuilder; requireTextIsEmail(): DataValidationBuilder; requireTextIsUrl(): DataValidationBuilder; requireValueInList(values: string[]): DataValidationBuilder; requireValueInList(values: string[], showDropdown: boolean): DataValidationBuilder; requireValueInRange(range: Range): DataValidationBuilder; requireValueInRange(range: Range, showDropdown: boolean): DataValidationBuilder; setAllowInvalid(allowInvalidData: boolean): DataValidationBuilder; setHelpText(helpText: string): DataValidationBuilder; withCriteria(criteria: DataValidationCriteria, args: any[]): DataValidationBuilder; } /** * An enumeration representing the data validation criteria that can be set on a range. * * // 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); */ enum DataValidationCriteria { DATE_AFTER, DATE_BEFORE, DATE_BETWEEN, DATE_EQUAL_TO, DATE_IS_VALID_DATE, DATE_NOT_BETWEEN, DATE_ON_OR_AFTER, DATE_ON_OR_BEFORE, NUMBER_BETWEEN, NUMBER_EQUAL_TO, NUMBER_GREATER_THAN, NUMBER_GREATER_THAN_OR_EQUAL_TO, NUMBER_LESS_THAN, NUMBER_LESS_THAN_OR_EQUAL_TO, NUMBER_NOT_BETWEEN, NUMBER_NOT_EQUAL_TO, TEXT_CONTAINS, TEXT_DOES_NOT_CONTAIN, TEXT_EQUAL_TO, TEXT_IS_VALID_EMAIL, TEXT_IS_VALID_URL, VALUE_IN_LIST, VALUE_IN_RANGE, CUSTOM_FORMULA, CHECKBOX, } /** * Access and modify developer metadata. To create new developer metadata use Range.addDeveloperMetadata(key), Sheet.addDeveloperMetadata(key), or Spreadsheet.addDeveloperMetadata(key). */ interface DeveloperMetadata { getId(): Integer; getKey(): string; getLocation(): DeveloperMetadataLocation; getValue(): string | null; getVisibility(): DeveloperMetadataVisibility; moveToColumn(column: Range): DeveloperMetadata; moveToRow(row: Range): DeveloperMetadata; moveToSheet(sheet: Sheet): DeveloperMetadata; moveToSpreadsheet(): DeveloperMetadata; remove(): void; setKey(key: string): DeveloperMetadata; setValue(value: string): DeveloperMetadata; setVisibility(visibility: DeveloperMetadataVisibility): DeveloperMetadata; } /** * Search for developer metadata in a spreadsheet. To create new developer metadata finder use * Range.createDeveloperMetadataFinder(), Sheet.createDeveloperMetadataFinder(), * or Spreadsheet.createDeveloperMetadataFinder(). */ interface DeveloperMetadataFinder { find(): DeveloperMetadata[]; onIntersectingLocations(): DeveloperMetadataFinder; withId(id: Integer): DeveloperMetadataFinder; withKey(key: string): DeveloperMetadataFinder; withLocationType(locationType: DeveloperMetadataLocationType): DeveloperMetadataFinder; withValue(value: string): DeveloperMetadataFinder; withVisibility(visibility: DeveloperMetadataVisibility): DeveloperMetadataFinder; } /** * Access developer metadata location information. */ interface DeveloperMetadataLocation { getColumn(): Range | null; getLocationType(): DeveloperMetadataLocationType; getRow(): Range | null; getSheet(): Sheet | null; getSpreadsheet(): Spreadsheet | null; } /** * An enumeration of the types of developer metadata location types. */ enum DeveloperMetadataLocationType { SPREADSHEET, SHEET, ROW, COLUMN, } /** * An enumeration of the types of developer metadata visibility. */ enum DeveloperMetadataVisibility { DOCUMENT, PROJECT, } /** * An enumeration of possible directions along which data can be stored in a spreadsheet. */ enum Dimension { COLUMNS, ROWS, } /** * An enumeration representing the possible directions that one can move within a spreadsheet using * the arrow keys. */ enum Direction { UP, DOWN, PREVIOUS, NEXT, } /** * Represents a drawing over a sheet in a spreadsheet. */ interface Drawing { getContainerInfo(): ContainerInfo; getHeight(): Integer; getOnAction(): string; getSheet(): Sheet; getWidth(): Integer; getZIndex(): number; remove(): void; setHeight(height: Integer): Drawing; setOnAction(macroName: string): Drawing; setPosition(anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer): Drawing; setWidth(width: Integer): Drawing; setZIndex(zIndex: number): Drawing; } /** * Builder for area charts. For more details, see the Gviz * documentation. */ interface EmbeddedAreaChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedAreaChartBuilder; setBackgroundColor(cssValue: string): EmbeddedAreaChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedAreaChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedAreaChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPointStyle(style: Charts.PointStyle): EmbeddedAreaChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedAreaChartBuilder; setStacked(): EmbeddedAreaChartBuilder; setTitle(chartTitle: string): EmbeddedAreaChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; setXAxisTitle(title: string): EmbeddedAreaChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; setYAxisTitle(title: string): EmbeddedAreaChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedAreaChartBuilder; useLogScale(): EmbeddedAreaChartBuilder; } /** * Builder for bar charts. For more details, see the Gviz * documentation. */ interface EmbeddedBarChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedBarChartBuilder; reverseDirection(): EmbeddedBarChartBuilder; setBackgroundColor(cssValue: string): EmbeddedBarChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedBarChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedBarChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedBarChartBuilder; setStacked(): EmbeddedBarChartBuilder; setTitle(chartTitle: string): EmbeddedBarChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; setXAxisTitle(title: string): EmbeddedBarChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; setYAxisTitle(title: string): EmbeddedBarChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedBarChartBuilder; useLogScale(): EmbeddedBarChartBuilder; } /** * Represents a chart that has been embedded into a spreadsheet. * * This example shows how to modify an existing chart: * * var sheet = SpreadsheetApp.getActiveSheet(); * var range = sheet.getRange("A2:B8") * var chart = sheet.getCharts()[0]; * chart = chart.modify() * .addRange(range) * .setOption('title', 'Updated!') * .setOption('animation.duration', 500) * .setPosition(2,2,0,0) * .build(); * sheet.updateChart(chart); * * This example shows how to create a new chart: * * function newChart(range, sheet) { * var sheet = SpreadsheetApp.getActiveSheet(); * var chartBuilder = sheet.newChart(); * chartBuilder.addRange(range) * .setChartType(Charts.ChartType.LINE) * .setOption('title', 'My Line Chart!'); * sheet.insertChart(chartBuilder.build()); * } */ interface EmbeddedChart { getAs(contentType: string): Base.Blob; getBlob(): Base.Blob; getChartId(): Integer | null; getContainerInfo(): ContainerInfo; getHiddenDimensionStrategy(): Charts.ChartHiddenDimensionStrategy; getMergeStrategy(): Charts.ChartMergeStrategy; getNumHeaders(): Integer; getOptions(): Charts.ChartOptions; getRanges(): Range[]; getTransposeRowsAndColumns(): boolean; modify(): EmbeddedChartBuilder; } /** * Builder used to edit an EmbeddedChart. Changes made to the chart are not saved until * Sheet.updateChart(chart) is called on the rebuilt chart. * * var sheet = SpreadsheetApp.getActiveSheet(); * var range = sheet.getRange("A1:B8"); * var chart = sheet.getCharts()[0]; * chart = chart.modify() * .addRange(range) * .setOption('title', 'Updated!') * .setOption('animation.duration', 500) * .setPosition(2,2,0,0) * .build(); * sheet.updateChart(chart); */ interface EmbeddedChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; } /** * Builder for column charts. For more details, see the Gviz * documentation. */ interface EmbeddedColumnChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedColumnChartBuilder; setBackgroundColor(cssValue: string): EmbeddedColumnChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedColumnChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedColumnChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedColumnChartBuilder; setStacked(): EmbeddedColumnChartBuilder; setTitle(chartTitle: string): EmbeddedColumnChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; setXAxisTitle(title: string): EmbeddedColumnChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; setYAxisTitle(title: string): EmbeddedColumnChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedColumnChartBuilder; useLogScale(): EmbeddedColumnChartBuilder; } /** * Builder for combo charts. For more details, see the Gviz documentation. */ interface EmbeddedComboChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedComboChartBuilder; setBackgroundColor(cssValue: string): EmbeddedComboChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedComboChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedComboChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedComboChartBuilder; setStacked(): EmbeddedComboChartBuilder; setTitle(chartTitle: string): EmbeddedComboChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; setXAxisTitle(title: string): EmbeddedComboChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; setYAxisTitle(title: string): EmbeddedComboChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedComboChartBuilder; useLogScale(): EmbeddedComboChartBuilder; } /** * Builder for histogram charts. For more details, see the Gviz * documentation. */ interface EmbeddedHistogramChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedHistogramChartBuilder; setBackgroundColor(cssValue: string): EmbeddedHistogramChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedHistogramChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedHistogramChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedHistogramChartBuilder; setStacked(): EmbeddedHistogramChartBuilder; setTitle(chartTitle: string): EmbeddedHistogramChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; setXAxisTitle(title: string): EmbeddedHistogramChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; setYAxisTitle(title: string): EmbeddedHistogramChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedHistogramChartBuilder; useLogScale(): EmbeddedHistogramChartBuilder; } /** * Builder for line charts. For more details, see the Gviz * documentation. */ interface EmbeddedLineChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedLineChartBuilder; setBackgroundColor(cssValue: string): EmbeddedLineChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedLineChartBuilder; setCurveStyle(style: Charts.CurveStyle): EmbeddedLineChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedLineChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPointStyle(style: Charts.PointStyle): EmbeddedLineChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setRange(start: number, end: number): EmbeddedLineChartBuilder; setTitle(chartTitle: string): EmbeddedLineChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; setXAxisTitle(title: string): EmbeddedLineChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; setYAxisTitle(title: string): EmbeddedLineChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedLineChartBuilder; useLogScale(): EmbeddedLineChartBuilder; } /** * Builder for pie charts. For more details, see the Gviz * documentation. */ interface EmbeddedPieChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; reverseCategories(): EmbeddedPieChartBuilder; set3D(): EmbeddedPieChartBuilder; setBackgroundColor(cssValue: string): EmbeddedPieChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedPieChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedPieChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedPieChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setTitle(chartTitle: string): EmbeddedPieChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedPieChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; } /** * Builder for scatter charts. For more details, see the Gviz * documentation. */ interface EmbeddedScatterChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; setBackgroundColor(cssValue: string): EmbeddedScatterChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setColors(cssValues: string[]): EmbeddedScatterChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setLegendPosition(position: Charts.Position): EmbeddedScatterChartBuilder; setLegendTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPointStyle(style: Charts.PointStyle): EmbeddedScatterChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setTitle(chartTitle: string): EmbeddedScatterChartBuilder; setTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; setXAxisLogScale(): EmbeddedScatterChartBuilder; setXAxisRange(start: number, end: number): EmbeddedScatterChartBuilder; setXAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; setXAxisTitle(title: string): EmbeddedScatterChartBuilder; setXAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; setYAxisLogScale(): EmbeddedScatterChartBuilder; setYAxisRange(start: number, end: number): EmbeddedScatterChartBuilder; setYAxisTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; setYAxisTitle(title: string): EmbeddedScatterChartBuilder; setYAxisTitleTextStyle(textStyle: Charts.TextStyle): EmbeddedScatterChartBuilder; } /** * Builder for table charts. For more details, see the Gviz documentation. */ interface EmbeddedTableChartBuilder { addRange(range: Range): EmbeddedChartBuilder; asAreaChart(): EmbeddedAreaChartBuilder; asBarChart(): EmbeddedBarChartBuilder; asColumnChart(): EmbeddedColumnChartBuilder; asComboChart(): EmbeddedComboChartBuilder; asHistogramChart(): EmbeddedHistogramChartBuilder; asLineChart(): EmbeddedLineChartBuilder; asPieChart(): EmbeddedPieChartBuilder; asScatterChart(): EmbeddedScatterChartBuilder; asTableChart(): EmbeddedTableChartBuilder; build(): EmbeddedChart; clearRanges(): EmbeddedChartBuilder; enablePaging(enablePaging: boolean): EmbeddedTableChartBuilder; enablePaging(pageSize: Integer): EmbeddedTableChartBuilder; enablePaging(pageSize: Integer, startPage: Integer): EmbeddedTableChartBuilder; enableRtlTable(rtlEnabled: boolean): EmbeddedTableChartBuilder; enableSorting(enableSorting: boolean): EmbeddedTableChartBuilder; getChartType(): Charts.ChartType; getContainer(): ContainerInfo; getRanges(): Range[]; removeRange(range: Range): EmbeddedChartBuilder; setChartType(type: Charts.ChartType): EmbeddedChartBuilder; setFirstRowNumber(number: Integer): EmbeddedTableChartBuilder; setHiddenDimensionStrategy(strategy: Charts.ChartHiddenDimensionStrategy): EmbeddedChartBuilder; setInitialSortingAscending(column: Integer): EmbeddedTableChartBuilder; setInitialSortingDescending(column: Integer): EmbeddedTableChartBuilder; setMergeStrategy(mergeStrategy: Charts.ChartMergeStrategy): EmbeddedChartBuilder; setNumHeaders(headers: Integer): EmbeddedChartBuilder; setOption(option: string, value: any): EmbeddedChartBuilder; setPosition( anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): EmbeddedChartBuilder; setTransposeRowsAndColumns(transpose: boolean): EmbeddedChartBuilder; showRowNumberColumn(showRowNumber: boolean): EmbeddedTableChartBuilder; useAlternatingRowStyle(alternate: boolean): EmbeddedTableChartBuilder; } /** * Access and modify existing filters. To create a new filter, use Range.createFilter(). */ interface Filter { getColumnFilterCriteria(columnPosition: Integer): FilterCriteria | null; getRange(): Range; remove(): void; removeColumnFilterCriteria(columnPosition: Integer): Filter; setColumnFilterCriteria(columnPosition: Integer, filterCriteria: FilterCriteria | null): Filter; sort(columnPosition: Integer, ascending: boolean): Filter; } /** * Access filter criteria. To create a new criteria, use SpreadsheetApp.newFilterCriteria() and FilterCriteriaBuilder. */ interface FilterCriteria { copy(): FilterCriteriaBuilder; getCriteriaType(): BooleanCriteria; getCriteriaValues(): any[]; getHiddenValues(): string[]; getVisibleValues(): string[]; } /** * Builder for FilterCriteria. */ interface FilterCriteriaBuilder { build(): FilterCriteria; copy(): FilterCriteriaBuilder; getCriteriaType(): BooleanCriteria; getCriteriaValues(): any[]; getHiddenValues(): string[]; getVisibleValues(): string[]; setHiddenValues(values: string[]): FilterCriteriaBuilder; setVisibleValues(values: string[]): FilterCriteriaBuilder; whenCellEmpty(): FilterCriteriaBuilder; whenCellNotEmpty(): FilterCriteriaBuilder; whenDateAfter(date: Base.Date): FilterCriteriaBuilder; whenDateAfter(date: RelativeDate): FilterCriteriaBuilder; whenDateBefore(date: Base.Date): FilterCriteriaBuilder; whenDateBefore(date: RelativeDate): FilterCriteriaBuilder; whenDateEqualTo(date: Base.Date): FilterCriteriaBuilder; whenDateEqualTo(date: RelativeDate): FilterCriteriaBuilder; whenFormulaSatisfied(formula: string): FilterCriteriaBuilder; whenNumberBetween(start: number, end: number): FilterCriteriaBuilder; whenNumberEqualTo(number: number): FilterCriteriaBuilder; whenNumberGreaterThan(number: number): FilterCriteriaBuilder; whenNumberGreaterThanOrEqualTo(number: number): FilterCriteriaBuilder; whenNumberLessThan(number: number): FilterCriteriaBuilder; whenNumberLessThanOrEqualTo(number: number): FilterCriteriaBuilder; whenNumberNotBetween(start: number, end: number): FilterCriteriaBuilder; whenNumberNotEqualTo(number: number): FilterCriteriaBuilder; whenTextContains(text: string): FilterCriteriaBuilder; whenTextDoesNotContain(text: string): FilterCriteriaBuilder; whenTextEndsWith(text: string): FilterCriteriaBuilder; whenTextEqualTo(text: string): FilterCriteriaBuilder; whenTextStartsWith(text: string): FilterCriteriaBuilder; withCriteria(criteria: BooleanCriteria, args: any[]): FilterCriteriaBuilder; } /** * Access gradient (color) conditions in ConditionalFormatRuleApis. * Each conditional format rule may contain a single gradient condition. A gradient condition is * defined by three points along a number scale (min, mid, and max), each of which has a color, a * value, and a InterpolationType. The content of a cell is * compared to the values in the number scale and the color applied to the cell is interpolated * based on the cell content's proximity to the gradient condition min, mid, and max points. * * // Logs all the information inside gradient conditional format rules on a sheet. * var sheet = SpreadsheetApp.getActiveSheet(); * var rules = sheet.getConditionalFormatRules(); * for (int i = 0; i < rules.length; i++) { * var gradient = rules[i].getGradientCondition(); * Logger.log("The conditional format gradient information for rule %d:\n * MinColor %s, MinType %s, MinValue %s, \n * MidColor %s, MidType %s, MidValue %s, \n * MaxColor %s, MaxType %s, MaxValue %s \n", i, * gradient.getMinColor(), gradient.getMinType(), gradient.getMinValue(), * gradient.getMidColor(), gradient.getMidType(), gradient.getMidValue(), * gradient.getMaxColor(), gradient.getMaxType(), gradient.getMaxValue()); * } */ interface GradientCondition { getMaxColor(): string; getMaxType(): InterpolationType | null; getMaxValue(): string; getMidColor(): string; getMidType(): InterpolationType | null; getMidValue(): string; getMinColor(): string; getMinType(): InterpolationType | null; getMinValue(): string; } /** * Access and modify spreadsheet groups. Groups are an association between an interval of contiguous * rows or columns that can be expanded or collapsed as a unit to hide/show the rows or columns. * Each group has a control toggle on the row or column directly before or after the group * (depending on settings) that can expand or collapse the group as a whole. * * The depth of a group refers to the nested position of the group and how many larger * groups contain the group. The collapsed state of a group refers to whether the group * should remain collapsed or expanded after a parent group has been expanded. Additionally, at the * time that a group is collapsed or expanded, the rows or columns within the group are hidden or * set visible, though individual rows or columns can be hidden or set visible irrespective of the * collapsed state. */ interface Group { collapse(): Group; expand(): Group; getControlIndex(): Integer; getDepth(): Integer; getRange(): Range; isCollapsed(): boolean; remove(): void; } /** * An enumeration representing the possible positions that a group control toggle can have. */ enum GroupControlTogglePosition { BEFORE, AFTER, } /** * An enumeration representing the interpolation options for calculating a value to be used in a * GradientCondition in a ConditionalFormatRule. */ enum InterpolationType { NUMBER, PERCENT, PERCENTILE, MIN, MAX, } /** * Create, access and modify named ranges in a spreadsheet. Named ranges are ranges that have * associated string aliases. They can be viewed and edited via the Sheets UI under the Data > * Named ranges... menu. */ interface NamedRange { getName(): string; getRange(): Range; remove(): void; setName(name: string): NamedRange; setRange(range: Range): NamedRange; } /** * Represents an image over the grid in a spreadsheet. */ interface OverGridImage { assignScript(functionName: string): OverGridImage; getAltTextDescription(): string; getAltTextTitle(): string; getAnchorCell(): Range; getAnchorCellXOffset(): Integer; getAnchorCellYOffset(): Integer; getHeight(): Integer; getInherentHeight(): Integer; getInherentWidth(): Integer; getScript(): string; getSheet(): Sheet; getUrl(): string | null; getWidth(): Integer; remove(): void; replace(blob: Base.BlobSource): OverGridImage; replace(url: string): OverGridImage; resetSize(): OverGridImage; setAltTextDescription(description: string): OverGridImage; setAltTextTitle(title: string): OverGridImage; setAnchorCell(cell: Range): OverGridImage; setAnchorCellXOffset(offset: Integer): OverGridImage; setAnchorCellYOffset(offset: Integer): OverGridImage; setHeight(height: Integer): OverGridImage; setWidth(width: Integer): OverGridImage; } /** * Deprecated. For spreadsheets created in the newer version of Google Sheets, use the more powerful * Protection class instead. Although this class is deprecated, it remains available * for compatibility with the older version of Sheets. * Access and modify protected sheets in the older version of Google Sheets. */ interface PageProtection { /** @deprecated DO NOT USE */ addUser(email: string): void; /** @deprecated DO NOT USE */ getUsers(): string[]; /** @deprecated DO NOT USE */ isProtected(): boolean; /** @deprecated DO NOT USE */ removeUser(user: string): void; /** @deprecated DO NOT USE */ setProtected(protection: boolean): void; } /** * Access and modify pivot table filters. */ interface PivotFilter { getFilterCriteria(): FilterCriteria; getPivotTable(): PivotTable; getSourceDataColumn(): Integer; remove(): void; setFilterCriteria(filterCriteria: FilterCriteria): PivotFilter; } /** * Access and modify pivot table breakout groups. */ interface PivotGroup { addManualGroupingRule(groupName: string, groupMembers: any[]): PivotGroup; areLabelsRepeated(): boolean; clearGroupingRule(): PivotGroup; clearSort(): PivotGroup; getDimension(): Dimension; getIndex(): Integer; getPivotTable(): PivotTable; getSourceDataColumn(): Integer; hideRepeatedLabels(): PivotGroup; isSortAscending(): boolean; moveToIndex(index: Integer): PivotGroup; remove(): void; removeManualGroupingRule(groupName: string): PivotGroup; resetDisplayName(): PivotGroup; setDisplayName(name: string): PivotGroup; setHistogramGroupingRule(minValue: Integer, maxValue: Integer, intervalSize: Integer): PivotGroup; showRepeatedLabels(): PivotGroup; showTotals(showTotals: boolean): PivotGroup; sortAscending(): PivotGroup; sortBy(value: PivotValue, oppositeGroupValues: any[]): PivotGroup; sortDescending(): PivotGroup; totalsAreShown(): boolean; } /** * Access and modify pivot tables. */ interface PivotTable { addCalculatedPivotValue(name: string, formula: string): PivotValue; addColumnGroup(sourceDataColumn: Integer): PivotGroup; addFilter(sourceDataColumn: Integer, filterCriteria: FilterCriteria): PivotFilter; addPivotValue(sourceDataColumn: Integer, summarizeFunction: PivotTableSummarizeFunction): PivotValue; addRowGroup(sourceDataColumn: Integer): PivotGroup; getAnchorCell(): Range; getColumnGroups(): PivotGroup[]; getFilters(): PivotFilter[]; getPivotValues(): PivotValue[]; getRowGroups(): PivotGroup[]; getValuesDisplayOrientation(): Dimension; remove(): void; setValuesDisplayOrientation(dimension: Dimension): PivotTable; } /** * An enumeration of functions that summarize pivot table data. */ enum PivotTableSummarizeFunction { CUSTOM, SUM, COUNTA, COUNT, COUNTUNIQUE, AVERAGE, MAX, MIN, MEDIAN, PRODUCT, STDEV, STDEVP, VAR, VARP, } /** * Access and modify value groups in pivot tables. */ interface PivotValue { getDisplayType(): PivotValueDisplayType; getFormula(): string | null; getPivotTable(): PivotTable; getSummarizedBy(): PivotTableSummarizeFunction; setDisplayName(name: string): PivotValue; setFormula(formula: string): PivotValue; showAs(displayType: PivotValueDisplayType): PivotValue; summarizeBy(summarizeFunction: PivotTableSummarizeFunction): PivotValue; } /** * An enumeration of ways to display a pivot value as a function of another value. */ enum PivotValueDisplayType { DEFAULT, PERCENT_OF_ROW_TOTAL, PERCENT_OF_COLUMN_TOTAL, PERCENT_OF_GRAND_TOTAL, } /** * Access and modify protected ranges and sheets. A protected range can protect either a static * range of cells or a named range. A protected sheet may include unprotected regions. For * spreadsheets created with the older version of Google Sheets, use the PageProtection * class instead. * * // Protect range A1:B10, then remove all other users from the list of editors. * var ss = SpreadsheetApp.getActive(); * var range = ss.getRange('A1:B10'); * var protection = range.protect().setDescription('Sample protected range'); * * // Ensure the current user is an editor before removing others. Otherwise, if the user's edit * // permission comes from a group, the script throws an exception upon removing the group. * var me = Session.getEffectiveUser(); * protection.addEditor(me); * protection.removeEditors(protection.getEditors()); * if (protection.canDomainEdit()) { * protection.setDomainEdit(false); * } * * // Remove all range protections in the spreadsheet that the user has permission to edit. * var ss = SpreadsheetApp.getActive(); * var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); * for (var i = 0; i < protections.length; i++) { * var protection = protections[i]; * if (protection.canEdit()) { * protection.remove(); * } * } * * // Protect the active sheet, then remove all other users from the list of editors. * var sheet = SpreadsheetApp.getActiveSheet(); * var protection = sheet.protect().setDescription('Sample protected sheet'); * * // Ensure the current user is an editor before removing others. Otherwise, if the user's edit * // permission comes from a group, the script throws an exception upon removing the group. * var me = Session.getEffectiveUser(); * protection.addEditor(me); * protection.removeEditors(protection.getEditors()); * if (protection.canDomainEdit()) { * protection.setDomainEdit(false); * } */ interface Protection { addEditor(emailAddress: string): Protection; addEditor(user: Base.User): Protection; addEditors(emailAddresses: string[]): Protection; canDomainEdit(): boolean; canEdit(): boolean; getDescription(): string; getEditors(): Base.User[]; getProtectionType(): ProtectionType; getRange(): Range; getRangeName(): string | null; getUnprotectedRanges(): Range[]; isWarningOnly(): boolean; remove(): void; removeEditor(emailAddress: string): Protection; removeEditor(user: Base.User): Protection; removeEditors(emailAddresses: string[]): Protection; removeEditors(users: Base.User[]): Protection; setDescription(description: string): Protection; setDomainEdit(editable: boolean): Protection; setNamedRange(namedRange: NamedRange): Protection; setRange(range: Range): Protection; setRangeName(rangeName: string): Protection; setUnprotectedRanges(ranges: Range[]): Protection; setWarningOnly(warningOnly: boolean): Protection; } /** * An enumeration representing the parts of a spreadsheet that can be protected from edits. * * // Remove all range protections in the spreadsheet that the user has permission to edit. * var ss = SpreadsheetApp.getActive(); * var protections = ss.getProtections(SpreadsheetApp.ProtectionType.RANGE); * for (var i = 0; i < protections.length; i++) { * var protection = protections[i]; * if (protection.canEdit()) { * protection.remove(); * } * } * * // Removes sheet protection from the active sheet, if the user has permission to edit it. * var sheet = SpreadsheetApp.getActiveSheet(); * var protection = sheet.getProtections(SpreadsheetApp.ProtectionType.SHEET)[0]; * if (protection && protection.canEdit()) { * protection.remove(); * } */ enum ProtectionType { RANGE, SHEET, } type FontLine = "none" | "underline" | "line-through"; type FontStyle = "normal" | "italic"; type FontWeight = "normal" | "bold"; /** * Access and modify spreadsheet ranges. A range can be a single cell in a sheet or a group of * adjacent cells in a sheet. */ interface Range { activate(): Range; activateAsCurrentCell(): Range; addDeveloperMetadata(key: string): Range; addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Range; addDeveloperMetadata(key: string, value: string): Range; addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Range; applyColumnBanding(): Banding; applyColumnBanding(bandingTheme: BandingTheme): Banding; applyColumnBanding(bandingTheme: BandingTheme, showHeader: boolean, showFooter: boolean): Banding; applyRowBanding(): Banding; applyRowBanding(bandingTheme: BandingTheme): Banding; applyRowBanding(bandingTheme: BandingTheme, showHeader: boolean, showFooter: boolean): Banding; autoFill(destination: Range, series: AutoFillSeries): void; autoFillToNeighbor(series: AutoFillSeries): void; breakApart(): Range; canEdit(): boolean; check(): Range; clear(): Range; clear( options: { commentsOnly?: boolean | undefined; contentsOnly?: boolean | undefined; formatOnly?: boolean | undefined; validationsOnly?: boolean | undefined; skipFilteredRows?: boolean | undefined; }, ): Range; clearContent(): Range; clearDataValidations(): Range; clearFormat(): Range; clearNote(): Range; collapseGroups(): Range; copyFormatToRange( gridId: Integer, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer, ): void; copyFormatToRange(sheet: Sheet, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer): void; copyTo(destination: Range): void; copyTo(destination: Range, copyPasteType: CopyPasteType, transposed: boolean): void; copyTo( destination: Range, options: { formatOnly?: boolean | undefined; contentsOnly?: boolean | undefined }, ): void; copyValuesToRange( gridId: Integer, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer, ): void; copyValuesToRange(sheet: Sheet, column: Integer, columnEnd: Integer, row: Integer, rowEnd: Integer): void; createDataSourcePivotTable(dataSource: DataSource): DataSourcePivotTable; createDataSourceTable(dataSource: DataSource): DataSourceTable; createDeveloperMetadataFinder(): DeveloperMetadataFinder; createFilter(): Filter; createPivotTable(sourceData: Range): PivotTable; createTextFinder(findText: string): TextFinder; deleteCells(shiftDimension: Dimension): void; expandGroups(): Range; getA1Notation(): string; getBackground(): string; getBackgroundObject(): Color; getBackgroundObjects(): Color[][]; getBackgrounds(): string[][]; getBandings(): Banding[]; getCell(row: Integer, column: Integer): Range; getColumn(): Integer; getDataRegion(): Range; getDataRegion(dimension: Dimension): Range; getDataSourceFormula(): DataSourceFormula; getDataSourceFormulas(): DataSourceFormula[]; getDataSourcePivotTables(): DataSourcePivotTable[]; getDataSourceTables(): DataSourceTable[]; getDataSourceUrl(): string; getDataTable(): Charts.DataTable; getDataTable(firstRowIsHeader: boolean): Charts.DataTable; getDataValidation(): DataValidation | null; getDataValidations(): Array>; getDeveloperMetadata(): DeveloperMetadata[]; getDisplayValue(): string; getDisplayValues(): string[][]; getFilter(): Filter | null; /** @deprecated Deprecated, use getFontColorObject */ getFontColor(): string; /** @deprecated Deprecated, use getFontColorObjects */ getFontColors(): string[][]; getFontColorObject(): Color; getFontColorObjects(): Color[][]; getFontFamilies(): string[][]; getFontFamily(): string; getFontLine(): FontLine; getFontLines(): FontLine[][]; getFontSize(): Integer; getFontSizes(): Integer[][]; getFontStyle(): FontStyle; getFontStyles(): FontStyle[][]; getFontWeight(): FontWeight; getFontWeights(): FontWeight[][]; getFormula(): string; getFormulaR1C1(): string | null; getFormulas(): string[][]; getFormulasR1C1(): Array>; getGridId(): Integer; getHeight(): Integer; getHorizontalAlignment(): string; getHorizontalAlignments(): string[][]; getLastColumn(): Integer; getLastRow(): Integer; getMergedRanges(): Range[]; getNextDataCell(direction: Direction): Range; getNote(): string; getNotes(): string[][]; getNumColumns(): Integer; getNumRows(): Integer; getNumberFormat(): string; getNumberFormats(): string[][]; getRichTextValue(): RichTextValue | null; getRichTextValues(): Array>; getRow(): Integer; getRowIndex(): Integer; getSheet(): Sheet; getTextDirection(): TextDirection | null; getTextDirections(): Array>; getTextRotation(): TextRotation; getTextRotations(): TextRotation[][]; getTextStyle(): TextStyle; getTextStyles(): TextStyle[][]; getValue(): any; getValues(): any[][]; getVerticalAlignment(): string; getVerticalAlignments(): string[][]; getWidth(): Integer; getWrap(): boolean; getWrapStrategies(): WrapStrategy[][]; getWrapStrategy(): WrapStrategy; getWraps(): boolean[][]; insertCells(shiftDimension: Dimension): Range; insertCheckboxes(): Range; insertCheckboxes(checkedValue: any): Range; insertCheckboxes(checkedValue: any, uncheckedValue: any): Range; isBlank(): boolean; isChecked(): boolean | null; isEndColumnBounded(): boolean; isEndRowBounded(): boolean; isPartOfMerge(): boolean; isStartColumnBounded(): boolean; isStartRowBounded(): boolean; merge(): Range; mergeAcross(): Range; mergeVertically(): Range; moveTo(target: Range): void; offset(rowOffset: Integer, columnOffset: Integer): Range; offset(rowOffset: Integer, columnOffset: Integer, numRows: Integer): Range; offset(rowOffset: Integer, columnOffset: Integer, numRows: Integer, numColumns: Integer): Range; protect(): Protection; randomize(): Range; removeCheckboxes(): Range; removeDuplicates(): Range; removeDuplicates(columnsToCompare: Integer[]): Range; setBackground(color: string | null): Range; setBackgroundObject(color: Color | null): Range; setBackgroundObjects(color: Color[][] | null): Range; setBackgroundRGB(red: Integer, green: Integer, blue: Integer): Range; setBackgrounds(color: Array>): Range; setBorder( top: boolean | null, left: boolean | null, bottom: boolean | null, right: boolean | null, vertical: boolean | null, horizontal: boolean | null, ): Range; setBorder( top: boolean | null, left: boolean | null, bottom: boolean | null, right: boolean | null, vertical: boolean | null, horizontal: boolean | null, color: string | null, style: BorderStyle | null, ): Range; setDataValidation(rule: DataValidation | null): Range; setDataValidations(rules: Array>): Range; setFontColor(color: string | null): Range; setFontColorObject(color: Color | null): Range; setFontColorObjects(colors: Array>): Range; setFontColors(colors: any[][]): Range; setFontFamilies(fontFamilies: Array>): Range; setFontFamily(fontFamily: string | null): Range; setFontLine(fontLine: FontLine | null): Range; setFontLines(fontLines: Array>): Range; setFontSize(size: Integer): Range; setFontSizes(sizes: Integer[][]): Range; setFontStyle(fontStyle: FontStyle | null): Range; setFontStyles(fontStyles: Array>): Range; setFontWeight(fontWeight: FontWeight | null): Range; setFontWeights(fontWeights: Array>): Range; setFormula(formula: string): Range; setFormulaR1C1(formula: string): Range; setFormulas(formulas: string[][]): Range; setFormulasR1C1(formulas: string[][]): Range; setHorizontalAlignment(alignment: "left" | "center" | "normal" | "right" | null): Range; setHorizontalAlignments(alignments: Array>): Range; setNote(note: string | null): Range; setNotes(notes: Array>): Range; setNumberFormat(numberFormat: string): Range; setNumberFormats(numberFormats: string[][]): Range; setRichTextValue(value: RichTextValue): Range; setRichTextValues(values: RichTextValue[][]): Range; setShowHyperlink(showHyperlink: boolean): Range; setTextDirection(direction: TextDirection | null): Range; setTextDirections(directions: Array>): Range; setTextRotation(degrees: Integer): Range; setTextRotation(rotation: TextRotation): Range; setTextRotations(rotations: TextRotation[][]): Range; setTextStyle(style: TextStyle): Range; setTextStyles(styles: TextStyle[][]): Range; setValue(value: any): Range; setValues(values: any[][]): Range; setVerticalAlignment(alignment: "top" | "middle" | "bottom" | null): Range; setVerticalAlignments(alignments: Array>): Range; setVerticalText(isVertical: boolean): Range; setWrap(isWrapEnabled: boolean): Range; setWrapStrategies(strategies: WrapStrategy[][]): Range; setWrapStrategy(strategy: WrapStrategy): Range; setWraps(isWrapEnabled: boolean[][]): Range; shiftColumnGroupDepth(delta: Integer): Range; shiftRowGroupDepth(delta: Integer): Range; sort(sortSpecObj: any): Range; splitTextToColumns(): void; splitTextToColumns(delimiter: string): void; splitTextToColumns(delimiter: TextToColumnsDelimiter): void; trimWhitespace(): Range; uncheck(): Range; } /** * A collection of one or more Range instances in the same sheet. You can use this class * to apply operations on collections of non-adjacent ranges or cells. */ interface RangeList { activate(): RangeList; breakApart(): RangeList; check(): RangeList; clear(): RangeList; clear( options: { commentsOnly?: boolean | undefined; contentsOnly?: boolean | undefined; formatOnly?: boolean | undefined; validationsOnly?: boolean | undefined; skipFilteredRows?: boolean | undefined; }, ): RangeList; clearContent(): RangeList; clearDataValidations(): RangeList; clearFormat(): RangeList; clearNote(): RangeList; getRanges(): Range[]; insertCheckboxes(): RangeList; insertCheckboxes(checkedValue: any): RangeList; insertCheckboxes(checkedValue: any, uncheckedValue: any): RangeList; removeCheckboxes(): RangeList; setBackground(color: string | null): RangeList; setBackgroundRGB(red: Integer, green: Integer, blue: Integer): RangeList; setBorder( top: boolean | null, left: boolean | null, bottom: boolean | null, right: boolean | null, vertical: boolean | null, horizontal: boolean | null, ): RangeList; setBorder( top: boolean | null, left: boolean | null, bottom: boolean | null, right: boolean | null, vertical: boolean | null, horizontal: boolean | null, color: string | null, style: BorderStyle | null, ): RangeList; setFontColor(color: string | null): RangeList; setFontFamily(fontFamily: string | null): RangeList; setFontLine(fontLine: FontLine | null): RangeList; setFontSize(size: Integer): RangeList; setFontStyle(fontStyle: FontStyle | null): RangeList; setFontWeight(fontWeight: FontWeight | null): RangeList; setFormula(formula: string): RangeList; setFormulaR1C1(formula: string): RangeList; setHorizontalAlignment(alignment: "left" | "center" | "normal" | "right" | null): RangeList; setNote(note: string | null): RangeList; setNumberFormat(numberFormat: string): RangeList; setShowHyperlink(showHyperlink: boolean): RangeList; setTextDirection(direction: TextDirection | null): RangeList; setTextRotation(degrees: Integer): RangeList; setValue(value: any): RangeList; setVerticalAlignment(alignment: "top" | "middle" | "bottom" | null): RangeList; setVerticalText(isVertical: boolean): RangeList; setWrap(isWrapEnabled: boolean): RangeList; setWrapStrategy(strategy: WrapStrategy): RangeList; trimWhitespace(): RangeList; uncheck(): RangeList; } /** * An enumeration representing the possible intervals used in spreadsheet recalculation. */ enum RecalculationInterval { ON_CHANGE, MINUTE, HOUR, } /** * An enumeration representing the relative date options for calculating a value to be used in * date-based BooleanCriteria. */ enum RelativeDate { TODAY, TOMORROW, YESTERDAY, PAST_WEEK, PAST_MONTH, PAST_YEAR, } /** * A stylized text string used to represent cell text. Substrings of the text can have different * text styles. * * A run is the longest unbroken substring having the same text style. For example, the * sentence "This kid has two apples." has four runs: ["This ", "kid ", "has two ", * "apples."]. */ interface RichTextValue { copy(): RichTextValueBuilder; getEndIndex(): Integer; getLinkUrl(): string | null; getLinkUrl(startOffset: Integer, endOffset: Integer): string | null; getRuns(): RichTextValue[]; getStartIndex(): Integer; getText(): string; getTextStyle(): TextStyle; getTextStyle(startOffset: Integer, endOffset: Integer): TextStyle; } /** * A builder for Rich Text values. */ interface RichTextValueBuilder { build(): RichTextValue; setLinkUrl(startOffset: Integer, endOffset: Integer, linkUrl: string | null): RichTextValueBuilder; setLinkUrl(linkUrl: string | null): RichTextValueBuilder; setText(text: string): RichTextValueBuilder; setTextStyle(startOffset: Integer, endOffset: Integer, textStyle: TextStyle | null): RichTextValueBuilder; setTextStyle(textStyle: TextStyle | null): RichTextValueBuilder; } /** * Access the current active selection in the active sheet. A selection is the set of cells the user * has highlighted in the sheet, which can be non-adjacent ranges. One cell in the selection is the * current cell, where the user's current focus is. The current cell is highlighted with a * darker border in the Google Sheets UI. * * var activeSheet = SpreadsheetApp.getActiveSheet(); * var rangeList = activeSheet.getRangeList(['A1:B4', 'D1:E4']); * rangeList.activate(); * * var selection = activeSheet.getSelection(); * // Current Cell: D1 * Logger.log('Current Cell: ' + selection.getCurrentCell().getA1Notation()); * // Active Range: D1:E4 * Logger.log('Active Range: ' + selection.getActiveRange().getA1Notation()); * // Active Ranges: A1:B4, D1:E4 * var ranges = selection.getActiveRangeList().getRanges(); * for (var i = 0; i < ranges.length; i++) { * Logger.log('Active Ranges: ' + ranges[i].getA1Notation()); * } * Logger.log('Active Sheet: ' + selection.getActiveSheet().getName()); */ interface Selection { getActiveRange(): Range | null; getActiveRangeList(): RangeList | null; getActiveSheet(): Sheet; getCurrentCell(): Range | null; getNextDataRange(direction: Direction): Range | null; } /** * Access and modify spreadsheet sheets. Common operations are renaming a sheet and accessing range * objects from the sheet. */ interface Sheet { activate(): Sheet; addDeveloperMetadata(key: string): Sheet; addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Sheet; addDeveloperMetadata(key: string, value: string): Sheet; addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Sheet; appendRow(rowContents: any[]): Sheet; asDataSourceSheet(): DataSourceSheet | null; autoResizeColumn(columnPosition: Integer): Sheet; autoResizeColumns(startColumn: Integer, numColumns: Integer): Sheet; autoResizeRows(startRow: Integer, numRows: Integer): Sheet; clear(): Sheet; clear(options: { formatOnly?: boolean | undefined; contentsOnly?: boolean | undefined }): Sheet; clearConditionalFormatRules(): void; clearContents(): Sheet; clearFormats(): Sheet; clearNotes(): Sheet; collapseAllColumnGroups(): Sheet; collapseAllRowGroups(): Sheet; copyTo(spreadsheet: Spreadsheet): Sheet; createDeveloperMetadataFinder(): DeveloperMetadataFinder; createTextFinder(findText: string): TextFinder; deleteColumn(columnPosition: Integer): Sheet; deleteColumns(columnPosition: Integer, howMany: Integer): void; deleteRow(rowPosition: Integer): Sheet; deleteRows(rowPosition: Integer, howMany: Integer): void; expandAllColumnGroups(): Sheet; expandAllRowGroups(): Sheet; expandColumnGroupsUpToDepth(groupDepth: Integer): Sheet; expandRowGroupsUpToDepth(groupDepth: Integer): Sheet; getActiveCell(): Range; getActiveRange(): Range | null; getActiveRangeList(): RangeList | null; getBandings(): Banding[]; getCharts(): EmbeddedChart[]; getColumnGroup(columnIndex: Integer, groupDepth: Integer): Group | null; getColumnGroupControlPosition(): GroupControlTogglePosition; getColumnGroupDepth(columnIndex: Integer): Integer; getColumnWidth(columnPosition: Integer): Integer; getConditionalFormatRules(): ConditionalFormatRule[]; getCurrentCell(): Range | null; getDataRange(): Range; getDataSourceTables(): DataSourceTable[]; getDeveloperMetadata(): DeveloperMetadata[]; getDrawings(): Drawing[]; getFilter(): Filter | null; getFormUrl(): string | null; getFrozenColumns(): Integer; getFrozenRows(): Integer; getImages(): OverGridImage[]; getIndex(): Integer; getLastColumn(): Integer; getLastRow(): Integer; getMaxColumns(): Integer; getMaxRows(): Integer; getName(): string; getNamedRanges(): NamedRange[]; getParent(): Spreadsheet; getPivotTables(): PivotTable[]; getProtections(type: ProtectionType): Protection[]; getRange(row: Integer, column: Integer): Range; getRange(row: Integer, column: Integer, numRows: Integer): Range; getRange(row: Integer, column: Integer, numRows: Integer, numColumns: Integer): Range; getRange(a1Notation: string): Range; getRangeList(a1Notations: string[]): RangeList; getRowGroup(rowIndex: Integer, groupDepth: Integer): Group | null; getRowGroupControlPosition(): GroupControlTogglePosition; getRowGroupDepth(rowIndex: Integer): Integer; getRowHeight(rowPosition: Integer): Integer; getSelection(): Selection; getSheetId(): Integer; getSheetName(): string; getSheetValues(startRow: Integer, startColumn: Integer, numRows: Integer, numColumns: Integer): any[][]; getSlicers(): Slicer[]; getTabColor(): string | null; getType(): SheetType; hasHiddenGridlines(): boolean; hideColumn(column: Range): void; hideColumns(columnIndex: Integer): void; hideColumns(columnIndex: Integer, numColumns: Integer): void; hideRow(row: Range): void; hideRows(rowIndex: Integer): void; hideRows(rowIndex: Integer, numRows: Integer): void; hideSheet(): Sheet; insertChart(chart: EmbeddedChart): void; insertColumnAfter(afterPosition: Integer): Sheet; insertColumnBefore(beforePosition: Integer): Sheet; insertColumns(columnIndex: Integer): void; insertColumns(columnIndex: Integer, numColumns: Integer): void; insertColumnsAfter(afterPosition: Integer, howMany: Integer): Sheet; insertColumnsBefore(beforePosition: Integer, howMany: Integer): Sheet; insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): OverGridImage; insertImage( blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer, ): OverGridImage; insertImage(url: string, column: Integer, row: Integer): OverGridImage; insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage; insertRowAfter(afterPosition: Integer): Sheet; insertRowBefore(beforePosition: Integer): Sheet; insertRows(rowIndex: Integer): void; insertRows(rowIndex: Integer, numRows: Integer): void; insertRowsAfter(afterPosition: Integer, howMany: Integer): Sheet; insertRowsBefore(beforePosition: Integer, howMany: Integer): Sheet; insertSlicer(range: Range, anchorRowPos: Integer, anchorColPos: Integer): Slicer; insertSlicer( range: Range, anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer, ): Slicer; isColumnHiddenByUser(columnPosition: Integer): boolean; isRightToLeft(): boolean; isRowHiddenByFilter(rowPosition: Integer): boolean; isRowHiddenByUser(rowPosition: Integer): boolean; isSheetHidden(): boolean; moveColumns(columnSpec: Range, destinationIndex: Integer): void; moveRows(rowSpec: Range, destinationIndex: Integer): void; newChart(): EmbeddedChartBuilder; protect(): Protection; removeChart(chart: EmbeddedChart): void; setActiveRange(range: Range): Range; setActiveRangeList(rangeList: RangeList): RangeList; setActiveSelection(range: Range): Range; setActiveSelection(a1Notation: string): Range; setColumnGroupControlPosition(position: GroupControlTogglePosition): Sheet; setColumnWidth(columnPosition: Integer, width: Integer): Sheet; setColumnWidths(startColumn: Integer, numColumns: Integer, width: Integer): Sheet; setConditionalFormatRules(rules: ConditionalFormatRule[]): void; setCurrentCell(cell: Range): Range; setFrozenColumns(columns: Integer): void; setFrozenRows(rows: Integer): void; setHiddenGridlines(hideGridlines: boolean): Sheet; setName(name: string): Sheet; setRightToLeft(rightToLeft: boolean): Sheet; setRowGroupControlPosition(position: GroupControlTogglePosition): Sheet; setRowHeight(rowPosition: Integer, height: Integer): Sheet; setRowHeights(startRow: Integer, numRows: Integer, height: Integer): Sheet; setRowHeightsForced(startRow: Integer, numRows: Integer, height: Integer): Sheet; setTabColor(color: string | null): Sheet; showColumns(columnIndex: Integer): void; showColumns(columnIndex: Integer, numColumns: Integer): void; showRows(rowIndex: Integer): void; showRows(rowIndex: Integer, numRows: Integer): void; showSheet(): Sheet; sort(columnPosition: Integer): Sheet; sort(columnPosition: Integer, ascending: boolean): Sheet; unhideColumn(column: Range): void; unhideRow(row: Range): void; updateChart(chart: EmbeddedChart): void; /** @deprecated DO NOT USE */ getSheetProtection(): PageProtection; /** @deprecated DO NOT USE */ setSheetProtection(permissions: PageProtection): void; } /** * The different types of sheets that can exist in a spreadsheet. */ enum SheetType { GRID, OBJECT, } /** * Represents a slicer, which is used * to filter ranges, charts and pivot tables in a non-collaborative manner. This class contains * methods to access and modify existing slicers. To create a new slicer, use Sheet.insertSlicer(range, anchorRowPos, anchorColPos). */ interface Slicer { getBackgroundColor(): string | null; getColumnPosition(): Integer | null; getContainerInfo(): ContainerInfo; getFilterCriteria(): FilterCriteria | null; getRange(): Range; getTitle(): string; getTitleHorizontalAlignment(): string; getTitleTextStyle(): TextStyle; isAppliedToPivotTables(): boolean; remove(): void; setApplyToPivotTables(applyToPivotTables: boolean): Slicer; setBackgroundColor(color: string | null): Slicer; setColumnFilterCriteria(columnPosition: Integer, filterCriteria: FilterCriteria | null): Slicer; setPosition(anchorRowPos: Integer, anchorColPos: Integer, offsetX: Integer, offsetY: Integer): Slicer; setRange(rangeApi: Range): Slicer; setTitle(title: string): Slicer; setTitleHorizontalAlignment(horizontalAlignment: string | null): Slicer; setTitleTextStyle(textStyle: TextStyle): Slicer; } /** * Access and modify Google Sheets files. Common operations are adding new sheets and adding * collaborators. */ interface Spreadsheet { addDeveloperMetadata(key: string): Spreadsheet; addDeveloperMetadata(key: string, visibility: DeveloperMetadataVisibility): Spreadsheet; addDeveloperMetadata(key: string, value: string): Spreadsheet; addDeveloperMetadata(key: string, value: string, visibility: DeveloperMetadataVisibility): Spreadsheet; addEditor(emailAddress: string): Spreadsheet; addEditor(user: Base.User): Spreadsheet; addEditors(emailAddresses: string[]): Spreadsheet; addMenu(name: string, subMenus: Array<{ name: string; functionName: string } | null>): void; addViewer(emailAddress: string): Spreadsheet; addViewer(user: Base.User): Spreadsheet; addViewers(emailAddresses: string[]): Spreadsheet; appendRow(rowContents: any[]): Sheet; autoResizeColumn(columnPosition: Integer): Sheet; copy(name: string): Spreadsheet; createDeveloperMetadataFinder(): DeveloperMetadataFinder; createTextFinder(findText: string): TextFinder; deleteActiveSheet(): Sheet; deleteColumn(columnPosition: Integer): Sheet; deleteColumns(columnPosition: Integer, howMany: Integer): void; deleteRow(rowPosition: Integer): Sheet; deleteRows(rowPosition: Integer, howMany: Integer): void; deleteSheet(sheet: Sheet): void; duplicateActiveSheet(): Sheet; getActiveCell(): Range; getActiveRange(): Range | null; getActiveRangeList(): RangeList | null; getActiveSheet(): Sheet; getAs(contentType: string): Base.Blob; getBandings(): Banding[]; getBlob(): Base.Blob; getColumnWidth(columnPosition: Integer): Integer; getCurrentCell(): Range | null; getDataRange(): Range; getDataSourceTables(): DataSourceTable[]; getDeveloperMetadata(): DeveloperMetadata[]; getEditors(): Base.User[]; getFormUrl(): string | null; getFrozenColumns(): Integer; getFrozenRows(): Integer; getId(): string; getImages(): OverGridImage[]; getIterativeCalculationConvergenceThreshold(): number; getLastColumn(): Integer; getLastRow(): Integer; getMaxIterativeCalculationCycles(): Integer; getName(): string; getNamedRanges(): NamedRange[]; getNumSheets(): Integer; getOwner(): Base.User | null; getPredefinedSpreadsheetThemes(): SpreadsheetTheme[]; getProtections(type: ProtectionType): Protection[]; getRange(a1Notation: string): Range; getRangeByName(name: string): Range | null; getRangeList(a1Notations: string[]): RangeList; getRecalculationInterval(): RecalculationInterval; getRowHeight(rowPosition: Integer): Integer; getSelection(): Selection; getSheetByName(name: string): Sheet | null; getSheetId(): Integer; getSheetName(): string; getSheetValues(startRow: Integer, startColumn: Integer, numRows: Integer, numColumns: Integer): any[][]; getSheets(): Sheet[]; getSpreadsheetLocale(): string; getSpreadsheetTheme(): SpreadsheetTheme | null; getSpreadsheetTimeZone(): string; getUrl(): string; getViewers(): Base.User[]; hideColumn(column: Range): void; hideRow(row: Range): void; insertColumnAfter(afterPosition: Integer): Sheet; insertColumnBefore(beforePosition: Integer): Sheet; insertColumnsAfter(afterPosition: Integer, howMany: Integer): Sheet; insertColumnsBefore(beforePosition: Integer, howMany: Integer): Sheet; insertImage(blobSource: Base.BlobSource, column: Integer, row: Integer): OverGridImage; insertImage( blobSource: Base.BlobSource, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer, ): OverGridImage; insertImage(url: string, column: Integer, row: Integer): OverGridImage; insertImage(url: string, column: Integer, row: Integer, offsetX: Integer, offsetY: Integer): OverGridImage; insertRowAfter(afterPosition: Integer): Sheet; insertRowBefore(beforePosition: Integer): Sheet; insertRowsAfter(afterPosition: Integer, howMany: Integer): Sheet; insertRowsBefore(beforePosition: Integer, howMany: Integer): Sheet; insertSheet(): Sheet; insertSheet(sheetIndex: Integer): Sheet; insertSheet(sheetIndex: Integer, options: { template?: Sheet | undefined }): Sheet; insertSheet(options: { template?: Sheet | undefined }): Sheet; insertSheet(sheetName: string): Sheet; insertSheet(sheetName: string, sheetIndex: Integer): Sheet; insertSheet(sheetName: string, sheetIndex: Integer, options: { template?: Sheet | undefined }): Sheet; insertSheet(sheetName: string, options: { template?: Sheet | undefined }): Sheet; insertSheetWithDataSourceTable(spec: DataSourceSpec): Sheet; isColumnHiddenByUser(columnPosition: Integer): boolean; isIterativeCalculationEnabled(): boolean; isRowHiddenByFilter(rowPosition: Integer): boolean; isRowHiddenByUser(rowPosition: Integer): boolean; moveActiveSheet(pos: Integer): void; moveChartToObjectSheet(chart: EmbeddedChart): Sheet; removeEditor(emailAddress: string): Spreadsheet; removeEditor(user: Base.User): Spreadsheet; removeMenu(name: string): void; removeNamedRange(name: string): void; removeViewer(emailAddress: string): Spreadsheet; removeViewer(user: Base.User): Spreadsheet; rename(newName: string): void; renameActiveSheet(newName: string): void; resetSpreadsheetTheme(): SpreadsheetTheme; setActiveRange(range: Range): Range; setActiveRangeList(rangeList: RangeList): RangeList; setActiveSelection(range: Range): Range; setActiveSelection(a1Notation: string): Range; setActiveSheet(sheet: Sheet): Sheet; setActiveSheet(sheet: Sheet, restoreSelection: boolean): Sheet; setColumnWidth(columnPosition: Integer, width: Integer): Sheet; setCurrentCell(cell: Range): Range; setFrozenColumns(columns: Integer): void; setFrozenRows(rows: Integer): void; setIterativeCalculationConvergenceThreshold(minThreshold: number): Spreadsheet; setIterativeCalculationEnabled(isEnabled: boolean): Spreadsheet; setMaxIterativeCalculationCycles(maxIterations: Integer): Spreadsheet; setNamedRange(name: string, range: Range): void; setRecalculationInterval(recalculationInterval: RecalculationInterval): Spreadsheet; setRowHeight(rowPosition: Integer, height: Integer): Sheet; setSpreadsheetLocale(locale: string): void; setSpreadsheetTheme(theme: SpreadsheetTheme): SpreadsheetTheme; setSpreadsheetTimeZone(timezone: string): void; show(userInterface: HTML.HtmlOutput): void; sort(columnPosition: Integer): Sheet; sort(columnPosition: Integer, ascending: boolean): Sheet; toast(msg: string): void; toast(msg: string, title: string): void; toast(msg: string, title: string, timeoutSeconds: number | null): void; unhideColumn(column: Range): void; unhideRow(row: Range): void; updateMenu(name: string, subMenus: Array<{ name: string; functionName: string }>): void; /** @deprecated DO NOT USE */ getSheetProtection(): PageProtection; /** @deprecated DO NOT USE */ isAnonymousView(): boolean; /** @deprecated DO NOT USE */ isAnonymousWrite(): boolean; /** @deprecated DO NOT USE */ setAnonymousAccess( anonymousReadAllowed: boolean, anonymousWriteAllowed: boolean, ): void; /** @deprecated DO NOT USE */ setSheetProtection(permissions: PageProtection): void; } /** * Access and create Google Sheets files. This class is the parent class for the Spreadsheet service. */ interface SpreadsheetApp { AutoFillSeries: typeof AutoFillSeries; BandingTheme: typeof BandingTheme; BooleanCriteria: typeof BooleanCriteria; BorderStyle: typeof BorderStyle; ColorType: typeof Base.ColorType; CopyPasteType: typeof CopyPasteType; DataExecutionErrorCode: typeof DataExecutionErrorCode; DataExecutionState: typeof DataExecutionState; DataSourceParameterType: typeof DataSourceParameterType; DataSourceType: typeof DataSourceType; DataValidationCriteria: typeof DataValidationCriteria; DeveloperMetadataLocationType: typeof DeveloperMetadataLocationType; DeveloperMetadataVisibility: typeof DeveloperMetadataVisibility; Dimension: typeof Dimension; Direction: typeof Direction; GroupControlTogglePosition: typeof GroupControlTogglePosition; InterpolationType: typeof InterpolationType; PivotTableSummarizeFunction: typeof PivotTableSummarizeFunction; PivotValueDisplayType: typeof PivotValueDisplayType; ProtectionType: typeof ProtectionType; RecalculationInterval: typeof RecalculationInterval; RelativeDate: typeof RelativeDate; SheetType: typeof SheetType; TextDirection: typeof TextDirection; TextToColumnsDelimiter: typeof TextToColumnsDelimiter; ThemeColorType: typeof ThemeColorType; ValueType: typeof ValueType; WrapStrategy: typeof WrapStrategy; create(name: string): Spreadsheet; create(name: string, rows: Integer, columns: Integer): Spreadsheet; enableAllDataSourcesExecution(): void; enableBigQueryExecution(): void; flush(): void; getActive(): Spreadsheet; getActiveRange(): Range; getActiveRangeList(): RangeList; getActiveSheet(): Sheet; getActiveSpreadsheet(): Spreadsheet; getCurrentCell(): Range; getSelection(): Selection; getUi(): Base.Ui; newCellImage(): CellImageBuilder; newColor(): ColorBuilder; newConditionalFormatRule(): ConditionalFormatRuleBuilder; newDataSourceSpec(): DataSourceSpecBuilder; newDataValidation(): DataValidationBuilder; newFilterCriteria(): FilterCriteriaBuilder; newRichTextValue(): RichTextValueBuilder; newTextStyle(): TextStyleBuilder; open(file: Drive.File): Spreadsheet; openById(id: string): Spreadsheet; openByUrl(url: string): Spreadsheet; setActiveRange(range: Range): Range; setActiveRangeList(rangeList: RangeList): RangeList; setActiveSheet(sheet: Sheet): Sheet; setActiveSheet(sheet: Sheet, restoreSelection: boolean): Sheet; setActiveSpreadsheet(newActiveSpreadsheet: Spreadsheet): void; setCurrentCell(cell: Range): Range; } /** * Access and modify existing themes. To set a theme on a spreadsheet, use Spreadsheet.setSpreadsheetTheme(theme). */ interface SpreadsheetTheme { getConcreteColor(themeColorType: ThemeColorType): Color; getFontFamily(): string | null; getThemeColors(): ThemeColorType[]; setConcreteColor(themeColorType: ThemeColorType, color: Color): SpreadsheetTheme; setConcreteColor( themeColorType: ThemeColorType, red: Integer, green: Integer, blue: Integer, ): SpreadsheetTheme; setFontFamily(fontFamily: string): SpreadsheetTheme; } /** * An enumerations representing the sort order. */ enum SortOrder { ASCENDING, DESCENDING, } /** * The sorting specification. */ interface SortSpec { getBackgroundColor(): Color | null; getDataSourceColumn(): DataSourceColumn; getDimensionIndex(): number | null; getForegroundColor(): Color | null; getSortOrder(): SortOrder; isAscending(): boolean; } /** * An enumerations of text directions. */ enum TextDirection { LEFT_TO_RIGHT, RIGHT_TO_LEFT, } /** * Find or replace text within a range, sheet or spreadsheet. Can also specify search options. */ interface TextFinder { findAll(): Range[]; findNext(): Range | null; findPrevious(): Range | null; getCurrentMatch(): Range | null; ignoreDiacritics(ignoreDiacritics: boolean): TextFinder; matchCase(matchCase: boolean): TextFinder; matchEntireCell(matchEntireCell: boolean): TextFinder; matchFormulaText(matchFormulaText: boolean): TextFinder; replaceAllWith(replaceText: string): Integer; replaceWith(replaceText: string): Integer; startFrom(startRange: Range): TextFinder; useRegularExpression(useRegEx: boolean): TextFinder; } /** * Access the text rotation settings for a cell. */ interface TextRotation { getDegrees(): Integer; isVertical(): boolean; } /** * The rendered style of text in a cell. * * Text styles can have a corresponding RichTextValue. If the RichTextValue spans multiple text runs that have different values for a given text style read * method, the method returns null. To avoid this, query for text styles using the Rich Text * values returned by the RichTextValue.getRuns() method. */ interface TextStyle { copy(): TextStyleBuilder; getFontFamily(): string | null; getFontSize(): Integer | null; getForegroundColor(): string | null; getForegroundColorObject(): Color | null; isBold(): boolean | null; isItalic(): boolean | null; isStrikethrough(): boolean | null; isUnderline(): boolean | null; } /** * A builder for text styles. */ interface TextStyleBuilder { build(): TextStyle; setBold(bold: boolean): TextStyleBuilder; setFontFamily(fontFamily: string): TextStyleBuilder; setFontSize(fontSize: Integer): TextStyleBuilder; setForegroundColor(cssString: string): TextStyleBuilder; setForegroundColorObject(color: Color): TextStyleBuilder; setItalic(italic: boolean): TextStyleBuilder; setStrikethrough(strikethrough: boolean): TextStyleBuilder; setUnderline(underline: boolean): TextStyleBuilder; } /** * An enumeration of the types of preset delimiters that can split a column of text into multiple * columns. */ enum TextToColumnsDelimiter { COMMA, SEMICOLON, PERIOD, SPACE, } /** * A representation for a theme color. */ interface ThemeColor { getColorType(): Base.ColorType; getThemeColorType(): ThemeColorType; } /** * An enum which describes various color entries supported in themes. */ enum ThemeColorType { UNSUPPORTED, TEXT, BACKGROUND, ACCENT1, ACCENT2, ACCENT3, ACCENT4, ACCENT5, ACCENT6, HYPERLINK, } /** * An enumeration of the value types returned by Range.getValue and Range.getValues() from the Range class of the Spreadsheet service. * The enumeration values listed below are in addition to Number, Boolean, Date, or String. */ enum ValueType { IMAGE, } /** * An enumeration of the strategies used to handle cell text wrapping. */ enum WrapStrategy { WRAP, OVERFLOW, CLIP, } } } declare var SpreadsheetApp: GoogleAppsScript.Spreadsheet.SpreadsheetApp;