Release v1.6.0 (#324)
* Update version and changelog for v1.6.0
* Update docs
diff --git a/docs/dyn/sheets_v4.spreadsheets.html b/docs/dyn/sheets_v4.spreadsheets.html
index cd507af..0562d26 100644
--- a/docs/dyn/sheets_v4.spreadsheets.html
+++ b/docs/dyn/sheets_v4.spreadsheets.html
@@ -122,6 +122,15 @@
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",
+ ],
+ "includeSpreadsheetInResponse": True or False, # Determines if the update response should include the spreadsheet
+ # resource.
+ "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.
"requests": [ # A list of updates to apply to the spreadsheet.
{ # A single kind of update to apply to a spreadsheet.
"duplicateFilterView": { # Duplicates a particular filter view. # Duplicates a filter view.
@@ -3929,7 +3938,13 @@
"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.
+ # 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
@@ -5848,6 +5863,9 @@
},
},
},
+ "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.
@@ -11242,6 +11260,1129 @@
"sheetId": 42, # The sheet to append rows or columns to.
"dimension": "A String", # Whether rows or columns should be appended.
},
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -11927,6 +13068,1128 @@
# CUSTOM.
"delimiterType": "A String", # The delimiter type to use.
},
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
},
@@ -13057,7 +15320,13 @@
"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.
+ # 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
@@ -13389,6 +15658,6415 @@
{ # 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "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.
+ "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`.
+ "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ },
+ "title": "A String", # The title of the spreadsheet.
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ },
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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 currently 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ },
+ },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRow": 42, # The first row this GridData refers to, zero-based.
+ "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.
+ "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.
+ },
+ ],
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ },
+ ],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "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.
+ "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`.
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ },
+ ],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.)
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ "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.
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ "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.
+ "rowCount": 42, # The number of rows 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.
+ "frozenRowCount": 42, # The number of rows that are frozen 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.
@@ -13490,7 +22168,13 @@
"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.
+ # 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
@@ -16754,7 +25438,13 @@
"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.
+ # 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
@@ -18383,6 +27073,1126 @@
},
},
},
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -18488,6 +28298,6423 @@
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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "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.
+ "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`.
+ "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ },
+ "title": "A String", # The title of the spreadsheet.
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ },
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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 currently 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ },
+ },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRow": 42, # The first row this GridData refers to, zero-based.
+ "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.
+ "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.
+ },
+ ],
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ },
+ ],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "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.
+ "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`.
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ },
+ ],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.)
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ "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.
+ },
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ "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.
+ "rowCount": 42, # The number of rows 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.
+ "frozenRowCount": 42, # The number of rows that are frozen 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.
@@ -20697,6 +36924,1126 @@
},
},
],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
@@ -23618,7 +40965,13 @@
"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.
+ # 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
@@ -23766,5296 +41119,9 @@
},
},
],
- }
-
- 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "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.
- "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`.
- "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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.
- },
- "title": "A String", # The title of the spreadsheet.
- },
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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.
- },
- },
- },
- ],
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- },
- },
- },
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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 currently 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- },
- },
- },
- ],
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRow": 42, # The first row this GridData refers to, zero-based.
- "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.
- "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.
- },
- ],
- "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.)
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- },
- ],
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- ],
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "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.
- "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`.
- "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.)
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- },
- ],
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- ],
- "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.)
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- },
- "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.
- },
- },
- ],
- },
- ],
- },
- ],
- },
- ],
- "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.
- "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.
- "rowCount": 42, # The number of rows 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.
- "frozenRowCount": 42, # The number of rows that are frozen 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.
- },
- },
- ],
- }</pre>
+ "spreadsheetUrl": "A String", # The url of the spreadsheet.
+ # This field is read-only.
+ }</pre>
</div>
<div class="method">
@@ -29096,85 +41162,217 @@
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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
- },
- "name": "A String", # The name of the named range.
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
},
- ],
- "properties": { # Properties of a spreadsheet. # Overall properties of a spreadsheet.
- "locale": "A String", # The locale of the spreadsheet in one of the following formats:
+ "name": "A String", # The name of the named range.
+ },
+ ],
+ "properties": { # Properties of a spreadsheet. # Overall properties of a 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.
+ "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`.
+ "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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:
#
- # * an ISO 639-1 language code such as `en`
+ # Example (Java):
#
- # * an ISO 639-2 language code such as `fil`, if no 639-1 code exists
+ # import com.google.type.Color;
#
- # * a combination of the ISO language code and country code, such as `en_US`
+ # // ...
+ # public static java.awt.Color fromProto(Color protocolor) {
+ # float alpha = protocolor.hasAlpha()
+ # ? protocolor.getAlpha().getValue()
+ # : 1.0;
#
- # Note: when updating this field, not all locales/languages are supported.
- "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`.
- "autoRecalc": "A String", # The amount of time to wait before volatile functions are recalculated.
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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.
+ # return new java.awt.Color(
+ # protocolor.getRed(),
+ # protocolor.getGreen(),
+ # protocolor.getBlue(),
+ # alpha);
+ # }
+ #
+ # public static Color toProto(java.awt.Color color) {
+ # float red = (float) color.getRed();
+ # float green = (float) color.getGreen();
+ # float blue = (float) color.getBlue();
+ # float denominator = 255.0;
+ # Color.Builder resultBuilder =
+ # Color
+ # .newBuilder()
+ # .setRed(red / denominator)
+ # .setGreen(green / denominator)
+ # .setBlue(blue / denominator);
+ # int alpha = color.getAlpha();
+ # if (alpha != 255) {
+ # result.setAlpha(
+ # FloatValue
+ # .newBuilder()
+ # .setValue(((float) alpha) / denominator)
+ # .build());
+ # }
+ # return resultBuilder.build();
+ # }
+ # // ...
+ #
+ # Example (iOS / Obj-C):
+ #
+ # // ...
+ # static UIColor* fromProto(Color* protocolor) {
+ # float red = [protocolor red];
+ # float green = [protocolor green];
+ # float blue = [protocolor blue];
+ # FloatValue* alpha_wrapper = [protocolor alpha];
+ # float alpha = 1.0;
+ # if (alpha_wrapper != nil) {
+ # alpha = [alpha_wrapper value];
+ # }
+ # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
+ # }
+ #
+ # static Color* toProto(UIColor* color) {
+ # CGFloat red, green, blue, alpha;
+ # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
+ # return nil;
+ # }
+ # Color* result = [Color alloc] init];
+ # [result setRed:red];
+ # [result setGreen:green];
+ # [result setBlue:blue];
+ # if (alpha <= 0.9999) {
+ # [result setAlpha:floatWrapperWithValue(alpha)];
+ # }
+ # [result autorelease];
+ # return result;
+ # }
+ # // ...
+ #
+ # Example (JavaScript):
+ #
+ # // ...
+ #
+ # var protoToCssColor = function(rgb_color) {
+ # var redFrac = rgb_color.red || 0.0;
+ # var greenFrac = rgb_color.green || 0.0;
+ # var blueFrac = rgb_color.blue || 0.0;
+ # var red = Math.floor(redFrac * 255);
+ # var green = Math.floor(greenFrac * 255);
+ # var blue = Math.floor(blueFrac * 255);
+ #
+ # if (!('alpha' in rgb_color)) {
+ # return rgbToCssColor_(red, green, blue);
+ # }
+ #
+ # var alphaFrac = rgb_color.alpha.value || 0.0;
+ # var rgbParams = [red, green, blue].join(',');
+ # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
+ # };
+ #
+ # var rgbToCssColor_ = function(red, green, blue) {
+ # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
+ # var hexString = rgbNumber.toString(16);
+ # var missingZeros = 6 - hexString.length;
+ # var resultBuilder = ['#'];
+ # for (var i = 0; i < missingZeros; i++) {
+ # resultBuilder.push('0');
+ # }
+ # resultBuilder.push(hexString);
+ # return resultBuilder.join('');
+ # };
+ #
+ # // ...
+ "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
+ "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
+ # the final pixel color is defined by the equation:
+ #
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+ #
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+ },
+ "verticalAlignment": "A String", # The vertical 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
@@ -29303,10 +41501,17 @@
"green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
"red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "verticalAlignment": "A String", # The vertical 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.
+ "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.
+ },
+ "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
@@ -29435,649 +41640,642 @@
"green": 3.14, # The amount of green in the color as a 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.
+ "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.
},
- "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:
+ "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:
#
- # Example (Java):
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
#
- # import com.google.type.Color;
- #
- # // ...
- # public static java.awt.Color fromProto(Color protocolor) {
- # float alpha = protocolor.hasAlpha()
- # ? protocolor.getAlpha().getValue()
- # : 1.0;
- #
- # return new java.awt.Color(
- # protocolor.getRed(),
- # protocolor.getGreen(),
- # protocolor.getBlue(),
- # alpha);
- # }
- #
- # public static Color toProto(java.awt.Color color) {
- # float red = (float) color.getRed();
- # float green = (float) color.getGreen();
- # float blue = (float) color.getBlue();
- # float denominator = 255.0;
- # Color.Builder resultBuilder =
- # Color
- # .newBuilder()
- # .setRed(red / denominator)
- # .setGreen(green / denominator)
- # .setBlue(blue / denominator);
- # int alpha = color.getAlpha();
- # if (alpha != 255) {
- # result.setAlpha(
- # FloatValue
- # .newBuilder()
- # .setValue(((float) alpha) / denominator)
- # .build());
- # }
- # return resultBuilder.build();
- # }
- # // ...
- #
- # Example (iOS / Obj-C):
- #
- # // ...
- # static UIColor* fromProto(Color* protocolor) {
- # float red = [protocolor red];
- # float green = [protocolor green];
- # float blue = [protocolor blue];
- # FloatValue* alpha_wrapper = [protocolor alpha];
- # float alpha = 1.0;
- # if (alpha_wrapper != nil) {
- # alpha = [alpha_wrapper value];
- # }
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
- # }
- #
- # static Color* toProto(UIColor* color) {
- # CGFloat red, green, blue, alpha;
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
- # return nil;
- # }
- # Color* result = [Color alloc] init];
- # [result setRed:red];
- # [result setGreen:green];
- # [result setBlue:blue];
- # if (alpha <= 0.9999) {
- # [result setAlpha:floatWrapperWithValue(alpha)];
- # }
- # [result autorelease];
- # return result;
- # }
- # // ...
- #
- # Example (JavaScript):
- #
- # // ...
- #
- # var protoToCssColor = function(rgb_color) {
- # var redFrac = rgb_color.red || 0.0;
- # var greenFrac = rgb_color.green || 0.0;
- # var blueFrac = rgb_color.blue || 0.0;
- # var red = Math.floor(redFrac * 255);
- # var green = Math.floor(greenFrac * 255);
- # var blue = Math.floor(blueFrac * 255);
- #
- # if (!('alpha' in rgb_color)) {
- # return rgbToCssColor_(red, green, blue);
- # }
- #
- # var alphaFrac = rgb_color.alpha.value || 0.0;
- # var rgbParams = [red, green, blue].join(',');
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
- # };
- #
- # var rgbToCssColor_ = function(red, green, blue) {
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
- # var hexString = rgbNumber.toString(16);
- # var missingZeros = 6 - hexString.length;
- # var resultBuilder = ['#'];
- # for (var i = 0; i < missingZeros; i++) {
- # resultBuilder.push('0');
- # }
- # resultBuilder.push(hexString);
- # return resultBuilder.join('');
- # };
- #
- # // ...
- "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
- "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
- # the final pixel color is defined by the equation:
- #
- # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
- #
- # This means that a value of 1.0 corresponds to a solid color, whereas
- # a value of 0.0 corresponds to a completely transparent color. This
- # uses a wrapper message rather than a simple float scalar so that it is
- # possible to distinguish between a default value and the value being unset.
- # If omitted, this color object is to be rendered as a solid color
- # (as if the alpha value had been explicitly given with a value of 1.0).
- "green": 3.14, # The amount of green in the color as a 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.
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "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.
- },
+ "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.
+ "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.
+ },
},
- "title": "A String", # The title of the spreadsheet.
+ "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
},
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- "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/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.
+ "title": "A String", # The title of the spreadsheet.
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
},
- "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.
- },
- "horizontalAlignment": "A String", # The horizontal 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.
+ ],
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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
@@ -30206,10 +42404,17 @@
"green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
"red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "verticalAlignment": "A String", # The vertical 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.
+ "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.
+ },
+ "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
@@ -30338,975 +42543,837 @@
"green": 3.14, # The amount of green in the color as a 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.
+ "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.
},
- "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:
+ "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:
#
- # Example (Java):
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
#
- # import com.google.type.Color;
- #
- # // ...
- # public static java.awt.Color fromProto(Color protocolor) {
- # float alpha = protocolor.hasAlpha()
- # ? protocolor.getAlpha().getValue()
- # : 1.0;
- #
- # return new java.awt.Color(
- # protocolor.getRed(),
- # protocolor.getGreen(),
- # protocolor.getBlue(),
- # alpha);
- # }
- #
- # public static Color toProto(java.awt.Color color) {
- # float red = (float) color.getRed();
- # float green = (float) color.getGreen();
- # float blue = (float) color.getBlue();
- # float denominator = 255.0;
- # Color.Builder resultBuilder =
- # Color
- # .newBuilder()
- # .setRed(red / denominator)
- # .setGreen(green / denominator)
- # .setBlue(blue / denominator);
- # int alpha = color.getAlpha();
- # if (alpha != 255) {
- # result.setAlpha(
- # FloatValue
- # .newBuilder()
- # .setValue(((float) alpha) / denominator)
- # .build());
- # }
- # return resultBuilder.build();
- # }
- # // ...
- #
- # Example (iOS / Obj-C):
- #
- # // ...
- # static UIColor* fromProto(Color* protocolor) {
- # float red = [protocolor red];
- # float green = [protocolor green];
- # float blue = [protocolor blue];
- # FloatValue* alpha_wrapper = [protocolor alpha];
- # float alpha = 1.0;
- # if (alpha_wrapper != nil) {
- # alpha = [alpha_wrapper value];
- # }
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
- # }
- #
- # static Color* toProto(UIColor* color) {
- # CGFloat red, green, blue, alpha;
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
- # return nil;
- # }
- # Color* result = [Color alloc] init];
- # [result setRed:red];
- # [result setGreen:green];
- # [result setBlue:blue];
- # if (alpha <= 0.9999) {
- # [result setAlpha:floatWrapperWithValue(alpha)];
- # }
- # [result autorelease];
- # return result;
- # }
- # // ...
- #
- # Example (JavaScript):
- #
- # // ...
- #
- # var protoToCssColor = function(rgb_color) {
- # var redFrac = rgb_color.red || 0.0;
- # var greenFrac = rgb_color.green || 0.0;
- # var blueFrac = rgb_color.blue || 0.0;
- # var red = Math.floor(redFrac * 255);
- # var green = Math.floor(greenFrac * 255);
- # var blue = Math.floor(blueFrac * 255);
- #
- # if (!('alpha' in rgb_color)) {
- # return rgbToCssColor_(red, green, blue);
- # }
- #
- # var alphaFrac = rgb_color.alpha.value || 0.0;
- # var rgbParams = [red, green, blue].join(',');
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
- # };
- #
- # var rgbToCssColor_ = function(red, green, blue) {
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
- # var hexString = rgbNumber.toString(16);
- # var missingZeros = 6 - hexString.length;
- # var resultBuilder = ['#'];
- # for (var i = 0; i < missingZeros; i++) {
- # resultBuilder.push('0');
- # }
- # resultBuilder.push(hexString);
- # return resultBuilder.join('');
- # };
- #
- # // ...
- "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
- "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
- # the final pixel color is defined by the equation:
- #
- # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
- #
- # This means that a value of 1.0 corresponds to a solid color, whereas
- # a value of 0.0 corresponds to a completely transparent color. This
- # uses a wrapper message rather than a simple float scalar so that it is
- # possible to distinguish between a default value and the value being unset.
- # If omitted, this color object is to be rendered as a solid color
- # (as if the alpha value had been explicitly given with a value of 1.0).
- "green": 3.14, # The amount of green in the color as a 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.
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "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:
+ "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:
#
- # Example (Java):
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
#
- # import com.google.type.Color;
- #
- # // ...
- # public static java.awt.Color fromProto(Color protocolor) {
- # float alpha = protocolor.hasAlpha()
- # ? protocolor.getAlpha().getValue()
- # : 1.0;
- #
- # return new java.awt.Color(
- # protocolor.getRed(),
- # protocolor.getGreen(),
- # protocolor.getBlue(),
- # alpha);
- # }
- #
- # public static Color toProto(java.awt.Color color) {
- # float red = (float) color.getRed();
- # float green = (float) color.getGreen();
- # float blue = (float) color.getBlue();
- # float denominator = 255.0;
- # Color.Builder resultBuilder =
- # Color
- # .newBuilder()
- # .setRed(red / denominator)
- # .setGreen(green / denominator)
- # .setBlue(blue / denominator);
- # int alpha = color.getAlpha();
- # if (alpha != 255) {
- # result.setAlpha(
- # FloatValue
- # .newBuilder()
- # .setValue(((float) alpha) / denominator)
- # .build());
- # }
- # return resultBuilder.build();
- # }
- # // ...
- #
- # Example (iOS / Obj-C):
- #
- # // ...
- # static UIColor* fromProto(Color* protocolor) {
- # float red = [protocolor red];
- # float green = [protocolor green];
- # float blue = [protocolor blue];
- # FloatValue* alpha_wrapper = [protocolor alpha];
- # float alpha = 1.0;
- # if (alpha_wrapper != nil) {
- # alpha = [alpha_wrapper value];
- # }
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
- # }
- #
- # static Color* toProto(UIColor* color) {
- # CGFloat red, green, blue, alpha;
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
- # return nil;
- # }
- # Color* result = [Color alloc] init];
- # [result setRed:red];
- # [result setGreen:green];
- # [result setBlue:blue];
- # if (alpha <= 0.9999) {
- # [result setAlpha:floatWrapperWithValue(alpha)];
- # }
- # [result autorelease];
- # return result;
- # }
- # // ...
- #
- # Example (JavaScript):
- #
- # // ...
- #
- # var protoToCssColor = function(rgb_color) {
- # var redFrac = rgb_color.red || 0.0;
- # var greenFrac = rgb_color.green || 0.0;
- # var blueFrac = rgb_color.blue || 0.0;
- # var red = Math.floor(redFrac * 255);
- # var green = Math.floor(greenFrac * 255);
- # var blue = Math.floor(blueFrac * 255);
- #
- # if (!('alpha' in rgb_color)) {
- # return rgbToCssColor_(red, green, blue);
- # }
- #
- # var alphaFrac = rgb_color.alpha.value || 0.0;
- # var rgbParams = [red, green, blue].join(',');
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
- # };
- #
- # var rgbToCssColor_ = function(red, green, blue) {
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
- # var hexString = rgbNumber.toString(16);
- # var missingZeros = 6 - hexString.length;
- # var resultBuilder = ['#'];
- # for (var i = 0; i < missingZeros; i++) {
- # resultBuilder.push('0');
- # }
- # resultBuilder.push(hexString);
- # return resultBuilder.join('');
- # };
- #
- # // ...
- "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
- "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
- # the final pixel color is defined by the equation:
- #
- # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
- #
- # This means that a value of 1.0 corresponds to a solid color, whereas
- # a value of 0.0 corresponds to a completely transparent color. This
- # uses a wrapper message rather than a simple float scalar so that it is
- # possible to distinguish between a default value and the value being unset.
- # If omitted, this color object is to be rendered as a solid color
- # (as if the alpha value had been explicitly given with a value of 1.0).
- "green": 3.14, # The amount of green in the color as a 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.
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "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:
+ "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:
#
- # Example (Java):
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
#
- # import com.google.type.Color;
- #
- # // ...
- # public static java.awt.Color fromProto(Color protocolor) {
- # float alpha = protocolor.hasAlpha()
- # ? protocolor.getAlpha().getValue()
- # : 1.0;
- #
- # return new java.awt.Color(
- # protocolor.getRed(),
- # protocolor.getGreen(),
- # protocolor.getBlue(),
- # alpha);
- # }
- #
- # public static Color toProto(java.awt.Color color) {
- # float red = (float) color.getRed();
- # float green = (float) color.getGreen();
- # float blue = (float) color.getBlue();
- # float denominator = 255.0;
- # Color.Builder resultBuilder =
- # Color
- # .newBuilder()
- # .setRed(red / denominator)
- # .setGreen(green / denominator)
- # .setBlue(blue / denominator);
- # int alpha = color.getAlpha();
- # if (alpha != 255) {
- # result.setAlpha(
- # FloatValue
- # .newBuilder()
- # .setValue(((float) alpha) / denominator)
- # .build());
- # }
- # return resultBuilder.build();
- # }
- # // ...
- #
- # Example (iOS / Obj-C):
- #
- # // ...
- # static UIColor* fromProto(Color* protocolor) {
- # float red = [protocolor red];
- # float green = [protocolor green];
- # float blue = [protocolor blue];
- # FloatValue* alpha_wrapper = [protocolor alpha];
- # float alpha = 1.0;
- # if (alpha_wrapper != nil) {
- # alpha = [alpha_wrapper value];
- # }
- # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
- # }
- #
- # static Color* toProto(UIColor* color) {
- # CGFloat red, green, blue, alpha;
- # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
- # return nil;
- # }
- # Color* result = [Color alloc] init];
- # [result setRed:red];
- # [result setGreen:green];
- # [result setBlue:blue];
- # if (alpha <= 0.9999) {
- # [result setAlpha:floatWrapperWithValue(alpha)];
- # }
- # [result autorelease];
- # return result;
- # }
- # // ...
- #
- # Example (JavaScript):
- #
- # // ...
- #
- # var protoToCssColor = function(rgb_color) {
- # var redFrac = rgb_color.red || 0.0;
- # var greenFrac = rgb_color.green || 0.0;
- # var blueFrac = rgb_color.blue || 0.0;
- # var red = Math.floor(redFrac * 255);
- # var green = Math.floor(greenFrac * 255);
- # var blue = Math.floor(blueFrac * 255);
- #
- # if (!('alpha' in rgb_color)) {
- # return rgbToCssColor_(red, green, blue);
- # }
- #
- # var alphaFrac = rgb_color.alpha.value || 0.0;
- # var rgbParams = [red, green, blue].join(',');
- # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
- # };
- #
- # var rgbToCssColor_ = function(red, green, blue) {
- # var rgbNumber = new Number((red << 16) | (green << 8) | blue);
- # var hexString = rgbNumber.toString(16);
- # var missingZeros = 6 - hexString.length;
- # var resultBuilder = ['#'];
- # for (var i = 0; i < missingZeros; i++) {
- # resultBuilder.push('0');
- # }
- # resultBuilder.push(hexString);
- # return resultBuilder.join('');
- # };
- #
- # // ...
- "blue": 3.14, # The amount of blue in the color as a value in the interval [0, 1].
- "alpha": 3.14, # The fraction of this color that should be applied to the pixel. That is,
- # the final pixel color is defined by the equation:
- #
- # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
- #
- # This means that a value of 1.0 corresponds to a solid color, whereas
- # a value of 0.0 corresponds to a completely transparent color. This
- # uses a wrapper message rather than a simple float scalar so that it is
- # possible to distinguish between a default value and the value being unset.
- # If omitted, this color object is to be rendered as a solid color
- # (as if the alpha value had been explicitly given with a value of 1.0).
- "green": 3.14, # The amount of green in the color as a 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.
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
},
- "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.
- },
+ "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.
- },
+ "wrapStrategy": "A String", # The wrap strategy for the value in the cell.
},
},
- ],
- "merges": [ # The ranges that are merged together.
- { # A range on a sheet.
+ "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).
@@ -31341,9 +43408,1667 @@
"startColumnIndex": 42, # The start column (inclusive) of the range, or not set if unbounded.
"endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ },
],
- "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.
+ "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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ },
+ },
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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 currently 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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).
@@ -31422,309 +45147,566 @@
},
},
},
- "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.
- },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
},
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "startRow": 42, # The first row this GridData refers to, zero-based.
+ "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.
+ "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.
+ },
+ ],
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
},
],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.
+ "startRowIndex": 42, # The start row (inclusive) 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.
+ "endColumnIndex": 42, # The end column (exclusive) 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.
+ "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.
+ "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`.
+ "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",
+ ],
},
},
- "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 currently 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) of the range, or not set if unbounded.
+ "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.)
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
},
],
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ ],
+ "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.)
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
},
},
- ],
- "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.
+ "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.
+ "numberValue": 3.14, # Represents a double value.
+ # Note: Dates, Times and DateTimes are represented as doubles in
+ # "serial number" format.
+ "boolValue": True or False, # Represents a boolean value.
+ "formulaValue": "A String", # Represents a formula.
+ "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"`.
+ "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.
+ },
+ },
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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].
+ },
+ "verticalAlignment": "A String", # The vertical 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
@@ -31862,2519 +45844,1731 @@
"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.
+ "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.
},
- ],
- },
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "type": "A String", # The type of condition.
- "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.
+ "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/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.
+ },
+ "horizontalAlignment": "A String", # The horizontal 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:
#
- # 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 `=`).
+ # pixel color = alpha * (this color) + (1.0 - alpha) * (background color)
+ #
+ # This means that a value of 1.0 corresponds to a solid color, whereas
+ # a value of 0.0 corresponds to a completely transparent color. This
+ # uses a wrapper message rather than a simple float scalar so that it is
+ # possible to distinguish between a default value and the value being unset.
+ # If omitted, this color object is to be rendered as a solid color
+ # (as if the alpha value had been explicitly given with a value of 1.0).
+ "green": 3.14, # The amount of green in the color as a value in the interval [0, 1].
+ "red": 3.14, # The amount of red in the color as a value in the interval [0, 1].
+ },
+ "verticalAlignment": "A String", # The vertical 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.
+ },
+ "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.
+ "type": "A String", # The type of condition.
+ "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 `=`).
+ },
+ ],
+ },
+ },
+ "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.
+ },
},
],
},
- },
- },
- },
- ],
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "startRow": 42, # The first row this GridData refers to, zero-based.
- "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.
- "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.
- },
- ],
- "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.)
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- },
- ],
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- ],
- "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.
- "startRowIndex": 42, # The start row (inclusive) 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.
- "endColumnIndex": 42, # The end column (exclusive) 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.
- "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.
- "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`.
- "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.)
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- },
- ],
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- ],
- "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.)
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- "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.
- "numberValue": 3.14, # Represents a double value.
- # Note: Dates, Times and DateTimes are represented as doubles in
- # "serial number" format.
- "boolValue": True or False, # Represents a boolean value.
- "formulaValue": "A String", # Represents a formula.
- "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"`.
- "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.
- },
- },
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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/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.
- },
- "horizontalAlignment": "A String", # The horizontal 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].
- },
- "verticalAlignment": "A String", # The vertical 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.
- },
- "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.
- "type": "A String", # The type of condition.
- "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 `=`).
- },
- ],
- },
- },
- "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.
- },
- },
- ],
- },
- ],
- },
- ],
- },
- ],
- "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.
- "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.
- "rowCount": 42, # The number of rows 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.
- "frozenRowCount": 42, # The number of rows that are frozen 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.
+ ],
},
+ ],
+ "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.
+ "rowCount": 42, # The number of rows 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.
+ "frozenRowCount": 42, # The number of rows that are frozen 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.
},
- ],
- }</pre>
+ },
+ ],
+ "spreadsheetUrl": "A String", # The url of the spreadsheet.
+ # This field is read-only.
+ }</pre>
</div>
</body></html>
\ No newline at end of file