| <html><body> |
| <style> |
| |
| body, h1, h2, h3, div, span, p, pre, a { |
| margin: 0; |
| padding: 0; |
| border: 0; |
| font-weight: inherit; |
| font-style: inherit; |
| font-size: 100%; |
| font-family: inherit; |
| vertical-align: baseline; |
| } |
| |
| body { |
| font-size: 13px; |
| padding: 1em; |
| } |
| |
| h1 { |
| font-size: 26px; |
| margin-bottom: 1em; |
| } |
| |
| h2 { |
| font-size: 24px; |
| margin-bottom: 1em; |
| } |
| |
| h3 { |
| font-size: 20px; |
| margin-bottom: 1em; |
| margin-top: 1em; |
| } |
| |
| pre, code { |
| line-height: 1.5; |
| font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; |
| } |
| |
| pre { |
| margin-top: 0.5em; |
| } |
| |
| h1, h2, h3, p { |
| font-family: Arial, sans serif; |
| } |
| |
| h1, h2, h3 { |
| border-bottom: solid #CCC 1px; |
| } |
| |
| .toc_element { |
| margin-top: 0.5em; |
| } |
| |
| .firstline { |
| margin-left: 2 em; |
| } |
| |
| .method { |
| margin-top: 1em; |
| border: solid 1px #CCC; |
| padding: 1em; |
| background: #EEE; |
| } |
| |
| .details { |
| font-weight: bold; |
| font-size: 14px; |
| } |
| |
| </style> |
| |
| <h1><a href="sheets_v4.html">Google Sheets API</a> . <a href="sheets_v4.spreadsheets.html">spreadsheets</a></h1> |
| <h2>Instance Methods</h2> |
| <p class="toc_element"> |
| <code><a href="sheets_v4.spreadsheets.sheets.html">sheets()</a></code> |
| </p> |
| <p class="firstline">Returns the sheets Resource.</p> |
| |
| <p class="toc_element"> |
| <code><a href="sheets_v4.spreadsheets.values.html">values()</a></code> |
| </p> |
| <p class="firstline">Returns the values Resource.</p> |
| |
| <p class="toc_element"> |
| <code><a href="#batchUpdate">batchUpdate(spreadsheetId, body, x__xgafv=None)</a></code></p> |
| <p class="firstline">Applies one or more updates to the spreadsheet.</p> |
| <p class="toc_element"> |
| <code><a href="#create">create(body, x__xgafv=None)</a></code></p> |
| <p class="firstline">Creates a spreadsheet, returning the newly created spreadsheet.</p> |
| <p class="toc_element"> |
| <code><a href="#get">get(spreadsheetId, ranges=None, x__xgafv=None, includeGridData=None)</a></code></p> |
| <p class="firstline">Returns the spreadsheet at the given ID.</p> |
| <h3>Method Details</h3> |
| <div class="method"> |
| <code class="details" id="batchUpdate">batchUpdate(spreadsheetId, body, x__xgafv=None)</code> |
| <pre>Applies one or more updates to the spreadsheet. |
| |
| Each request is validated before |
| being applied. If any request is not valid then the entire request will |
| fail and nothing will be applied. |
| |
| Some requests have replies to |
| give you some information about how |
| they are applied. The replies will mirror the requests. For example, |
| if you applied 4 updates and the 3rd one had a reply, then the |
| response will have 2 empty replies, the actual reply, and another empty |
| reply, in that order. |
| |
| Due to the collaborative nature of spreadsheets, it is not guaranteed that |
| the spreadsheet will reflect exactly your changes after this completes, |
| however it is guaranteed that the updates in the request will be |
| applied together atomically. Your changes may be altered with respect to |
| collaborator changes. If there are no collaborators, the spreadsheet |
| should reflect your changes. |
| |
| Args: |
| spreadsheetId: string, The spreadsheet to apply the updates to. (required) |
| body: object, The request body. (required) |
| The object takes the form of: |
| |
| { # The request for updating any aspect of a spreadsheet. |
| "responseRanges": [ # Limits the ranges included in the response spreadsheet. |
| # Meaningful only if include_spreadsheet_response is 'true'. |
| "A String", |
| ], |
| "requests": [ # A list of updates to apply to the spreadsheet. |
| # Requests will be applied in the order they are specified. |
| # If any request is not valid, no requests will be applied. |
| { # A single kind of update to apply to a spreadsheet. |
| "duplicateFilterView": { # Duplicates a particular filter view. # Duplicates a filter view. |
| "filterId": 42, # The ID of the filter being duplicated. |
| }, |
| "sortRange": { # Sorts data in rows based on a sort order per column. # Sorts data in a range. |
| "range": { # A range on a sheet. # The range to sort. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| }, |
| "updateEmbeddedObjectPosition": { # Update an embedded object's position (such as a moving or resizing a # Updates an embedded object's (e.g. chart, image) position. |
| # chart or image). |
| "newPosition": { # The position of an embedded object such as a chart. # An explicit position to move the embedded object to. |
| # If newPosition.sheetId is set, |
| # a new sheet with that ID will be created. |
| # If newPosition.newSheet is set to true, |
| # a new sheet will be created with an ID that will be chosen for you. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "fields": "A String", # The fields of OverlayPosition |
| # that should be updated when setting a new position. Used only if |
| # newPosition.overlayPosition |
| # is set, in which case at least one field must |
| # be specified. The root `newPosition.overlayPosition` is implied and |
| # should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "objectId": 42, # The ID of the object to moved. |
| }, |
| "updateConditionalFormatRule": { # Updates a conditional format rule at the given index, # Updates an existing conditional format rule. |
| # or moves a conditional format rule to another index. |
| "index": 42, # The zero-based index of the rule that should be replaced or moved. |
| "newIndex": 42, # The zero-based new index the rule should end up at. |
| "sheetId": 42, # The sheet of the rule to move. Required if new_index is set, |
| # unused otherwise. |
| "rule": { # A rule describing a conditional format. # The rule that should replace the rule at the given index. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| }, |
| "updateProtectedRange": { # Updates an existing protected range with the specified # Updates a protected range. |
| # protectedRangeId. |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `protectedRange` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "protectedRange": { # A protected range. # The protected range to update with the new properties. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| }, |
| "deleteDimension": { # Deletes the dimensions from the sheet. # Deletes rows or columns in a sheet. |
| "range": { # A range along a single dimension on a sheet. # The dimensions to delete from the sheet. |
| # All indexes are zero-based. |
| # Indexes are half open: the start index is inclusive |
| # and the end index is exclusive. |
| # Missing indexes indicate the range is unbounded on that side. |
| "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded. |
| "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded. |
| "dimension": "A String", # The dimension of the span. |
| "sheetId": 42, # The sheet this span is on. |
| }, |
| }, |
| "addProtectedRange": { # Adds a new protected range. # Adds a protected range. |
| "protectedRange": { # A protected range. # The protected range to be added. The |
| # protectedRangeId field is optional; if |
| # one is not set, an id will be randomly generated. (It is an error to |
| # specify the ID of a range that already exists.) |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| }, |
| "deleteEmbeddedObject": { # Deletes the embedded object with the given ID. # Deletes an embedded object (e.g, chart, image) in a sheet. |
| "objectId": 42, # The ID of the embedded object to delete. |
| }, |
| "pasteData": { # Inserts data into the spreadsheet starting at the specified coordinate. # Pastes data (HTML or delimited) into a sheet. |
| "coordinate": { # A coordinate in a sheet. # The coordinate at which the data should start being inserted. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "data": "A String", # The data to insert. |
| "delimiter": "A String", # The delimiter in the data. |
| "html": True or False, # True if the data is HTML. |
| "type": "A String", # How the data should be pasted. |
| }, |
| "updateSpreadsheetProperties": { # Updates properties of a spreadsheet. # Updates the spreadsheet's properties. |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root 'properties' is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "properties": { # Properties of a spreadsheet. # The properties to update. |
| "title": "A String", # The title of the spreadsheet. |
| "locale": "A String", # The locale of the spreadsheet in one of the following formats: |
| # |
| # * an ISO 639-1 language code such as `en` |
| # |
| # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists |
| # |
| # * a combination of the ISO language code and country code, such as `en_US` |
| # |
| # Note: when updating this field, not all locales/languages are supported. |
| "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet. |
| # CellData.effectiveFormat will not be set if the |
| # cell's format is equal to this default format. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated. |
| "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative |
| # calculation. Absence of this field means that circular references will |
| # result in calculation errors. |
| # calculation. |
| "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by |
| # less than this threshold value, the calculation rounds stop. |
| "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation |
| # rounds to perform. |
| }, |
| "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as |
| # `America/New_York`. If the time zone isn't recognized, this may |
| # be a custom time zone such as `GMT-07:00`. |
| }, |
| }, |
| "appendCells": { # Adds new cells after the last row with data in a sheet, # Appends cells after the last row with data in a sheet. |
| # inserting new rows into the sheet if necessary. |
| "fields": "A String", # The fields of CellData that should be updated. |
| # At least one field must be specified. |
| # The root is the CellData; 'row.values.' should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "rows": [ # The data to append. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "sheetId": 42, # The sheet ID to append the data to. |
| }, |
| "duplicateSheet": { # Duplicates the contents of a sheet. # Duplicates a sheet. |
| "sourceSheetId": 42, # The sheet to duplicate. |
| "insertSheetIndex": 42, # The zero-based index where the new sheet should be inserted. |
| # The index of all sheets after this are incremented. |
| "newSheetName": "A String", # The name of the new sheet. If empty, a new name is chosen for you. |
| "newSheetId": 42, # If set, the ID of the new sheet. If not set, an ID is chosen. |
| # If set, the ID must not conflict with any existing sheet ID. |
| # If set, it must be non-negative. |
| }, |
| "updateSheetProperties": { # Updates properties of the sheet with the specified # Updates a sheet's properties. |
| # sheetId. |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `properties` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "properties": { # Properties of a sheet. # The properties to update. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| "addChart": { # Adds a chart to a sheet in the spreadsheet. # Adds a chart. |
| "chart": { # A chart embedded in a sheet. # The chart that should be added to the spreadsheet, including the position |
| # where it should be placed. The chartId |
| # field is optional; if one is not set, an id will be randomly generated. (It |
| # is an error to specify the ID of a chart that already exists.) |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| }, |
| "addConditionalFormatRule": { # Adds a new conditional format rule at the given index. # Adds a new conditional format rule. |
| # All subsequent rules' indexes are incremented. |
| "index": 42, # The zero-based index where the rule should be inserted. |
| "rule": { # A rule describing a conditional format. # The rule to add. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| }, |
| "deleteBanding": { # Removes the banded range with the given ID from the spreadsheet. # Removes a banded range |
| "bandedRangeId": 42, # The ID of the banded range to delete. |
| }, |
| "repeatCell": { # Updates all cells in the range to the values in the given Cell object. # Repeats a single cell across a range. |
| # Only the fields listed in the fields field are updated; others are |
| # unchanged. |
| # |
| # If writing a cell with a formula, the formula's ranges will automatically |
| # increment for each field in the range. |
| # For example, if writing a cell with formula `=A1` into range B2:C4, |
| # B2 would be `=A1`, B3 would be `=A2`, B4 would be `=A3`, |
| # C2 would be `=B1`, C3 would be `=B2`, C4 would be `=B3`. |
| # |
| # To keep the formula's ranges static, use the `$` indicator. |
| # For example, use the formula `=$A$1` to prevent both the row and the |
| # column from incrementing. |
| "cell": { # Data about a specific cell. # The data to write. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `cell` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "range": { # A range on a sheet. # The range to repeat the cell in. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| "findReplace": { # Finds and replaces data in cells over a range, sheet, or all sheets. # Finds and replaces occurrences of some text with other text. |
| "includeFormulas": True or False, # True if the search should include cells with formulas. |
| # False to skip cells with formulas. |
| "matchEntireCell": True or False, # True if the find value should match the entire cell. |
| "allSheets": True or False, # True to find/replace over all sheets. |
| "matchCase": True or False, # True if the search is case sensitive. |
| "find": "A String", # The value to search. |
| "range": { # A range on a sheet. # The range to find/replace over. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "searchByRegex": True or False, # True if the find value is a regex. |
| # The regular expression and replacement should follow Java regex rules |
| # at https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html. |
| # The replacement string is allowed to refer to capturing groups. |
| # For example, if one cell has the contents `"Google Sheets"` and another |
| # has `"Google Docs"`, then searching for `"o.* (.*)"` with a replacement of |
| # `"$1 Rocks"` would change the contents of the cells to |
| # `"GSheets Rocks"` and `"GDocs Rocks"` respectively. |
| "sheetId": 42, # The sheet to find/replace over. |
| "replacement": "A String", # The value to use as the replacement. |
| }, |
| "setBasicFilter": { # Sets the basic filter associated with a sheet. # Sets the basic filter on a sheet. |
| "filter": { # The default filter associated with a sheet. # The filter to set. |
| "range": { # A range on a sheet. # The range the filter covers. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| }, |
| "addFilterView": { # Adds a filter view. # Adds a filter view. |
| "filter": { # A filter view. # The filter to add. The filterViewId |
| # field is optional; if one is not set, an id will be randomly generated. (It |
| # is an error to specify the ID of a filter that already exists.) |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| }, |
| "updateCells": { # Updates all cells in a range with new data. # Updates many cells at once. |
| "start": { # A coordinate in a sheet. # The coordinate to start writing data at. |
| # Any number of rows and columns (including a different number of |
| # columns per row) may be written. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "range": { # A range on a sheet. # The range to write data to. |
| # |
| # If the data in rows does not cover the entire requested range, |
| # the fields matching those set in fields will be cleared. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "rows": [ # The data to write. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "fields": "A String", # The fields of CellData that should be updated. |
| # At least one field must be specified. |
| # The root is the CellData; 'row.values.' should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| }, |
| "autoFill": { # Fills in more data based on existing data. # Automatically fills in more data based on existing data. |
| "useAlternateSeries": True or False, # True if we should generate data with the "alternate" series. |
| # This differs based on the type and amount of source data. |
| "sourceAndDestination": { # A combination of a source range and how to extend that source. # The source and destination areas to autofill. |
| # This explicitly lists the source of the autofill and where to |
| # extend that data. |
| "source": { # A range on a sheet. # The location of the data to use as the source of the autofill. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "dimension": "A String", # The dimension that data should be filled into. |
| "fillLength": 42, # The number of rows or columns that data should be filled into. |
| # Positive numbers expand beyond the last row or last column |
| # of the source. Negative numbers expand before the first row |
| # or first column of the source. |
| }, |
| "range": { # A range on a sheet. # The range to autofill. This will examine the range and detect |
| # the location that has data and automatically fill that data |
| # in to the rest of the range. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| "appendDimension": { # Appends rows or columns to the end of a sheet. # Appends dimensions to the end of a sheet. |
| "length": 42, # The number of rows or columns to append. |
| "dimension": "A String", # Whether rows or columns should be appended. |
| "sheetId": 42, # The sheet to append rows or columns to. |
| }, |
| "updateBanding": { # Updates properties of the supplied banded range. # Updates a banded range |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `bandedRange` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range to update with the new properties. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| }, |
| "autoResizeDimensions": { # Automatically resizes one or more dimensions based on the contents # Automatically resizes one or more dimensions based on the contents |
| # of the cells in that dimension. |
| # of the cells in that dimension. |
| "dimensions": { # A range along a single dimension on a sheet. # The dimensions to automatically resize. |
| # Only COLUMNS are supported. |
| # All indexes are zero-based. |
| # Indexes are half open: the start index is inclusive |
| # and the end index is exclusive. |
| # Missing indexes indicate the range is unbounded on that side. |
| "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded. |
| "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded. |
| "dimension": "A String", # The dimension of the span. |
| "sheetId": 42, # The sheet this span is on. |
| }, |
| }, |
| "updateDimensionProperties": { # Updates properties of dimensions within the specified range. # Updates dimensions' properties. |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `properties` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "range": { # A range along a single dimension on a sheet. # The rows or columns to update. |
| # All indexes are zero-based. |
| # Indexes are half open: the start index is inclusive |
| # and the end index is exclusive. |
| # Missing indexes indicate the range is unbounded on that side. |
| "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded. |
| "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded. |
| "dimension": "A String", # The dimension of the span. |
| "sheetId": 42, # The sheet this span is on. |
| }, |
| "properties": { # Properties about a dimension. # Properties to update. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| }, |
| "unmergeCells": { # Unmerges cells in the given range. # Unmerges merged cells. |
| "range": { # A range on a sheet. # The range within which all cells should be unmerged. |
| # If the range spans multiple merges, all will be unmerged. |
| # The range must not partially span any merge. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| "setDataValidation": { # Sets a data validation rule to every cell in the range. # Sets data validation for one or more cells. |
| # To clear validation in a range, call this with no rule specified. |
| "range": { # A range on a sheet. # The range the data validation rule should apply to. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "rule": { # A data validation rule. # The data validation rule to set on each cell in the range, |
| # or empty to clear the data validation in the range. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| "deleteRange": { # Deletes a range of cells, shifting other cells into the deleted area. # Deletes a range of cells from a sheet, shifting the remaining cells. |
| "range": { # A range on a sheet. # The range of cells to delete. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "shiftDimension": "A String", # The dimension from which deleted cells will be replaced with. |
| # If ROWS, existing cells will be shifted upward to |
| # replace the deleted cells. If COLUMNS, existing cells |
| # will be shifted left to replace the deleted cells. |
| }, |
| "clearBasicFilter": { # Clears the basic filter, if any exists on the sheet. # Clears the basic filter on a sheet. |
| "sheetId": 42, # The sheet ID on which the basic filter should be cleared. |
| }, |
| "textToColumns": { # Splits a column of text into multiple columns, # Converts a column of text into many columns of text. |
| # based on a delimiter in each cell. |
| "source": { # A range on a sheet. # The source data range. This must span exactly one column. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "delimiter": "A String", # The delimiter to use. Used only if delimiterType is |
| # CUSTOM. |
| "delimiterType": "A String", # The delimiter type to use. |
| }, |
| "updateChartSpec": { # Updates a chart's specifications. # Updates a chart's specifications. |
| # (This does not move or resize a chart. To move or resize a chart, use |
| # UpdateEmbeddedObjectPositionRequest.) |
| "chartId": 42, # The ID of the chart to update. |
| "spec": { # The specifications of a chart. # The specification to apply to the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| "moveDimension": { # Moves one or more rows or columns. # Moves rows or columns to another location in a sheet. |
| "source": { # A range along a single dimension on a sheet. # The source dimensions to move. |
| # All indexes are zero-based. |
| # Indexes are half open: the start index is inclusive |
| # and the end index is exclusive. |
| # Missing indexes indicate the range is unbounded on that side. |
| "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded. |
| "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded. |
| "dimension": "A String", # The dimension of the span. |
| "sheetId": 42, # The sheet this span is on. |
| }, |
| "destinationIndex": 42, # The zero-based start index of where to move the source data to, |
| # based on the coordinates *before* the source data is removed |
| # from the grid. Existing data will be shifted down or right |
| # (depending on the dimension) to make room for the moved dimensions. |
| # The source dimensions are removed from the grid, so the |
| # the data may end up in a different index than specified. |
| # |
| # For example, given `A1..A5` of `0, 1, 2, 3, 4` and wanting to move |
| # `"1"` and `"2"` to between `"3"` and `"4"`, the source would be |
| # `ROWS [1..3)`,and the destination index would be `"4"` |
| # (the zero-based index of row 5). |
| # The end result would be `A1..A5` of `0, 3, 1, 2, 4`. |
| }, |
| "addNamedRange": { # Adds a named range to the spreadsheet. # Adds a named range. |
| "namedRange": { # A named range. # The named range to add. The namedRangeId |
| # field is optional; if one is not set, an id will be randomly generated. (It |
| # is an error to specify the ID of a range that already exists.) |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| }, |
| "addBanding": { # Adds a new banded range to the spreadsheet. # Adds a new banded range |
| "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range to add. The bandedRangeId |
| # field is optional; if one is not set, an id will be randomly generated. (It |
| # is an error to specify the ID of a range that already exists.) |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| }, |
| "deleteFilterView": { # Deletes a particular filter view. # Deletes a filter view from a sheet. |
| "filterId": 42, # The ID of the filter to delete. |
| }, |
| "mergeCells": { # Merges all cells in the range. # Merges cells together. |
| "range": { # A range on a sheet. # The range of cells to merge. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "mergeType": "A String", # How the cells should be merged. |
| }, |
| "deleteProtectedRange": { # Deletes the protected range with the given ID. # Deletes a protected range. |
| "protectedRangeId": 42, # The ID of the protected range to delete. |
| }, |
| "insertRange": { # Inserts cells into a range, shifting the existing cells over or down. # Inserts new cells in a sheet, shifting the existing cells. |
| "range": { # A range on a sheet. # The range to insert new cells into. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "shiftDimension": "A String", # The dimension which will be shifted when inserting cells. |
| # If ROWS, existing cells will be shifted down. |
| # If COLUMNS, existing cells will be shifted right. |
| }, |
| "deleteSheet": { # Deletes the requested sheet. # Deletes a sheet. |
| "sheetId": 42, # The ID of the sheet to delete. |
| }, |
| "updateBorders": { # Updates the borders of a range. # Updates the borders in a range of cells. |
| # If a field is not set in the request, that means the border remains as-is. |
| # For example, with two subsequent UpdateBordersRequest: |
| # |
| # 1. range: A1:A5 `{ top: RED, bottom: WHITE }` |
| # 2. range: A1:A5 `{ left: BLUE }` |
| # |
| # That would result in A1:A5 having a borders of |
| # `{ top: RED, bottom: WHITE, left: BLUE }`. |
| # If you want to clear a border, explicitly set the style to |
| # NONE. |
| "right": { # A border along a cell. # The border to put at the right of the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The border to put at the bottom of the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "top": { # A border along a cell. # The border to put at the top of the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "innerHorizontal": { # A border along a cell. # The horizontal border to put within the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "range": { # A range on a sheet. # The range whose borders should be updated. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "innerVertical": { # A border along a cell. # The vertical border to put within the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The border to put at the left of the range. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "cutPaste": { # Moves data from the source to the destination. # Cuts data from one area and pastes it to another. |
| "pasteType": "A String", # What kind of data to paste. All the source data will be cut, regardless |
| # of what is pasted. |
| "source": { # A range on a sheet. # The source data to cut. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "destination": { # A coordinate in a sheet. # The top-left coordinate where the data should be pasted. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| }, |
| "copyPaste": { # Copies data from the source to the destination. # Copies data from one area and pastes it to another. |
| "pasteType": "A String", # What kind of data to paste. |
| "source": { # A range on a sheet. # The source range to copy. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "destination": { # A range on a sheet. # The location to paste to. If the range covers a span that's |
| # a multiple of the source's height or width, then the |
| # data will be repeated to fill in the destination range. |
| # If the range is smaller than the source range, the entire |
| # source data will still be copied (beyond the end of the destination range). |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "pasteOrientation": "A String", # How that data should be oriented when pasting. |
| }, |
| "addSheet": { # Adds a new sheet. # Adds a sheet. |
| # When a sheet is added at a given index, |
| # all subsequent sheets' indexes are incremented. |
| # To add an object sheet, use AddChartRequest instead and specify |
| # EmbeddedObjectPosition.sheetId or |
| # EmbeddedObjectPosition.newSheet. |
| "properties": { # Properties of a sheet. # The properties the new sheet should have. |
| # All properties are optional. |
| # The sheetId field is optional; if one is not |
| # set, an id will be randomly generated. (It is an error to specify the ID |
| # of a sheet that already exists.) |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| "deleteNamedRange": { # Removes the named range with the given ID from the spreadsheet. # Deletes a named range. |
| "namedRangeId": "A String", # The ID of the named range to delete. |
| }, |
| "updateNamedRange": { # Updates properties of the named range with the specified # Updates a named range. |
| # namedRangeId. |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `namedRange` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| "namedRange": { # A named range. # The named range to update with the new properties. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| }, |
| "insertDimension": { # Inserts rows or columns in a sheet at a particular index. # Inserts new rows or columns in a sheet. |
| "inheritFromBefore": True or False, # Whether dimension properties should be extended from the dimensions |
| # before or after the newly inserted dimensions. |
| # True to inherit from the dimensions before (in which case the start |
| # index must be greater than 0), and false to inherit from the dimensions |
| # after. |
| # |
| # For example, if row index 0 has red background and row index 1 |
| # has a green background, then inserting 2 rows at index 1 can inherit |
| # either the green or red background. If `inheritFromBefore` is true, |
| # the two new rows will be red (because the row before the insertion point |
| # was red), whereas if `inheritFromBefore` is false, the two new rows will |
| # be green (because the row after the insertion point was green). |
| "range": { # A range along a single dimension on a sheet. # The dimensions to insert. Both the start and end indexes must be bounded. |
| # All indexes are zero-based. |
| # Indexes are half open: the start index is inclusive |
| # and the end index is exclusive. |
| # Missing indexes indicate the range is unbounded on that side. |
| "endIndex": 42, # The end (exclusive) of the span, or not set if unbounded. |
| "startIndex": 42, # The start (inclusive) of the span, or not set if unbounded. |
| "dimension": "A String", # The dimension of the span. |
| "sheetId": 42, # The sheet this span is on. |
| }, |
| }, |
| "updateFilterView": { # Updates properties of the filter view. # Updates the properties of a filter view. |
| "filter": { # A filter view. # The new properties of the filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| "fields": "A String", # The fields that should be updated. At least one field must be specified. |
| # The root `filter` is implied and should not be specified. |
| # A single `"*"` can be used as short-hand for listing every field. |
| }, |
| "deleteConditionalFormatRule": { # Deletes a conditional format rule at the given index. # Deletes an existing conditional format rule. |
| # All subsequent rules' indexes are decremented. |
| "index": 42, # The zero-based index of the rule to be deleted. |
| "sheetId": 42, # The sheet the rule is being deleted from. |
| }, |
| }, |
| ], |
| "responseIncludeGridData": True or False, # True if grid data should be returned. Meaningful only if |
| # if include_spreadsheet_response is 'true'. |
| # This parameter is ignored if a field mask was set in the request. |
| "includeSpreadsheetInResponse": True or False, # Determines if the update response should include the spreadsheet |
| # resource. |
| } |
| |
| x__xgafv: string, V1 error format. |
| Allowed values |
| 1 - v1 error format |
| 2 - v2 error format |
| |
| Returns: |
| An object of the form: |
| |
| { # The reply for batch updating a spreadsheet. |
| "spreadsheetId": "A String", # The spreadsheet the updates were applied to. |
| "updatedSpreadsheet": { # Resource that represents a spreadsheet. # The spreadsheet after updates were applied. This is only set if |
| # [BatchUpdateSpreadsheetRequest.include_spreadsheet_in_response] is `true`. |
| "spreadsheetId": "A String", # The ID of the spreadsheet. |
| # This field is read-only. |
| "namedRanges": [ # The named ranges defined in a spreadsheet. |
| { # A named range. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| ], |
| "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet. |
| "title": "A String", # The title of the spreadsheet. |
| "locale": "A String", # The locale of the spreadsheet in one of the following formats: |
| # |
| # * an ISO 639-1 language code such as `en` |
| # |
| # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists |
| # |
| # * a combination of the ISO language code and country code, such as `en_US` |
| # |
| # Note: when updating this field, not all locales/languages are supported. |
| "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet. |
| # CellData.effectiveFormat will not be set if the |
| # cell's format is equal to this default format. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated. |
| "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative |
| # calculation. Absence of this field means that circular references will |
| # result in calculation errors. |
| # calculation. |
| "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by |
| # less than this threshold value, the calculation rounds stop. |
| "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation |
| # rounds to perform. |
| }, |
| "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as |
| # `America/New_York`. If the time zone isn't recognized, this may |
| # be a custom time zone such as `GMT-07:00`. |
| }, |
| "sheets": [ # The sheets that are part of a spreadsheet. |
| { # A sheet in a spreadsheet. |
| "conditionalFormats": [ # The conditional format rules in this sheet. |
| { # A rule describing a conditional format. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| ], |
| "bandedRanges": [ # The banded (i.e. alternating colors) ranges on this sheet. |
| { # A banded (alternating colors) range in a sheet. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| ], |
| "merges": [ # The ranges that are merged together. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any. |
| "range": { # A range on a sheet. # The range the filter covers. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| "charts": [ # The specifications of every chart on this sheet. |
| { # A chart embedded in a sheet. |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| ], |
| "filterViews": [ # The filter views in this sheet. |
| { # A filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| ], |
| "protectedRanges": [ # The protected ranges in this sheet. |
| { # A protected range. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| ], |
| "data": [ # Data in the grid, if this is a grid sheet. |
| # The number of GridData objects returned is dependent on the number of |
| # ranges requested on this sheet. For example, if this is representing |
| # `Sheet1`, and the spreadsheet was requested with ranges |
| # `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a |
| # startRow/startColumn of `0`, |
| # while the second one will have `startRow 14` (zero-based row 15), |
| # and `startColumn 3` (zero-based column D). |
| { # Data in the grid, as well as metadata about the dimensions. |
| "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row |
| # in start_row. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| "startColumn": 42, # The first column this GridData refers to, zero-based. |
| "rowData": [ # The data in the grid, one entry per row, |
| # starting with the row in startRow. |
| # The values in RowData will correspond to columns starting |
| # at start_column. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "startRow": 42, # The first row this GridData refers to, zero-based. |
| "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column |
| # in start_column. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| }, |
| ], |
| "properties": { # Properties of a sheet. # The properties of the sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| ], |
| "spreadsheetUrl": "A String", # The url of the spreadsheet. |
| # This field is read-only. |
| }, |
| "replies": [ # The reply of the updates. This maps 1:1 with the updates, although |
| # replies to some requests may be empty. |
| { # A single response from an update. |
| "duplicateFilterView": { # The result of a filter view being duplicated. # A reply from duplicating a filter view. |
| "filter": { # A filter view. # The newly created filter. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| }, |
| "duplicateSheet": { # The result of duplicating a sheet. # A reply from duplicating a sheet. |
| "properties": { # Properties of a sheet. # The properties of the duplicate sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| "updateEmbeddedObjectPosition": { # The result of updating an embedded object's position. # A reply from updating an embedded object's position. |
| "position": { # The position of an embedded object such as a chart. # The new position of the embedded object. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| }, |
| "addChart": { # The result of adding a chart to a spreadsheet. # A reply from adding a chart. |
| "chart": { # A chart embedded in a sheet. # The newly added chart. |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| }, |
| "updateConditionalFormatRule": { # The result of updating a conditional format rule. # A reply from updating a conditional format rule. |
| "oldIndex": 42, # The old index of the rule. Not set if a rule was replaced |
| # (because it is the same as new_index). |
| "newIndex": 42, # The index of the new rule. |
| "oldRule": { # A rule describing a conditional format. # The old (deleted) rule. Not set if a rule was moved |
| # (because it is the same as new_rule). |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| "newRule": { # A rule describing a conditional format. # The new rule that replaced the old rule (if replacing), |
| # or the rule that was moved (if moved) |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| }, |
| "addSheet": { # The result of adding a sheet. # A reply from adding a sheet. |
| "properties": { # Properties of a sheet. # The properties of the newly added sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| "findReplace": { # The result of the find/replace. # A reply from doing a find/replace. |
| "occurrencesChanged": 42, # The number of occurrences (possibly multiple within a cell) changed. |
| # For example, if replacing `"e"` with `"o"` in `"Google Sheets"`, this would |
| # be `"3"` because `"Google Sheets"` -> `"Googlo Shoots"`. |
| "sheetsChanged": 42, # The number of sheets changed. |
| "rowsChanged": 42, # The number of rows changed. |
| "valuesChanged": 42, # The number of non-formula cells changed. |
| "formulasChanged": 42, # The number of formula cells changed. |
| }, |
| "addNamedRange": { # The result of adding a named range. # A reply from adding a named range. |
| "namedRange": { # A named range. # The named range to add. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| }, |
| "addProtectedRange": { # The result of adding a new protected range. # A reply from adding a protected range. |
| "protectedRange": { # A protected range. # The newly added protected range. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| }, |
| "deleteConditionalFormatRule": { # The result of deleting a conditional format rule. # A reply from deleting a conditional format rule. |
| "rule": { # A rule describing a conditional format. # The rule that was deleted. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| }, |
| "addBanding": { # The result of adding a banded range. # A reply from adding a banded range. |
| "bandedRange": { # A banded (alternating colors) range in a sheet. # The banded range that was added. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| }, |
| "addFilterView": { # The result of adding a filter view. # A reply from adding a filter view. |
| "filter": { # A filter view. # The newly added filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| }, |
| }, |
| ], |
| }</pre> |
| </div> |
| |
| <div class="method"> |
| <code class="details" id="create">create(body, x__xgafv=None)</code> |
| <pre>Creates a spreadsheet, returning the newly created spreadsheet. |
| |
| Args: |
| body: object, The request body. (required) |
| The object takes the form of: |
| |
| { # Resource that represents a spreadsheet. |
| "spreadsheetId": "A String", # The ID of the spreadsheet. |
| # This field is read-only. |
| "namedRanges": [ # The named ranges defined in a spreadsheet. |
| { # A named range. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| ], |
| "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet. |
| "title": "A String", # The title of the spreadsheet. |
| "locale": "A String", # The locale of the spreadsheet in one of the following formats: |
| # |
| # * an ISO 639-1 language code such as `en` |
| # |
| # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists |
| # |
| # * a combination of the ISO language code and country code, such as `en_US` |
| # |
| # Note: when updating this field, not all locales/languages are supported. |
| "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet. |
| # CellData.effectiveFormat will not be set if the |
| # cell's format is equal to this default format. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated. |
| "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative |
| # calculation. Absence of this field means that circular references will |
| # result in calculation errors. |
| # calculation. |
| "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by |
| # less than this threshold value, the calculation rounds stop. |
| "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation |
| # rounds to perform. |
| }, |
| "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as |
| # `America/New_York`. If the time zone isn't recognized, this may |
| # be a custom time zone such as `GMT-07:00`. |
| }, |
| "sheets": [ # The sheets that are part of a spreadsheet. |
| { # A sheet in a spreadsheet. |
| "conditionalFormats": [ # The conditional format rules in this sheet. |
| { # A rule describing a conditional format. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| ], |
| "bandedRanges": [ # The banded (i.e. alternating colors) ranges on this sheet. |
| { # A banded (alternating colors) range in a sheet. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| ], |
| "merges": [ # The ranges that are merged together. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any. |
| "range": { # A range on a sheet. # The range the filter covers. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| "charts": [ # The specifications of every chart on this sheet. |
| { # A chart embedded in a sheet. |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| ], |
| "filterViews": [ # The filter views in this sheet. |
| { # A filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| ], |
| "protectedRanges": [ # The protected ranges in this sheet. |
| { # A protected range. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| ], |
| "data": [ # Data in the grid, if this is a grid sheet. |
| # The number of GridData objects returned is dependent on the number of |
| # ranges requested on this sheet. For example, if this is representing |
| # `Sheet1`, and the spreadsheet was requested with ranges |
| # `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a |
| # startRow/startColumn of `0`, |
| # while the second one will have `startRow 14` (zero-based row 15), |
| # and `startColumn 3` (zero-based column D). |
| { # Data in the grid, as well as metadata about the dimensions. |
| "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row |
| # in start_row. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| "startColumn": 42, # The first column this GridData refers to, zero-based. |
| "rowData": [ # The data in the grid, one entry per row, |
| # starting with the row in startRow. |
| # The values in RowData will correspond to columns starting |
| # at start_column. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "startRow": 42, # The first row this GridData refers to, zero-based. |
| "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column |
| # in start_column. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| }, |
| ], |
| "properties": { # Properties of a sheet. # The properties of the sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| ], |
| "spreadsheetUrl": "A String", # The url of the spreadsheet. |
| # This field is read-only. |
| } |
| |
| x__xgafv: string, V1 error format. |
| Allowed values |
| 1 - v1 error format |
| 2 - v2 error format |
| |
| Returns: |
| An object of the form: |
| |
| { # Resource that represents a spreadsheet. |
| "spreadsheetId": "A String", # The ID of the spreadsheet. |
| # This field is read-only. |
| "namedRanges": [ # The named ranges defined in a spreadsheet. |
| { # A named range. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| ], |
| "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet. |
| "title": "A String", # The title of the spreadsheet. |
| "locale": "A String", # The locale of the spreadsheet in one of the following formats: |
| # |
| # * an ISO 639-1 language code such as `en` |
| # |
| # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists |
| # |
| # * a combination of the ISO language code and country code, such as `en_US` |
| # |
| # Note: when updating this field, not all locales/languages are supported. |
| "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet. |
| # CellData.effectiveFormat will not be set if the |
| # cell's format is equal to this default format. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated. |
| "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative |
| # calculation. Absence of this field means that circular references will |
| # result in calculation errors. |
| # calculation. |
| "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by |
| # less than this threshold value, the calculation rounds stop. |
| "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation |
| # rounds to perform. |
| }, |
| "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as |
| # `America/New_York`. If the time zone isn't recognized, this may |
| # be a custom time zone such as `GMT-07:00`. |
| }, |
| "sheets": [ # The sheets that are part of a spreadsheet. |
| { # A sheet in a spreadsheet. |
| "conditionalFormats": [ # The conditional format rules in this sheet. |
| { # A rule describing a conditional format. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| ], |
| "bandedRanges": [ # The banded (i.e. alternating colors) ranges on this sheet. |
| { # A banded (alternating colors) range in a sheet. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| ], |
| "merges": [ # The ranges that are merged together. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any. |
| "range": { # A range on a sheet. # The range the filter covers. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| "charts": [ # The specifications of every chart on this sheet. |
| { # A chart embedded in a sheet. |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| ], |
| "filterViews": [ # The filter views in this sheet. |
| { # A filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| ], |
| "protectedRanges": [ # The protected ranges in this sheet. |
| { # A protected range. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| ], |
| "data": [ # Data in the grid, if this is a grid sheet. |
| # The number of GridData objects returned is dependent on the number of |
| # ranges requested on this sheet. For example, if this is representing |
| # `Sheet1`, and the spreadsheet was requested with ranges |
| # `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a |
| # startRow/startColumn of `0`, |
| # while the second one will have `startRow 14` (zero-based row 15), |
| # and `startColumn 3` (zero-based column D). |
| { # Data in the grid, as well as metadata about the dimensions. |
| "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row |
| # in start_row. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| "startColumn": 42, # The first column this GridData refers to, zero-based. |
| "rowData": [ # The data in the grid, one entry per row, |
| # starting with the row in startRow. |
| # The values in RowData will correspond to columns starting |
| # at start_column. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "startRow": 42, # The first row this GridData refers to, zero-based. |
| "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column |
| # in start_column. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| }, |
| ], |
| "properties": { # Properties of a sheet. # The properties of the sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| ], |
| "spreadsheetUrl": "A String", # The url of the spreadsheet. |
| # This field is read-only. |
| }</pre> |
| </div> |
| |
| <div class="method"> |
| <code class="details" id="get">get(spreadsheetId, ranges=None, x__xgafv=None, includeGridData=None)</code> |
| <pre>Returns the spreadsheet at the given ID. |
| The caller must specify the spreadsheet ID. |
| |
| By default, data within grids will not be returned. |
| You can include grid data one of two ways: |
| |
| * Specify a field mask listing your desired fields using the `fields` URL |
| parameter in HTTP |
| |
| * Set the includeGridData |
| URL parameter to true. If a field mask is set, the `includeGridData` |
| parameter is ignored |
| |
| For large spreadsheets, it is recommended to retrieve only the specific |
| fields of the spreadsheet that you want. |
| |
| To retrieve only subsets of the spreadsheet, use the |
| ranges URL parameter. |
| Multiple ranges can be specified. Limiting the range will |
| return only the portions of the spreadsheet that intersect the requested |
| ranges. Ranges are specified using A1 notation. |
| |
| Args: |
| spreadsheetId: string, The spreadsheet to request. (required) |
| ranges: string, The ranges to retrieve from the spreadsheet. (repeated) |
| x__xgafv: string, V1 error format. |
| Allowed values |
| 1 - v1 error format |
| 2 - v2 error format |
| includeGridData: boolean, True if grid data should be returned. |
| This parameter is ignored if a field mask was set in the request. |
| |
| Returns: |
| An object of the form: |
| |
| { # Resource that represents a spreadsheet. |
| "spreadsheetId": "A String", # The ID of the spreadsheet. |
| # This field is read-only. |
| "namedRanges": [ # The named ranges defined in a spreadsheet. |
| { # A named range. |
| "namedRangeId": "A String", # The ID of the named range. |
| "range": { # A range on a sheet. # The range this represents. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "name": "A String", # The name of the named range. |
| }, |
| ], |
| "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet. |
| "title": "A String", # The title of the spreadsheet. |
| "locale": "A String", # The locale of the spreadsheet in one of the following formats: |
| # |
| # * an ISO 639-1 language code such as `en` |
| # |
| # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists |
| # |
| # * a combination of the ISO language code and country code, such as `en_US` |
| # |
| # Note: when updating this field, not all locales/languages are supported. |
| "defaultFormat": { # The format of a cell. # The default format of all cells in the spreadsheet. |
| # CellData.effectiveFormat will not be set if the |
| # cell's format is equal to this default format. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated. |
| "iterativeCalculationSettings": { # Settings to control how circular dependencies are resolved with iterative # Determines whether and how circular references are resolved with iterative |
| # calculation. Absence of this field means that circular references will |
| # result in calculation errors. |
| # calculation. |
| "convergenceThreshold": 3.14, # When iterative calculation is enabled and successive results differ by |
| # less than this threshold value, the calculation rounds stop. |
| "maxIterations": 42, # When iterative calculation is enabled, the maximum number of calculation |
| # rounds to perform. |
| }, |
| "timeZone": "A String", # The time zone of the spreadsheet, in CLDR format such as |
| # `America/New_York`. If the time zone isn't recognized, this may |
| # be a custom time zone such as `GMT-07:00`. |
| }, |
| "sheets": [ # The sheets that are part of a spreadsheet. |
| { # A sheet in a spreadsheet. |
| "conditionalFormats": [ # The conditional format rules in this sheet. |
| { # A rule describing a conditional format. |
| "ranges": [ # The ranges that will be formatted if the condition is true. |
| # All the ranges must be on the same grid. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "booleanRule": { # A rule that may or may not match, depending on the condition. # The formatting is either "on" or "off" according to the rule. |
| "condition": { # A condition that can evaluate to true or false. # The condition of the rule. If the condition evaluates to true, |
| # the format will be applied. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| "format": { # The format of a cell. # The format to apply. |
| # Conditional formatting can only apply a subset of formatting: |
| # bold, italic, |
| # strikethrough, |
| # foreground color & |
| # background color. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| }, |
| "gradientRule": { # A rule that applies a gradient color scale format, based on # The formatting will vary based on the gradients in the rule. |
| # the interpolation points listed. The format of a cell will vary |
| # based on its contents as compared to the values of the interpolation |
| # points. |
| "maxpoint": { # A single interpolation point on a gradient conditional format. # The final interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "midpoint": { # A single interpolation point on a gradient conditional format. # An optional midway interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| "minpoint": { # A single interpolation point on a gradient conditional format. # The starting interpolation point. |
| # These pin the gradient color scale according to the color, |
| # type and value chosen. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color this interpolation point should use. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "type": "A String", # How the value should be interpreted. |
| "value": "A String", # The value this interpolation point uses. May be a formula. |
| # Unused if type is MIN or |
| # MAX. |
| }, |
| }, |
| }, |
| ], |
| "bandedRanges": [ # The banded (i.e. alternating colors) ranges on this sheet. |
| { # A banded (alternating colors) range in a sheet. |
| "range": { # A range on a sheet. # The range over which these properties are applied. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "columnProperties": { # Properties referring a single dimension (either row or column). If both # Properties for column bands. These properties will be applied on a column- |
| # by-column basis throughout all the columns in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "rowProperties": { # Properties referring a single dimension (either row or column). If both # Properties for row bands. These properties will be applied on a row-by-row |
| # basis throughout all the rows in the range. At least one of |
| # row_properties or column_properties must be specified. |
| # BandedRange.row_properties and BandedRange.column_properties are |
| # set, the fill colors are applied to cells according to the following rules: |
| # |
| # * header_color and footer_color take priority over band colors. |
| # * first_band_color takes priority over second_band_color. |
| # * row_properties takes priority over column_properties. |
| # |
| # For example, the first row color takes priority over the first column |
| # color, but the first column color takes priority over the second row color. |
| # Similarly, the row header takes priority over the column header in the |
| # top left cell, but the column header takes priority over the first row |
| # color if the row header is not set. |
| "secondBandColor": { # Represents a color in the RGBA color space. This representation is designed # The second color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "headerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the first row or column. If this field is set, the first |
| # row or column will be filled with this color and the colors will |
| # alternate between first_band_color and second_band_color starting |
| # from the second row or column. Otherwise, the first row or column will be |
| # filled with first_band_color and the colors will proceed to alternate |
| # as they normally would. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "footerColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the last row or column. If this field is not set, the last |
| # row or column will be filled with either first_band_color or |
| # second_band_color, depending on the color of the previous row or |
| # column. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "firstBandColor": { # Represents a color in the RGBA color space. This representation is designed # The first color that is alternating. (Required) |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| }, |
| "bandedRangeId": 42, # The id of the banded range. |
| }, |
| ], |
| "merges": [ # The ranges that are merged together. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "basicFilter": { # The default filter associated with a sheet. # The filter on this sheet, if any. |
| "range": { # A range on a sheet. # The range the filter covers. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| "charts": [ # The specifications of every chart on this sheet. |
| { # A chart embedded in a sheet. |
| "chartId": 42, # The ID of the chart. |
| "position": { # The position of an embedded object such as a chart. # The position of the chart. |
| "newSheet": True or False, # If true, the embedded object will be put on a new sheet whose ID |
| # is chosen for you. Used only when writing. |
| "sheetId": 42, # The sheet this is on. Set only if the embedded object |
| # is on its own sheet. Must be non-negative. |
| "overlayPosition": { # The location an object is overlaid on top of a grid. # The position at which the object is overlaid on top of a grid. |
| "anchorCell": { # A coordinate in a sheet. # The cell the object is anchored to. |
| # All indexes are zero-based. |
| "rowIndex": 42, # The row index of the coordinate. |
| "columnIndex": 42, # The column index of the coordinate. |
| "sheetId": 42, # The sheet this coordinate is on. |
| }, |
| "offsetYPixels": 42, # The vertical offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "widthPixels": 42, # The width of the object, in pixels. Defaults to 600. |
| "offsetXPixels": 42, # The horizontal offset, in pixels, that the object is offset |
| # from the anchor cell. |
| "heightPixels": 42, # The height of the object, in pixels. Defaults to 371. |
| }, |
| }, |
| "spec": { # The specifications of a chart. # The specification of the chart. |
| "hiddenDimensionStrategy": "A String", # Determines how the charts will use hidden rows or columns. |
| "pieChart": { # A <a href="/chart/interactive/docs/gallery/piechart">pie chart</a>. # A pie chart specification. |
| "series": { # The data included in a domain or series. # The data that covers the one and only series of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "domain": { # The data included in a domain or series. # The data that covers the domain of the pie chart. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "threeDimensional": True or False, # True if the pie is three dimensional. |
| "legendPosition": "A String", # Where the legend of the pie chart should be drawn. |
| "pieHole": 3.14, # The size of the hole in the pie chart. |
| }, |
| "basicChart": { # The specification for a basic chart. See BasicChartType for the list # A basic chart specification, can be one of many kinds of charts. |
| # See BasicChartType for the list of all |
| # charts this supports. |
| # of charts this supports. |
| "headerCount": 42, # The number of rows or columns in the data that are "headers". |
| # If not set, Google Sheets will guess how many rows are headers based |
| # on the data. |
| # |
| # (Note that BasicChartAxis.title may override the axis title |
| # inferred from the header values.) |
| "series": [ # The data this chart is visualizing. |
| { # A single series of data in a chart. |
| # For example, if charting stock prices over time, multiple series may exist, |
| # one for the "Open Price", "High Price", "Low Price" and "Close Price". |
| "series": { # The data included in a domain or series. # The data being visualized in this chart series. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| "targetAxis": "A String", # The minor axis that will specify the range of values for this series. |
| # For example, if charting stocks over time, the "Volume" series |
| # may want to be pinned to the right with the prices pinned to the left, |
| # because the scale of trading volume is different than the scale of |
| # prices. |
| # It is an error to specify an axis that isn't a valid minor axis |
| # for the chart's type. |
| "type": "A String", # The type of this series. Valid only if the |
| # chartType is |
| # COMBO. |
| # Different types will change the way the series is visualized. |
| # Only LINE, AREA, |
| # and COLUMN are supported. |
| }, |
| ], |
| "legendPosition": "A String", # The position of the chart legend. |
| "domains": [ # The domain of data this is charting. |
| # Only a single domain is supported. |
| { # The domain of a chart. |
| # For example, if charting stock prices over time, this would be the date. |
| "domain": { # The data included in a domain or series. # The data of the domain. For example, if charting stock prices over time, |
| # this is the data representing the dates. |
| "sourceRange": { # Source ranges for a chart. # The source ranges of the data. |
| "sources": [ # The ranges of data for a series or domain. |
| # Exactly one dimension must have a length of 1, |
| # and all sources in the list must have the same dimension |
| # with length 1. |
| # The domain (if it exists) & all series must have the same number |
| # of source ranges. If using more than one source range, then the source |
| # range at a given offset must be contiguous across the domain and series. |
| # |
| # For example, these are valid configurations: |
| # |
| # domain sources: A1:A5 |
| # series1 sources: B1:B5 |
| # series2 sources: D6:D10 |
| # |
| # domain sources: A1:A5, C10:C12 |
| # series1 sources: B1:B5, D10:D12 |
| # series2 sources: C1:C5, E10:E12 |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| }, |
| }, |
| }, |
| ], |
| "chartType": "A String", # The type of the chart. |
| "axis": [ # The axis on the chart. |
| { # An axis of the chart. |
| # A chart may not have more than one axis per |
| # axis position. |
| "position": "A String", # The position of this axis. |
| "format": { # The format of a run of text in a cell. # The format of the title. |
| # Only valid if the axis is not associated with the domain. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "title": "A String", # The title of this axis. If set, this overrides any title inferred |
| # from headers of the data. |
| }, |
| ], |
| }, |
| "title": "A String", # The title of the chart. |
| }, |
| }, |
| ], |
| "filterViews": [ # The filter views in this sheet. |
| { # A filter view. |
| "title": "A String", # The name of the filter view. |
| "namedRangeId": "A String", # The named range this filter view is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "filterViewId": 42, # The ID of the filter view. |
| "range": { # A range on a sheet. # The range this filter view covers. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "sortSpecs": [ # The sort order per column. Later specifications are used when values |
| # are equal in the earlier specifications. |
| { # A sort order associated with a specific column or row. |
| "sortOrder": "A String", # The order data should be sorted. |
| "dimensionIndex": 42, # The dimension the sort should be applied to. |
| }, |
| ], |
| "criteria": { # The criteria for showing/hiding values per column. |
| # The map's key is the column index, and the value is the criteria for |
| # that column. |
| "a_key": { # Criteria for showing/hiding rows in a filter or filter view. |
| "hiddenValues": [ # Values that should be hidden. |
| "A String", |
| ], |
| "condition": { # A condition that can evaluate to true or false. # A condition that must be true for values to be shown. |
| # (This does not override hiddenValues -- if a value is listed there, |
| # it will still be hidden.) |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| }, |
| }, |
| ], |
| "protectedRanges": [ # The protected ranges in this sheet. |
| { # A protected range. |
| "unprotectedRanges": [ # The list of unprotected ranges within a protected sheet. |
| # Unprotected ranges are only supported on protected sheets. |
| { # A range on a sheet. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| ], |
| "requestingUserCanEdit": True or False, # True if the user who requested this protected range can edit the |
| # protected area. |
| # This field is read-only. |
| "description": "A String", # The description of this protected range. |
| "namedRangeId": "A String", # The named range this protected range is backed by, if any. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| "editors": { # The editors of a protected range. # The users and groups with edit access to the protected range. |
| # This field is only visible to users with edit access to the protected |
| # range and the document. |
| # Editors are not supported with warning_only protection. |
| "domainUsersCanEdit": True or False, # True if anyone in the document's domain has edit access to the protected |
| # range. Domain protection is only supported on documents within a domain. |
| "users": [ # The email addresses of users with edit access to the protected range. |
| "A String", |
| ], |
| "groups": [ # The email addresses of groups with edit access to the protected range. |
| "A String", |
| ], |
| }, |
| "protectedRangeId": 42, # The ID of the protected range. |
| # This field is read-only. |
| "warningOnly": True or False, # True if this protected range will show a warning when editing. |
| # Warning-based protection means that every user can edit data in the |
| # protected range, except editing will prompt a warning asking the user |
| # to confirm the edit. |
| # |
| # When writing: if this field is true, then editors is ignored. |
| # Additionally, if this field is changed from true to false and the |
| # `editors` field is not set (nor included in the field mask), then |
| # the editors will be set to all the editors in the document. |
| "range": { # A range on a sheet. # The range that is being protected. |
| # The range may be fully unbounded, in which case this is considered |
| # a protected sheet. |
| # |
| # When writing, only one of range or named_range_id |
| # may be set. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| }, |
| ], |
| "data": [ # Data in the grid, if this is a grid sheet. |
| # The number of GridData objects returned is dependent on the number of |
| # ranges requested on this sheet. For example, if this is representing |
| # `Sheet1`, and the spreadsheet was requested with ranges |
| # `Sheet1!A1:C10` and `Sheet1!D15:E20`, then the first GridData will have a |
| # startRow/startColumn of `0`, |
| # while the second one will have `startRow 14` (zero-based row 15), |
| # and `startColumn 3` (zero-based column D). |
| { # Data in the grid, as well as metadata about the dimensions. |
| "rowMetadata": [ # Metadata about the requested rows in the grid, starting with the row |
| # in start_row. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| "startColumn": 42, # The first column this GridData refers to, zero-based. |
| "rowData": [ # The data in the grid, one entry per row, |
| # starting with the row in startRow. |
| # The values in RowData will correspond to columns starting |
| # at start_column. |
| { # Data about each cell in a row. |
| "values": [ # The values in the row, one per column. |
| { # Data about a specific cell. |
| "pivotTable": { # A pivot table. # A pivot table anchored at this cell. The size of pivot table itself |
| # is computed dynamically based on its data, grouping, filters, values, |
| # etc. Only the top-left cell of the pivot table contains the pivot table |
| # definition. The other cells will contain the calculated values of the |
| # results of the pivot in their effective_value fields. |
| "valueLayout": "A String", # Whether values should be listed horizontally (as columns) |
| # or vertically (as rows). |
| "rows": [ # Each row grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| "source": { # A range on a sheet. # The range the pivot table is reading data from. |
| # All indexes are zero-based. |
| # Indexes are half open, e.g the start index is inclusive |
| # and the end index is exclusive -- [start_index, end_index). |
| # Missing indexes indicate the range is unbounded on that side. |
| # |
| # For example, if `"Sheet1"` is sheet ID 0, then: |
| # |
| # `Sheet1!A1:A1 == sheet_id: 0, |
| # start_row_index: 0, end_row_index: 1, |
| # start_column_index: 0, end_column_index: 1` |
| # |
| # `Sheet1!A3:B4 == sheet_id: 0, |
| # start_row_index: 2, end_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A:B == sheet_id: 0, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1!A5:B == sheet_id: 0, |
| # start_row_index: 4, |
| # start_column_index: 0, end_column_index: 2` |
| # |
| # `Sheet1 == sheet_id:0` |
| # |
| # The start index must always be less than or equal to the end index. |
| # If the start index equals the end index, then the range is empty. |
| # Empty ranges are typically not meaningful and are usually rendered in the |
| # UI as `#REF!`. |
| "endRowIndex": 42, # The end row (exclusive) of the range, or not set if unbounded. |
| "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded. |
| "sheetId": 42, # The sheet this range is on. |
| "startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded. |
| "startRowIndex": 42, # The start row (inclusive) of the range, or not set if unbounded. |
| }, |
| "values": [ # A list of values to include in the pivot table. |
| { # The definition of how a value in a pivot table should be calculated. |
| "formula": "A String", # A custom formula to calculate the value. The formula must start |
| # with an `=` character. |
| "sourceColumnOffset": 42, # The column offset of the source range that this value reads from. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this value refers to column `C`, whereas the offset `1` would |
| # refer to column `D`. |
| "summarizeFunction": "A String", # A function to summarize the value. |
| # If formula is set, the only supported values are |
| # SUM and |
| # CUSTOM. |
| # If sourceColumnOffset is set, then `CUSTOM` |
| # is not supported. |
| "name": "A String", # A name to use for the value. This is only used if formula was set. |
| # Otherwise, the column name is used. |
| }, |
| ], |
| "criteria": { # An optional mapping of filters per source column offset. |
| # |
| # The filters will be applied before aggregating data into the pivot table. |
| # The map's key is the column offset of the source range that you want to |
| # filter, and the value is the criteria for that column. |
| # |
| # For example, if the source was `C10:E15`, a key of `0` will have the filter |
| # for column `C`, whereas the key `1` is for column `D`. |
| "a_key": { # Criteria for showing/hiding rows in a pivot table. |
| "visibleValues": [ # Values that should be included. Values not listed here are excluded. |
| "A String", |
| ], |
| }, |
| }, |
| "columns": [ # Each column grouping in the pivot table. |
| { # A single grouping (either row or column) in a pivot table. |
| "showTotals": True or False, # True if the pivot table should include the totals for this grouping. |
| "valueMetadata": [ # Metadata about values in the grouping. |
| { # Metadata about a value in a pivot grouping. |
| "collapsed": True or False, # True if the data corresponding to the value is collapsed. |
| "value": { # The kinds of value that a cell in a spreadsheet can have. # The calculated value the metadata corresponds to. |
| # (Note that formulaValue is not valid, |
| # because the values will be calculated.) |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| }, |
| ], |
| "valueBucket": { # Information about which values in a pivot group should be used for sorting. # The bucket of the opposite pivot group to sort by. |
| # If not specified, sorting is alphabetical by this group's values. |
| "buckets": [ # Determines the bucket from which values are chosen to sort. |
| # |
| # For example, in a pivot table with one row group & two column groups, |
| # the row group can list up to two values. The first value corresponds |
| # to a value within the first column group, and the second value |
| # corresponds to a value in the second column group. If no values |
| # are listed, this would indicate that the row should be sorted according |
| # to the "Grand Total" over the column groups. If a single value is listed, |
| # this would correspond to using the "Total" of that bucket. |
| { # The kinds of value that a cell in a spreadsheet can have. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| ], |
| "valuesIndex": 42, # The offset in the PivotTable.values list which the values in this |
| # grouping should be sorted by. |
| }, |
| "sortOrder": "A String", # The order the values in this group should be sorted. |
| "sourceColumnOffset": 42, # The column offset of the source range that this grouping is based on. |
| # |
| # For example, if the source was `C10:E15`, a `sourceColumnOffset` of `0` |
| # means this group refers to column `C`, whereas the offset `1` would refer |
| # to column `D`. |
| }, |
| ], |
| }, |
| "hyperlink": "A String", # A hyperlink this cell points to, if any. |
| # This field is read-only. (To set it, use a `=HYPERLINK` formula |
| # in the userEnteredValue.formulaValue |
| # field.) |
| "effectiveValue": { # The kinds of value that a cell in a spreadsheet can have. # The effective value of the cell. For cells with formulas, this will be |
| # the calculated value. For cells with literals, this will be |
| # the same as the user_entered_value. |
| # This field is read-only. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "formattedValue": "A String", # The formatted value of the cell. |
| # This is the value as it's shown to the user. |
| # This field is read-only. |
| "userEnteredValue": { # The kinds of value that a cell in a spreadsheet can have. # The value the user entered in the cell. e.g, `1234`, `'Hello'`, or `=NOW()` |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # serial number format. |
| "stringValue": "A String", # Represents a string value. |
| # Leading single quotes are not included. For example, if the user typed |
| # `'123` into the UI, this would be represented as a `stringValue` of |
| # `"123"`. |
| "boolValue": True or False, # Represents a boolean value. |
| "errorValue": { # An error in a cell. # Represents an error. |
| # This field is read-only. |
| "message": "A String", # A message with more information about the error |
| # (in the spreadsheet's locale). |
| "type": "A String", # The type of error. |
| }, |
| "formulaValue": "A String", # Represents a formula. |
| "numberValue": 3.14, # Represents a double value. |
| # Note: Dates, Times and DateTimes are represented as doubles in |
| # "serial number" format. |
| }, |
| "note": "A String", # Any note on the cell. |
| "effectiveFormat": { # The format of a cell. # The effective format being used by the cell. |
| # This includes the results of applying any conditional formatting and, |
| # if the cell contains a formula, the computed number format. |
| # If the effective format is the default format, effective format will |
| # not be written. |
| # This field is read-only. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "userEnteredFormat": { # The format of a cell. # The format the user entered for the cell. |
| # |
| # When writing, the new format will be merged with the existing format. |
| "numberFormat": { # The number format of a cell. # A format describing how number values should be represented to the user. |
| "pattern": "A String", # Pattern string used for formatting. If not set, a default pattern based on |
| # the user's locale will be used if necessary for the given type. |
| # See the [Date and Number Formats guide](/sheets/api/guides/formats) for more |
| # information about the supported patterns. |
| "type": "A String", # The type of the number format. |
| # When writing, this field must be set. |
| }, |
| "textDirection": "A String", # The direction of the text in the cell. |
| "padding": { # The amount of padding around the cell, in pixels. # The padding of the cell. |
| # When updating padding, every field must be specified. |
| "top": 42, # The top padding of the cell. |
| "right": 42, # The right padding of the cell. |
| "bottom": 42, # The bottom padding of the cell. |
| "left": 42, # The left padding of the cell. |
| }, |
| "verticalAlignment": "A String", # The vertical alignment of the value in the cell. |
| "backgroundColor": { # Represents a color in the RGBA color space. This representation is designed # The background color of the cell. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "horizontalAlignment": "A String", # The horizontal alignment of the value in the cell. |
| "textFormat": { # The format of a run of text in a cell. # The format of the text in the cell (unless overridden by a format run). |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| "textRotation": { # The rotation applied to text in a cell. # The rotation applied to text in a cell |
| "angle": 42, # The angle between the standard orientation and the desired orientation. |
| # Measured in degrees. Valid values are between -90 and 90. Positive |
| # angles are angled upwards, negative are angled downwards. |
| # |
| # Note: For LTR text direction positive angles are in the counterclockwise |
| # direction, whereas for RTL they are in the clockwise direction |
| "vertical": True or False, # If true, text reads top to bottom, but the orientation of individual |
| # characters is unchanged. |
| # For example: |
| # |
| # | V | |
| # | e | |
| # | r | |
| # | t | |
| # | i | |
| # | c | |
| # | a | |
| # | l | |
| }, |
| "hyperlinkDisplayType": "A String", # How a hyperlink, if it exists, should be displayed in the cell. |
| "borders": { # The borders of the cell. # The borders of the cell. |
| "top": { # A border along a cell. # The top border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "right": { # A border along a cell. # The right border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "bottom": { # A border along a cell. # The bottom border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| "left": { # A border along a cell. # The left border of the cell. |
| "color": { # Represents a color in the RGBA color space. This representation is designed # The color of the border. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "width": 42, # The width of the border, in pixels. |
| # Deprecated; the width is determined by the "style" field. |
| "style": "A String", # The style of the border. |
| }, |
| }, |
| "wrapStrategy": "A String", # The wrap strategy for the value in the cell. |
| }, |
| "dataValidation": { # A data validation rule. # A data validation rule on the cell, if any. |
| # |
| # When writing, the new data validation rule will overwrite any prior rule. |
| "showCustomUi": True or False, # True if the UI should be customized based on the kind of condition. |
| # If true, "List" conditions will show a dropdown. |
| "strict": True or False, # True if invalid data should be rejected. |
| "inputMessage": "A String", # A message to show the user when adding data to the cell. |
| "condition": { # A condition that can evaluate to true or false. # The condition that data in the cell must match. |
| # BooleanConditions are used by conditional formatting, |
| # data validation, and the criteria in filters. |
| "values": [ # The values of the condition. The number of supported values depends |
| # on the condition type. Some support zero values, |
| # others one or two values, |
| # and ConditionType.ONE_OF_LIST supports an arbitrary number of values. |
| { # The value of the condition. |
| "relativeDate": "A String", # A relative date (based on the current date). |
| # Valid only if the type is |
| # DATE_BEFORE, |
| # DATE_AFTER, |
| # DATE_ON_OR_BEFORE or |
| # DATE_ON_OR_AFTER. |
| # |
| # Relative dates are not supported in data validation. |
| # They are supported only in conditional formatting and |
| # conditional filters. |
| "userEnteredValue": "A String", # A value the condition is based on. |
| # The value will be parsed as if the user typed into a cell. |
| # Formulas are supported (and must begin with an `=`). |
| }, |
| ], |
| "type": "A String", # The type of condition. |
| }, |
| }, |
| "textFormatRuns": [ # Runs of rich text applied to subsections of the cell. Runs are only valid |
| # on user entered strings, not formulas, bools, or numbers. |
| # Runs start at specific indexes in the text and continue until the next |
| # run. Properties of a run will continue unless explicitly changed |
| # in a subsequent run (and properties of the first run will continue |
| # the properties of the cell unless explicitly changed). |
| # |
| # When writing, the new runs will overwrite any prior runs. When writing a |
| # new user_entered_value, previous runs will be erased. |
| { # A run of a text format. The format of this run continues until the start |
| # index of the next run. |
| # When updating, all fields must be set. |
| "startIndex": 42, # The character index where this run starts. |
| "format": { # The format of a run of text in a cell. # The format of this run. Absent values inherit the cell's format. |
| # Absent values indicate that the field isn't specified. |
| "foregroundColor": { # Represents a color in the RGBA color space. This representation is designed # The foreground color of the text. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "bold": True or False, # True if the text is bold. |
| "strikethrough": True or False, # True if the text has a strikethrough. |
| "fontFamily": "A String", # The font family. |
| "fontSize": 42, # The size of the font. |
| "italic": True or False, # True if the text is italicized. |
| "underline": True or False, # True if the text is underlined. |
| }, |
| }, |
| ], |
| }, |
| ], |
| }, |
| ], |
| "startRow": 42, # The first row this GridData refers to, zero-based. |
| "columnMetadata": [ # Metadata about the requested columns in the grid, starting with the column |
| # in start_column. |
| { # Properties about a dimension. |
| "pixelSize": 42, # The height (if a row) or width (if a column) of the dimension in pixels. |
| "hiddenByUser": True or False, # True if this dimension is explicitly hidden. |
| "hiddenByFilter": True or False, # True if this dimension is being filtered. |
| # This field is read-only. |
| }, |
| ], |
| }, |
| ], |
| "properties": { # Properties of a sheet. # The properties of the sheet. |
| "sheetType": "A String", # The type of sheet. Defaults to GRID. |
| # This field cannot be changed once set. |
| "index": 42, # The index of the sheet within the spreadsheet. |
| # When adding or updating sheet properties, if this field |
| # is excluded then the sheet will be added or moved to the end |
| # of the sheet list. When updating sheet indices or inserting |
| # sheets, movement is considered in "before the move" indexes. |
| # For example, if there were 3 sheets (S1, S2, S3) in order to |
| # move S1 ahead of S2 the index would have to be set to 2. A sheet |
| # index update request will be ignored if the requested index is |
| # identical to the sheets current index or if the requested new |
| # index is equal to the current sheet index + 1. |
| "title": "A String", # The name of the sheet. |
| "gridProperties": { # Properties of a grid. # Additional properties of the sheet if this sheet is a grid. |
| # (If the sheet is an object sheet, containing a chart or image, then |
| # this field will be absent.) |
| # When writing it is an error to set any grid properties on non-grid sheets. |
| "columnCount": 42, # The number of columns in the grid. |
| "frozenRowCount": 42, # The number of rows that are frozen in the grid. |
| "frozenColumnCount": 42, # The number of columns that are frozen in the grid. |
| "hideGridlines": True or False, # True if the grid isn't showing gridlines in the UI. |
| "rowCount": 42, # The number of rows in the grid. |
| }, |
| "rightToLeft": True or False, # True if the sheet is an RTL sheet instead of an LTR sheet. |
| "tabColor": { # Represents a color in the RGBA color space. This representation is designed # The color of the tab in the UI. |
| # for simplicity of conversion to/from color representations in various |
| # languages over compactness; for example, the fields of this representation |
| # can be trivially provided to the constructor of "java.awt.Color" in Java; it |
| # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" |
| # method in iOS; and, with just a little work, it can be easily formatted into |
| # a CSS "rgba()" string in JavaScript, as well. Here are some examples: |
| # |
| # Example (Java): |
| # |
| # import com.google.type.Color; |
| # |
| # // ... |
| # public static java.awt.Color fromProto(Color protocolor) { |
| # float alpha = protocolor.hasAlpha() |
| # ? protocolor.getAlpha().getValue() |
| # : 1.0; |
| # |
| # return new java.awt.Color( |
| # protocolor.getRed(), |
| # protocolor.getGreen(), |
| # protocolor.getBlue(), |
| # alpha); |
| # } |
| # |
| # public static Color toProto(java.awt.Color color) { |
| # float red = (float) color.getRed(); |
| # float green = (float) color.getGreen(); |
| # float blue = (float) color.getBlue(); |
| # float denominator = 255.0; |
| # Color.Builder resultBuilder = |
| # Color |
| # .newBuilder() |
| # .setRed(red / denominator) |
| # .setGreen(green / denominator) |
| # .setBlue(blue / denominator); |
| # int alpha = color.getAlpha(); |
| # if (alpha != 255) { |
| # result.setAlpha( |
| # FloatValue |
| # .newBuilder() |
| # .setValue(((float) alpha) / denominator) |
| # .build()); |
| # } |
| # return resultBuilder.build(); |
| # } |
| # // ... |
| # |
| # Example (iOS / Obj-C): |
| # |
| # // ... |
| # static UIColor* fromProto(Color* protocolor) { |
| # float red = [protocolor red]; |
| # float green = [protocolor green]; |
| # float blue = [protocolor blue]; |
| # FloatValue* alpha_wrapper = [protocolor alpha]; |
| # float alpha = 1.0; |
| # if (alpha_wrapper != nil) { |
| # alpha = [alpha_wrapper value]; |
| # } |
| # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; |
| # } |
| # |
| # static Color* toProto(UIColor* color) { |
| # CGFloat red, green, blue, alpha; |
| # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { |
| # return nil; |
| # } |
| # Color* result = [Color alloc] init]; |
| # [result setRed:red]; |
| # [result setGreen:green]; |
| # [result setBlue:blue]; |
| # if (alpha <= 0.9999) { |
| # [result setAlpha:floatWrapperWithValue(alpha)]; |
| # } |
| # [result autorelease]; |
| # return result; |
| # } |
| # // ... |
| # |
| # Example (JavaScript): |
| # |
| # // ... |
| # |
| # var protoToCssColor = function(rgb_color) { |
| # var redFrac = rgb_color.red || 0.0; |
| # var greenFrac = rgb_color.green || 0.0; |
| # var blueFrac = rgb_color.blue || 0.0; |
| # var red = Math.floor(redFrac * 255); |
| # var green = Math.floor(greenFrac * 255); |
| # var blue = Math.floor(blueFrac * 255); |
| # |
| # if (!('alpha' in rgb_color)) { |
| # return rgbToCssColor_(red, green, blue); |
| # } |
| # |
| # var alphaFrac = rgb_color.alpha.value || 0.0; |
| # var rgbParams = [red, green, blue].join(','); |
| # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); |
| # }; |
| # |
| # var rgbToCssColor_ = function(red, green, blue) { |
| # var rgbNumber = new Number((red << 16) | (green << 8) | blue); |
| # var hexString = rgbNumber.toString(16); |
| # var missingZeros = 6 - hexString.length; |
| # var resultBuilder = ['#']; |
| # for (var i = 0; i < missingZeros; i++) { |
| # resultBuilder.push('0'); |
| # } |
| # resultBuilder.push(hexString); |
| # return resultBuilder.join(''); |
| # }; |
| # |
| # // ... |
| "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1]. |
| "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is, |
| # the final pixel color is defined by the equation: |
| # |
| # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) |
| # |
| # This means that a value of 1.0 corresponds to a solid color, whereas |
| # a value of 0.0 corresponds to a completely transparent color. This |
| # uses a wrapper message rather than a simple float scalar so that it is |
| # possible to distinguish between a default value and the value being unset. |
| # If omitted, this color object is to be rendered as a solid color |
| # (as if the alpha value had been explicitly given with a value of 1.0). |
| "green": 3.14, # The amount of green in the color as a value in the interval [0, 1]. |
| "red": 3.14, # The amount of red in the color as a value in the interval [0, 1]. |
| }, |
| "hidden": True or False, # True if the sheet is hidden in the UI, false if it's visible. |
| "sheetId": 42, # The ID of the sheet. Must be non-negative. |
| # This field cannot be changed once set. |
| }, |
| }, |
| ], |
| "spreadsheetUrl": "A String", # The url of the spreadsheet. |
| # This field is read-only. |
| }</pre> |
| </div> |
| |
| </body></html> |