UNPKG

@types/google-apps-script

Version:
1,041 lines (1,040 loc) 129 kB
/// <reference path="google-apps-script.types.d.ts" /> /// <reference path="google-apps-script.base.d.ts" /> /// <reference path="google-apps-script.charts.d.ts" /> /// <reference path="google-apps-script.drive.d.ts" /> 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(textStyl