Module: Axlsx
- Defined in:
- lib/axlsx.rb,
lib/axlsx/package.rb,
lib/axlsx/version.rb,
lib/axlsx/drawing/pic.rb,
lib/axlsx/drawing/axes.rb,
lib/axlsx/drawing/axis.rb,
lib/axlsx/util/storage.rb,
lib/axlsx/doc_props/app.rb,
lib/axlsx/drawing/chart.rb,
lib/axlsx/drawing/title.rb,
lib/axlsx/stylesheet/xf.rb,
lib/axlsx/doc_props/core.rb,
lib/axlsx/drawing/d_lbls.rb,
lib/axlsx/drawing/marker.rb,
lib/axlsx/drawing/series.rb,
lib/axlsx/stylesheet/dxf.rb,
lib/axlsx/util/accessors.rb,
lib/axlsx/util/constants.rb,
lib/axlsx/drawing/drawing.rb,
lib/axlsx/drawing/num_val.rb,
lib/axlsx/drawing/scaling.rb,
lib/axlsx/drawing/str_val.rb,
lib/axlsx/drawing/view_3D.rb,
lib/axlsx/stylesheet/fill.rb,
lib/axlsx/stylesheet/font.rb,
lib/axlsx/util/validators.rb,
lib/axlsx/drawing/cat_axis.rb,
lib/axlsx/drawing/num_data.rb,
lib/axlsx/drawing/ser_axis.rb,
lib/axlsx/drawing/str_data.rb,
lib/axlsx/drawing/val_axis.rb,
lib/axlsx/stylesheet/color.rb,
lib/axlsx/util/zip_command.rb,
lib/axlsx/drawing/bar_chart.rb,
lib/axlsx/drawing/hyperlink.rb,
lib/axlsx/drawing/pie_chart.rb,
lib/axlsx/drawing/vml_shape.rb,
lib/axlsx/rels/relationship.rb,
lib/axlsx/stylesheet/border.rb,
lib/axlsx/stylesheet/styles.rb,
lib/axlsx/workbook/workbook.rb,
lib/axlsx/drawing/area_chart.rb,
lib/axlsx/drawing/bar_series.rb,
lib/axlsx/drawing/line_chart.rb,
lib/axlsx/drawing/pie_series.rb,
lib/axlsx/rels/relationships.rb,
lib/axlsx/stylesheet/num_fmt.rb,
lib/axlsx/drawing/area_series.rb,
lib/axlsx/drawing/line_series.rb,
lib/axlsx/drawing/vml_drawing.rb,
lib/axlsx/util/options_parser.rb,
lib/axlsx/content_type/default.rb,
lib/axlsx/drawing/bar_3D_chart.rb,
lib/axlsx/drawing/bubble_chart.rb,
lib/axlsx/drawing/pie_3D_chart.rb,
lib/axlsx/drawing/series_title.rb,
lib/axlsx/stylesheet/border_pr.rb,
lib/axlsx/util/mime_type_utils.rb,
lib/axlsx/content_type/override.rb,
lib/axlsx/drawing/bubble_series.rb,
lib/axlsx/drawing/graphic_frame.rb,
lib/axlsx/drawing/line_3D_chart.rb,
lib/axlsx/drawing/scatter_chart.rb,
lib/axlsx/stylesheet/cell_style.rb,
lib/axlsx/workbook/defined_name.rb,
lib/axlsx/drawing/ax_data_source.rb,
lib/axlsx/drawing/scatter_series.rb,
lib/axlsx/stylesheet/table_style.rb,
lib/axlsx/util/simple_typed_list.rb,
lib/axlsx/workbook/defined_names.rb,
lib/axlsx/workbook/workbook_view.rb,
lib/axlsx/workbook/worksheet/col.rb,
lib/axlsx/workbook/worksheet/row.rb,
lib/axlsx/drawing/num_data_source.rb,
lib/axlsx/drawing/one_cell_anchor.rb,
lib/axlsx/drawing/picture_locking.rb,
lib/axlsx/drawing/two_cell_anchor.rb,
lib/axlsx/stylesheet/pattern_fill.rb,
lib/axlsx/stylesheet/table_styles.rb,
lib/axlsx/workbook/workbook_views.rb,
lib/axlsx/workbook/worksheet/cell.rb,
lib/axlsx/workbook/worksheet/cfvo.rb,
lib/axlsx/workbook/worksheet/cols.rb,
lib/axlsx/workbook/worksheet/pane.rb,
lib/axlsx/stylesheet/gradient_fill.rb,
lib/axlsx/stylesheet/gradient_stop.rb,
lib/axlsx/workbook/worksheet/break.rb,
lib/axlsx/workbook/worksheet/cfvos.rb,
lib/axlsx/workbook/worksheet/table.rb,
lib/axlsx/content_type/content_type.rb,
lib/axlsx/stylesheet/cell_alignment.rb,
lib/axlsx/workbook/worksheet/tables.rb,
lib/axlsx/stylesheet/cell_protection.rb,
lib/axlsx/util/serialized_attributes.rb,
lib/axlsx/workbook/worksheet/comment.rb,
lib/axlsx/workbook/worksheet/comments.rb,
lib/axlsx/workbook/worksheet/data_bar.rb,
lib/axlsx/workbook/worksheet/icon_set.rb,
lib/axlsx/workbook/worksheet/sheet_pr.rb,
lib/axlsx/workbook/worksheet/dimension.rb,
lib/axlsx/workbook/worksheet/rich_text.rb,
lib/axlsx/workbook/worksheet/selection.rb,
lib/axlsx/workbook/worksheet/worksheet.rb,
lib/axlsx/workbook/shared_strings_table.rb,
lib/axlsx/workbook/worksheet/col_breaks.rb,
lib/axlsx/workbook/worksheet/outline_pr.rb,
lib/axlsx/workbook/worksheet/page_setup.rb,
lib/axlsx/workbook/worksheet/row_breaks.rb,
lib/axlsx/workbook/worksheet/sheet_data.rb,
lib/axlsx/workbook/worksheet/sheet_view.rb,
lib/axlsx/stylesheet/table_style_element.rb,
lib/axlsx/workbook/worksheet/color_scale.rb,
lib/axlsx/workbook/worksheet/pivot_table.rb,
lib/axlsx/util/buffered_zip_output_stream.rb,
lib/axlsx/workbook/worksheet/merged_cells.rb,
lib/axlsx/workbook/worksheet/page_margins.rb,
lib/axlsx/workbook/worksheet/pivot_tables.rb,
lib/axlsx/workbook/worksheet/header_footer.rb,
lib/axlsx/workbook/worksheet/print_options.rb,
lib/axlsx/workbook/worksheet/rich_text_run.rb,
lib/axlsx/workbook/worksheet/sheet_calc_pr.rb,
lib/axlsx/workbook/worksheet/border_creator.rb,
lib/axlsx/workbook/worksheet/page_set_up_pr.rb,
lib/axlsx/content_type/abstract_content_type.rb,
lib/axlsx/workbook/worksheet/cell_serializer.rb,
lib/axlsx/workbook/worksheet/data_validation.rb,
lib/axlsx/workbook/worksheet/protected_range.rb,
lib/axlsx/workbook/worksheet/sheet_format_pr.rb,
lib/axlsx/workbook/worksheet/data_validations.rb,
lib/axlsx/workbook/worksheet/protected_ranges.rb,
lib/axlsx/workbook/worksheet/sheet_protection.rb,
lib/axlsx/workbook/worksheet/table_style_info.rb,
lib/axlsx/workbook/worksheet/worksheet_drawing.rb,
lib/axlsx/workbook/worksheet/worksheet_comments.rb,
lib/axlsx/workbook/worksheet/auto_filter/filters.rb,
lib/axlsx/workbook/worksheet/date_time_converter.rb,
lib/axlsx/workbook/worksheet/worksheet_hyperlink.rb,
lib/axlsx/workbook/worksheet/worksheet_hyperlinks.rb,
lib/axlsx/workbook/worksheet/auto_filter/sort_state.rb,
lib/axlsx/workbook/worksheet/conditional_formatting.rb,
lib/axlsx/workbook/worksheet/auto_filter/auto_filter.rb,
lib/axlsx/workbook/worksheet/conditional_formattings.rb,
lib/axlsx/workbook/worksheet/auto_filter/filter_column.rb,
lib/axlsx/workbook/worksheet/auto_filter/sort_condition.rb,
lib/axlsx/workbook/worksheet/conditional_formatting_rule.rb,
lib/axlsx/workbook/worksheet/pivot_table_cache_definition.rb
Overview
Defined Under Namespace
Modules: Accessors, MimeTypeUtils, OptionsParser, SerializedAttributes Classes: AbstractContentType, App, AreaChart, AreaSeries, AutoFilter, AxDataSource, Axes, Axis, Bar3DChart, BarChart, BarSeries, Border, BorderCreator, BorderPr, Break, BubbleChart, BubbleSeries, BufferedZipOutputStream, CatAxis, Cell, CellAlignment, CellProtection, CellSerializer, CellStyle, Cfvo, Cfvos, Chart, Col, ColBreaks, Color, ColorScale, Cols, Comment, Comments, ConditionalFormatting, ConditionalFormattingRule, ConditionalFormattings, ContentType, Core, DLbls, DataBar, DataTypeValidator, DataValidation, DataValidations, DateTimeConverter, Default, DefinedName, DefinedNames, Dimension, Drawing, Dxf, Fill, FilterColumn, Filters, Font, GradientFill, GradientStop, GraphicFrame, HeaderFooter, Hyperlink, IconSet, Line3DChart, LineChart, LineSeries, Marker, MergedCells, NumData, NumDataSource, NumFmt, NumVal, OneCellAnchor, OutlinePr, Override, Package, PageMargins, PageSetUpPr, PageSetup, Pane, PatternFill, Pic, PictureLocking, Pie3DChart, PieChart, PieSeries, PivotTable, PivotTableCacheDefinition, PivotTables, PrintOptions, ProtectedRange, ProtectedRanges, RangeValidator, RegexValidator, Relationship, Relationships, RestrictionValidator, RichText, RichTextRun, Row, RowBreaks, Scaling, ScatterChart, ScatterSeries, Selection, SerAxis, Series, SeriesTitle, SharedStringsTable, SheetCalcPr, SheetData, SheetFormatPr, SheetPr, SheetProtection, SheetView, SortCondition, SortState, Storage, StrData, StrVal, Styles, Table, TableStyle, TableStyleElement, TableStyleInfo, TableStyles, Tables, Title, TwoCellAnchor, ValAxis, View3D, VmlDrawing, VmlShape, Workbook, WorkbookView, WorkbookViews, Worksheet, WorksheetComments, WorksheetDrawing, WorksheetHyperlink, WorksheetHyperlinks, Xf, ZipCommand
Constant Summary collapse
- VERSION =
The current version
"4.1.0"
- ENCODING =
XML Encoding
"UTF-8"
- XML_NS =
spreadsheetML namespace
"http://schemas.openxmlformats.org/spreadsheetml/2006/main"
- XML_NS_T =
content-types namespace
"http://schemas.openxmlformats.org/package/2006/content-types"
- APP_NS =
extended-properties namespace
"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"
- APP_NS_VT =
doc props namespace
"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"
- CORE_NS =
core properties namespace
"http://schemas.openxmlformats.org/package/2006/metadata/core-properties"
- CORE_NS_DC =
dc elements (core) namespace
"http://purl.org/dc/elements/1.1/"
- CORE_NS_DCMIT =
dcmit (core) namespcace
"http://purl.org/dc/dcmitype/"
- CORE_NS_DCT =
dc terms namespace
"http://purl.org/dc/terms/"
- CORE_NS_XSI =
xml schema namespace
"http://www.w3.org/2001/XMLSchema-instance"
- DIGITAL_SIGNATURE_NS =
Digital signature namespace
"http://schemas.openxmlformats.org/package/2006/digital-signature"
- XML_NS_XDR =
spreadsheet drawing namespace
"http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing"
- XML_NS_A =
drawing namespace
"http://schemas.openxmlformats.org/drawingml/2006/main"
- XML_NS_C =
chart namespace
"http://schemas.openxmlformats.org/drawingml/2006/chart"
- XML_NS_R =
relationships namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships"
- RELS_R =
relationships name space
"http://schemas.openxmlformats.org/package/2006/relationships"
- TABLE_R =
table rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/table"
- PIVOT_TABLE_R =
pivot table rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable"
- PIVOT_TABLE_CACHE_DEFINITION_R =
pivot table cache definition namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition"
- WORKBOOK_R =
workbook rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"
- WORKSHEET_R =
worksheet rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet"
- APP_R =
app rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties"
- CORE_R =
core rels namespace
"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties"
- DIGITAL_SIGNATURE_R =
digital signature rels namespace
"http://schemas.openxmlformats.org/package/2006/relationships/digital- signature/signature"
- STYLES_R =
styles rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"
- SHARED_STRINGS_R =
shared strings namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings"
- DRAWING_R =
drawing rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing"
- CHART_R =
chart rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart"
- IMAGE_R =
image rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
- HYPERLINK_R =
hyperlink rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink"
- COMMENT_R =
comment rels namespace
"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments"
- COMMENT_R_NULL =
comment relation for nil target
"http://purl.oclc.org/ooxml/officeDocument/relationships/comments"
- VML_DRAWING_R =
vml drawing relation namespace
'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
- VML_DRAWING_CT =
VML Drawing content type
"application/vnd.openxmlformats-officedocument.vmlDrawing"
- TABLE_CT =
table content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml"
- PIVOT_TABLE_CT =
pivot table content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"
- PIVOT_TABLE_CACHE_DEFINITION_CT =
pivot table cache definition content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"
- WORKBOOK_CT =
workbook content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"
- APP_CT =
app content type
"application/vnd.openxmlformats-officedocument.extended-properties+xml"
- RELS_CT =
rels content type
"application/vnd.openxmlformats-package.relationships+xml"
- STYLES_CT =
styles content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"
- XML_CT =
xml content type
"application/xml"
- WORKSHEET_CT =
worksheet content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"
- SHARED_STRINGS_CT =
shared strings content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"
- CORE_CT =
core content type
"application/vnd.openxmlformats-package.core-properties+xml"
- DIGITAL_SIGNATURE_XML_CT =
digital signature xml content type
"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml"
- DIGITAL_SIGNATURE_ORIGIN_CT =
digital signature origin content type
"application/vnd.openxmlformats-package.digital-signature-origin"
- DIGITAL_SIGNATURE_CERTIFICATE_CT =
digital signature certificate content type
"application/vnd.openxmlformats-package.digital-signature-certificate"
- CHART_CT =
chart content type
"application/vnd.openxmlformats-officedocument.drawingml.chart+xml"
- COMMENT_CT =
comments content type
"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml"
- JPEG_CT =
jpeg content type
"image/jpeg"
- GIF_CT =
gif content type
"image/gif"
- PNG_CT =
png content type
"image/png"
- DRAWING_CT =
drawing content type
"application/vnd.openxmlformats-officedocument.drawing+xml"
- XML_EX =
xml content type extensions
"xml"
- JPEG_EXS =
jpeg extensions
["jpeg", "jpg"].freeze
- GIF_EX =
gif extension
"gif"
- PNG_EX =
png extension
"png"
- RELS_EX =
rels content type extension
"rels"
- WORKBOOK_PN =
workbook part
"xl/workbook.xml"
- STYLES_PN =
styles part
"styles.xml"
- SHARED_STRINGS_PN =
shared_strings part
"sharedStrings.xml"
- APP_PN =
app part
"docProps/app.xml"
- CORE_PN =
core part
"docProps/core.xml"
- CONTENT_TYPES_PN =
content types part
"[Content_Types].xml"
- RELS_PN =
rels part
"_rels/.rels"
- WORKBOOK_RELS_PN =
workbook rels part
"xl/_rels/workbook.xml.rels"
- WORKSHEET_PN =
worksheet part
"worksheets/sheet%d.xml"
- WORKSHEET_RELS_PN =
worksheet rels part
"worksheets/_rels/sheet%d.xml.rels"
- DRAWING_PN =
drawing part
"drawings/drawing%d.xml"
- DRAWING_RELS_PN =
drawing rels part
"drawings/_rels/drawing%d.xml.rels"
- VML_DRAWING_PN =
vml drawing part
"drawings/vmlDrawing%d.vml"
- TABLE_PN =
drawing part
"tables/table%d.xml"
- PIVOT_TABLE_PN =
pivot table parts
"pivotTables/pivotTable%d.xml"
- PIVOT_TABLE_CACHE_DEFINITION_PN =
pivot table cache definition part name
"pivotCache/pivotCacheDefinition%d.xml"
- PIVOT_TABLE_RELS_PN =
pivot table rels parts
"pivotTables/_rels/pivotTable%d.xml.rels"
- CHART_PN =
chart part
"charts/chart%d.xml"
- IMAGE_PN =
chart part
"media/image%d.%s"
- COMMENT_PN =
comment part
"comments%d.xml"
- SCHEMA_BASE =
location of schema files for validation
"#{File.dirname(__FILE__)}/../../schema/"
- APP_XSD =
App validation schema
"#{SCHEMA_BASE}shared-documentPropertiesExtended.xsd"
- CORE_XSD =
core validation schema
"#{SCHEMA_BASE}opc-coreProperties.xsd"
- CONTENT_TYPES_XSD =
content types validation schema
"#{SCHEMA_BASE}opc-contentTypes.xsd"
- RELS_XSD =
rels validation schema
"#{SCHEMA_BASE}opc-relationships.xsd"
- SML_XSD =
spreadsheetML validation schema
"#{SCHEMA_BASE}sml.xsd"
- DRAWING_XSD =
drawing validation schema
"#{SCHEMA_BASE}dml-spreadsheetDrawing.xsd"
- NUM_FMT_PERCENT =
number format id for pecentage formatting using the default formatting id.
9
- NUM_FMT_YYYYMMDD =
number format id for date format like 2011/11/13
100
- NUM_FMT_YYYYMMDDHHMMSS =
number format id for time format the creates 2011/11/13 12:23:10
101
- STYLE_THIN_BORDER =
cellXfs id for thin borders around the cell
1
- STYLE_DATE =
cellXfs id for default date styling
2
- WORKSHEET_MAX_NAME_LENGTH =
worksheet maximum name length
31
- WORKSHEET_NAME_FORBIDDEN_CHARS =
worksheet name forbidden characters
'[]*/\?:'.chars.freeze
- ERR_RESTRICTION =
error messages RestrictionValidor
"Invalid Data: %s. %s must be one of %s."
- ERR_TYPE =
error message DataTypeValidator
"Invalid Data %s for %s. must be %s."
- ERR_REGEX =
error message for RegexValidator
"Invalid Data. %s does not match %s."
- ERR_RANGE =
error message for RangeValidator
"Invalid Data. %s must be between %s and %s, (inclusive:%s) you gave: %s"
- ERR_SHEET_NAME_EMPTY =
error message for sheets that use explicit empty string name
"Your worksheet name is empty. Worksheet name can't be empty. Please assign name of your sheet or don't use name option at all."
- ERR_SHEET_NAME_TOO_LONG =
error message for sheets that use a name which is longer than 31 bytes
"Your worksheet name '%s' is too long. Worksheet names must be #{WORKSHEET_MAX_NAME_LENGTH} characters (bytes) or less"
- ERR_SHEET_NAME_CHARACTER_FORBIDDEN =
error message for sheets that use a name which include invalid characters
"Your worksheet name '%s' contains a character which is not allowed by MS Excel and will cause repair warnings. Please change the name of your sheet."
- ERR_DUPLICATE_SHEET_NAME =
error message for duplicate sheet names
"There is already a worksheet in this workbook named '%s'. Please use a unique name"
- ERR_INVALID_BORDER_OPTIONS =
error message when user does not provide color and or style options for border in Style#add_sytle
"border hash must include both style and color. e.g. :border => { :color => 'FF000000', :style => :thin }. You provided: %s"
- ERR_INVALID_BORDER_ID =
error message for invalid border id reference
"The border id you specified (%s) does not exist. Please add a border with Style#add_style before referencing its index."
- ERR_ANGLE =
error message for invalid angles
"Angles must be a value between -90 and 90. You provided: %s"
- ERR_INTEGERISH =
error message for non 'integerish' value
"You value must be, or be castable via to_i, an Integer. You provided %s"
- ERR_CELL_REFERENCE_INVALID =
error message for invalid cell reference
"Invalid cell definition `%s`"
- ERR_CELL_REFERENCE_MISSING_CELL =
error message for cell reference with last cell missing
"Missing cell `%s` for the specified range `%s`"
- CONTROL_CHARS =
The regular expression used to remove control characters from worksheets
pattern.freeze
- ISO_8601_REGEX =
ISO 8601 date recognition
/\A(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?\Z/.freeze
- SAFE_FLOAT_REGEX =
FLOAT recognition
/\A[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]{1,2})?\Z/.freeze
- MAYBE_FLOAT_REGEX =
/\A[-+]?[0-9]*\.?[0-9]+[eE](?<exp>[-+]?[0-9]{3})\Z/.freeze
- NUMERIC_REGEX =
Numeric recognition
/\A[+-]?\d+?\Z/.freeze
- FORMULA_PREFIX =
Leading characters that indicate a formula. See: https://owasp.org/www-community/attacks/CSV_Injection
'='
- ARRAY_FORMULA_PREFIX =
Leading characters that indicate an array formula.
'{='
- ARRAY_FORMULA_SUFFIX =
Trailing character that indicates an array formula.
'}'
- BOOLEAN_VALUES =
[true, false].freeze
- UINT_VALIDATOR =
Validates an unsigned intger
->(arg) { arg.respond_to?(:>=) && arg >= 0 }
- VALID_BOOLEAN_CLASSES =
[TrueClass, FalseClass, Integer, String, Symbol].freeze
- VALID_BOOLEAN_VALUES =
[true, false, 1, 0, '1', '0', 'true', 'false', :true, :false].freeze
- BOOLEAN_VALIDATOR =
->(arg) { VALID_BOOLEAN_VALUES.include?(arg) }
- SCALE_10_400_VALIDATOR =
->(arg) { arg >= 10 && arg <= 400 }
- SCALE_0_10_400_VALIDATOR =
->(arg) { arg == 0 || (arg >= 10 && arg <= 400) }
- VALID_PAGE_ORIENTATION_VALUES =
[:default, :landscape, :portrait].freeze
- VALID_CELL_U_VALUES =
[:none, :single, :double, :singleAccounting, :doubleAccounting].freeze
- VALID_FAMILY_VALUES =
(1..5).freeze
- VALID_PATTERN_TYPE_VALUES =
[:none, :solid, :mediumGray, :darkGray, :lightGray, :darkHorizontal, :darkVertical, :darkDown, :darkUp, :darkGrid, :darkTrellis, :lightHorizontal, :lightVertical, :lightDown, :lightUp, :lightGrid, :lightTrellis, :gray125, :gray0625].freeze
- VALID_TIME_PERIOD_TYPE_VALUES =
[:today, :yesterday, :tomorrow, :last7Days, :thisMonth, :lastMonth, :nextMonth, :thisWeek, :lastWeek, :nextWeek].freeze
- VALID_ICON_SET_VALUES =
["3Arrows", "3ArrowsGray", "3Flags", "3TrafficLights1", "3TrafficLights2", "3Signs", "3Symbols", "3Symbols2", "4Arrows", "4ArrowsGray", "4RedToBlack", "4Rating", "4TrafficLights", "5Arrows", "5ArrowsGray", "5Rating", "5Quarters"].freeze
- VALID_CONDITIONAL_FORMATTING_TYPE_VALUES =
[:expression, :cellIs, :colorScale, :dataBar, :iconSet, :top10, :uniqueValues, :duplicateValues, :containsText, :notContainsText, :beginsWith, :endsWith, :containsBlanks, :notContainsBlanks, :containsErrors, :notContainsErrors, :timePeriod, :aboveAverage].freeze
- VALID_CONDITION_FORMATTING_VALUE_OBJECT_TYPE_VALUES =
[:num, :percent, :max, :min, :formula, :percentile].freeze
- VALID_CONDITIONAL_FORMATTING_OPERATOR_VALUES =
[:lessThan, :lessThanOrEqual, :equal, :notEqual, :greaterThanOrEqual, :greaterThan, :between, :notBetween, :containsText, :notContains, :beginsWith, :endsWith].freeze
- VALID_GRADIENT_TYPE_VALUES =
[:linear, :path].freeze
- VALID_SCATTER_STYLE_VALUES =
[:none, :line, :lineMarker, :marker, :smooth, :smoothMarker].freeze
- VALID_HORIZONTAL_ALIGNMENT_VALUES =
[:general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed].freeze
- VALID_VERTICAL_ALIGNMENT_VALUES =
[:top, :center, :bottom, :justify, :distributed].freeze
- VALID_CONTENT_TYPE_VALUES =
[TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, JPEG_CT, GIF_CT, PNG_CT, DRAWING_CT, COMMENT_CT, VML_DRAWING_CT, PIVOT_TABLE_CT, PIVOT_TABLE_CACHE_DEFINITION_CT].freeze
- VALID_RELATIONSHIP_TYPE_VALUES =
[XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R, COMMENT_R, VML_DRAWING_R, COMMENT_R_NULL, PIVOT_TABLE_R, PIVOT_TABLE_CACHE_DEFINITION_R].freeze
- VALID_TABLE_ELEMENT_TYPE_VALUES =
[:wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues].freeze
- VALID_DATA_VALIDATION_ERROR_STYLE_VALUES =
[:information, :stop, :warning].freeze
- VALID_DATA_VALIDATION_OPERATOR_VALUES =
[:lessThan, :lessThanOrEqual, :equal, :notEqual, :greaterThanOrEqual, :greaterThan, :between, :notBetween].freeze
- VALID_DATA_VALIDATION_TYPE_VALUES =
[:custom, :data, :decimal, :list, :none, :textLength, :date, :time, :whole].freeze
- VALID_SHEET_VIEW_TYPE_VALUES =
[:normal, :page_break_preview, :page_layout].freeze
- VALID_PANE_TYPE_VALUES =
[:bottom_left, :bottom_right, :top_left, :top_right].freeze
- VALID_SPLIT_STATE_TYPE_VALUES =
[:frozen, :frozen_split, :split].freeze
- VALID_DISPLAY_BLANK_AS_VALUES =
[:gap, :span, :zero].freeze
- VALID_VIEW_VISIBILITY_VALUES =
[:visible, :hidden, :very_hidden].freeze
- VALID_MARKER_SYMBOL_VALUES =
[:default, :circle, :dash, :diamond, :dot, :picture, :plus, :square, :star, :triangle, :x].freeze
Class Method Summary collapse
-
.booleanize(value) ⇒ Object
If value is boolean return 1 or 0 else return the value.
-
.camel(s = "", all_caps = true) ⇒ String
performs the increadible feat of changing snake_case to CamelCase.
-
.cell_r(c_index, r_index) ⇒ String
The alpha(column)numeric(row) reference for this sell.
-
.cell_range(cells, absolute = true) ⇒ Object
determines the cell range for the items provided.
-
.coder ⇒ HtmlEntities
global reference html entity encoding.
-
.col_ref(index) ⇒ String
converts the column index into alphabetical values.
-
.escape_formulas ⇒ Boolean
Whether to treat values starting with an equals sign as formulas or as literal strings.
-
.escape_formulas=(value) ⇒ Object
Sets whether to treat values starting with an equals sign as formulas or as literal strings.
-
.hash_deep_merge(first_hash, second_hash) ⇒ Object
utility method for performing a deep merge on a Hash.
-
.instance_values_for(object) ⇒ Object
I am a very big fan of activesupports instance_values method, but do not want to require nor include the entire library just for this one method.
-
.name_to_indices(name) ⇒ Object
returns the x, y position of a cell.
-
.range_to_a(range) ⇒ Array
Creates an array of individual cell references based on an Excel reference range.
-
.row_ref(index) ⇒ String
converts the row index into string values.
-
.sanitize(str) ⇒ String
returns the provided string with all invalid control charaters removed.
-
.sort_cells(cells) ⇒ Array
sorts the array of cells provided to start from the minimum x,y to the maximum x.y#.
-
.trust_input ⇒ Object
Instructs the serializer to not try to escape cell value input.
-
.trust_input=(trust_me) ⇒ Boolean
@param[Boolean] trust_me A boolean value indicating if the cell value content is to be trusted.
-
.validate_angle(v) ⇒ Boolean
Requires that the value is between -54000000 and 54000000.
-
.validate_boolean(v) ⇒ Object
Requires that the value is a form that can be evaluated as a boolean in an xml document.
-
.validate_cell_u(v) ⇒ Object
Requires that the value is one of :none, :single, :double, :singleAccounting, :doubleAccounting.
-
.validate_conditional_formatting_operator(v) ⇒ Object
Requires that the value is valid conditional formatting operator.
-
.validate_conditional_formatting_type(v) ⇒ Object
Requires that the value is valid conditional formatting type.
-
.validate_conditional_formatting_value_object_type(v) ⇒ Object
Requires thatt he value is a valid conditional formatting value object type.
-
.validate_content_type(v) ⇒ Object
Requires that the value is a valid content_type TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, DRAWING_CT, COMMENT_CT are allowed.
-
.validate_data_validation_error_style(v) ⇒ Object
Requires that the value is a valid data_validation_error_style :information, :stop, :warning.
-
.validate_data_validation_operator(v) ⇒ Object
Requires that the value is valid data validation operator.
-
.validate_data_validation_type(v) ⇒ Object
Requires that the value is valid data validation type.
-
.validate_display_blanks_as(v) ⇒ Object
Requires that the value is a valid "display blanks as" type.
-
.validate_family(v) ⇒ Object
validates cell style family which must be between 1 and 5.
-
.validate_float(v) ⇒ Object
Requires that the value is a Float.
-
.validate_gradient_type(v) ⇒ Object
Requires that the value is a gradient_type.
-
.validate_horizontal_alignment(v) ⇒ Object
Requires that the value is a valid horizontal_alignment :general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed are allowed.
-
.validate_icon_set(v) ⇒ Object
Requires that the value is one of the valid ST_IconSet types Allowed values are: 3Arrows, 3ArrowsGray, 3Flags, 3TrafficLights1, 3TrafficLights2, 3Signs, 3Symbols, 3Symbols2, 4Arrows, 4ArrowsGray, 4RedToBlack, 4Rating, 4TrafficLights, 5Arrows, 5ArrowsGray, 5Rating, 5Quarters.
-
.validate_int(v) ⇒ Object
Requires that the value is a Integer.
-
.validate_integerish(v) ⇒ Object
Requires that the value can be converted to an integer @para, [Any] v the value to validate.
-
.validate_marker_symbol(v) ⇒ Object
Requires that the value is one of :default, :circle, :dash, :diamond, :dot, :picture, :plus, :square, :star, :triangle, :x.
-
.validate_number_with_unit(v) ⇒ Object
Requires that the value is a string containing a positive decimal number followed by one of the following units: "mm", "cm", "in", "pt", "pc", "pi".
-
.validate_page_orientation(v) ⇒ Object
Requires that the value is one of :default, :landscape, or :portrait.
-
.validate_pane_type(v) ⇒ Object
Requires that the value is a valid active pane type.
-
.validate_pattern_type(v) ⇒ Object
Requires that the value is valid pattern type.
-
.validate_relationship_type(v) ⇒ Object
Requires that the value is a valid relationship_type XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R are allowed.
-
.validate_scale_0_10_400(v) ⇒ Object
Requires that the value is an integer ranging from 10 to 400 or 0.
-
.validate_scale_10_400(v) ⇒ Object
Requires that the value is an integer ranging from 10 to 400.
-
.validate_scatter_style(v) ⇒ Object
Requires that the value is a valid scatterStyle must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker must be one of "none" | "line" | "lineMarker" | "marker" | "smooth" | "smoothMarker".
-
.validate_sheet_view_type(v) ⇒ Object
Requires that the value is a valid sheet view type.
-
.validate_split_state_type(v) ⇒ Object
Requires that the value is a valid split state type.
-
.validate_string(v) ⇒ Object
Requires that the value is a String.
-
.validate_table_element_type(v) ⇒ Object
Requires that the value is a valid table element type :wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues are allowed.
-
.validate_time_period_type(v) ⇒ Object
Requires that the value is one of the ST_TimePeriod types valid time period types are today, yesterday, tomorrow, last7Days, thisMonth, lastMonth, nextMonth, thisWeek, lastWeek, nextWeek.
-
.validate_unsigned_int(v) ⇒ Boolean
Requires that the value is a Integer and is greater or equal to 0.
-
.validate_unsigned_numeric(v) ⇒ Boolean
Requires that the value is a Integer or Float and is greater or equal to 0.
-
.validate_vertical_alignment(v) ⇒ Object
Requires that the value is a valid vertical_alignment :top, :center, :bottom, :justify, :distributed are allowed.
-
.validate_view_visibility(v) ⇒ Object
Requires that the value is one of :visible, :hidden, :very_hidden.
Class Method Details
.booleanize(value) ⇒ Object
If value is boolean return 1 or 0 else return the value
183 184 185 186 187 188 189 |
# File 'lib/axlsx.rb', line 183 def self.booleanize(value) if BOOLEAN_VALUES.include?(value) value ? '1' : '0' else value end end |
.camel(s = "", all_caps = true) ⇒ String
performs the increadible feat of changing snake_case to CamelCase
160 161 162 163 164 |
# File 'lib/axlsx.rb', line 160 def self.camel(s = "", all_caps = true) s = s.to_s s = s.capitalize if all_caps s.gsub(/_(.)/) { ::Regexp.last_match(1).upcase } end |
.cell_r(c_index, r_index) ⇒ String
Returns The alpha(column)numeric(row) reference for this sell.
139 140 141 |
# File 'lib/axlsx.rb', line 139 def self.cell_r(c_index, r_index) col_ref(c_index) + row_ref(r_index) end |
.cell_range(cells, absolute = true) ⇒ Object
determines the cell range for the items provided
57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/axlsx.rb', line 57 def self.cell_range(cells, absolute = true) return "" unless cells.first.is_a? Cell first_cell, last_cell = cells.minmax_by(&:pos) reference = "#{first_cell.reference(absolute)}:#{last_cell.reference(absolute)}" if absolute escaped_name = first_cell.row.worksheet.name.gsub ''', "''" "'#{escaped_name}'!#{reference}" else reference end end |
.coder ⇒ HtmlEntities
global reference html entity encoding
80 81 82 |
# File 'lib/axlsx.rb', line 80 def self.coder @@coder ||= ::HTMLEntities.new end |
.col_ref(index) ⇒ String
This follows the standard spreadsheet convention of naming columns A to Z, followed by AA to AZ etc.
converts the column index into alphabetical values.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/axlsx.rb', line 111 def self.col_ref(index) # Every row will call this for each column / cell and so we can cache result and avoid lots of small object # allocations. @col_ref ||= {} @col_ref[index] ||= begin i = index chars = +'' while i >= 26 i, char = i.divmod(26) chars.prepend((char + 65).chr) i -= 1 end chars.prepend((i + 65).chr) chars.freeze end end |
.escape_formulas ⇒ Boolean
Whether to treat values starting with an equals sign as formulas or as literal strings. Allowing user-generated data to be interpreted as formulas is a security risk. See https://www.owasp.org/index.php/CSV_Injection for details.
222 223 224 |
# File 'lib/axlsx.rb', line 222 def self.escape_formulas !defined?(@escape_formulas) || @escape_formulas.nil? ? true : @escape_formulas end |
.escape_formulas=(value) ⇒ Object
Sets whether to treat values starting with an equals sign as formulas or as literal strings.
228 229 230 231 |
# File 'lib/axlsx.rb', line 228 def self.escape_formulas=(value) Axlsx.validate_boolean(value) @escape_formulas = value end |
.hash_deep_merge(first_hash, second_hash) ⇒ Object
utility method for performing a deep merge on a Hash
194 195 196 197 198 199 200 201 202 |
# File 'lib/axlsx.rb', line 194 def self.hash_deep_merge(first_hash, second_hash) first_hash.merge(second_hash) do |_key, this_val, other_val| if this_val.is_a?(Hash) && other_val.is_a?(Hash) Axlsx.hash_deep_merge(this_val, other_val) else other_val end end end |
.instance_values_for(object) ⇒ Object
I am a very big fan of activesupports instance_values method, but do not want to require nor include the entire library just for this one method.
Defining as a class method on Axlsx to refrain from monkeypatching Object for all users of this gem.
52 53 54 |
# File 'lib/axlsx.rb', line 52 def self.instance_values_for(object) object.instance_variables.to_h { |name| [name.to_s[1..], object.instance_variable_get(name)] } end |
.name_to_indices(name) ⇒ Object
returns the x, y position of a cell
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/axlsx.rb', line 85 def self.name_to_indices(name) raise ArgumentError, 'invalid cell name' unless name.size > 1 letters_str = name[/[A-Z]+/] # capitalization?!? v = letters_str.reverse.chars.reduce({ base: 1, i: 0 }) do |val, c| val[:i] += ((c.bytes.first - 64) * val[:base]) val[:base] *= 26 next val end col_index = (v[:i] - 1) numbers_str = name[/[1-9][0-9]*/] row_index = (numbers_str.to_i - 1) [col_index, row_index] end |
.range_to_a(range) ⇒ Array
Creates an array of individual cell references based on an Excel reference range.
146 147 148 149 150 151 152 153 154 155 |
# File 'lib/axlsx.rb', line 146 def self.range_to_a(range) range =~ /^(\w+?\d+):(\w+?\d+)$/ start_col, start_row = name_to_indices(::Regexp.last_match(1)) end_col, end_row = name_to_indices(::Regexp.last_match(2)) (start_row..end_row).to_a.map do |row_num| (start_col..end_col).to_a.map do |col_num| cell_r(col_num, row_num) end end end |
.row_ref(index) ⇒ String
The spreadsheet rows are 1-based and the passed in index is 0-based, so we add 1.
converts the row index into string values.
131 132 133 134 |
# File 'lib/axlsx.rb', line 131 def self.row_ref(index) @row_ref ||= {} @row_ref[index] ||= (index + 1).to_s.freeze end |
.sanitize(str) ⇒ String
returns the provided string with all invalid control charaters removed.
170 171 172 173 174 175 176 177 |
# File 'lib/axlsx.rb', line 170 def self.sanitize(str) if str.frozen? str.delete(CONTROL_CHARS) else str.delete!(CONTROL_CHARS) str end end |
.sort_cells(cells) ⇒ Array
sorts the array of cells provided to start from the minimum x,y to the maximum x.y#
74 75 76 |
# File 'lib/axlsx.rb', line 74 def self.sort_cells(cells) cells.sort_by(&:pos) end |
.trust_input ⇒ Object
Instructs the serializer to not try to escape cell value input. This will give you a huge speed bonus, but if you content has <, > or other xml character data the workbook will be invalid and Excel will complain.
207 208 209 |
# File 'lib/axlsx.rb', line 207 def self.trust_input @trust_input ||= false end |
.trust_input=(trust_me) ⇒ Boolean
@param[Boolean] trust_me A boolean value indicating if the cell value content is to be trusted
214 215 216 |
# File 'lib/axlsx.rb', line 214 def self.trust_input=(trust_me) @trust_input = trust_me end |
.validate_angle(v) ⇒ Boolean
Requires that the value is between -54000000 and 54000000
80 81 82 |
# File 'lib/axlsx/util/validators.rb', line 80 def self.validate_angle(v) raise ArgumentError, format(ERR_ANGLE, v.inspect) unless v.to_i >= -5400000 && v.to_i <= 5400000 end |
.validate_boolean(v) ⇒ Object
Requires that the value is a form that can be evaluated as a boolean in an xml document. The value must be an instance of String, Integer, Symbol, TrueClass or FalseClass and it must be one of 0, 1, "true", "false", :true, :false, true, false, "0", or "1"
117 118 119 |
# File 'lib/axlsx/util/validators.rb', line 117 def self.validate_boolean(v) DataTypeValidator.validate(:boolean, VALID_BOOLEAN_CLASSES, v, BOOLEAN_VALIDATOR) end |
.validate_cell_u(v) ⇒ Object
Requires that the value is one of :none, :single, :double, :singleAccounting, :doubleAccounting
163 164 165 |
# File 'lib/axlsx/util/validators.rb', line 163 def self.validate_cell_u(v) RestrictionValidator.validate "cell run style u", VALID_CELL_U_VALUES, v end |
.validate_conditional_formatting_operator(v) ⇒ Object
Requires that the value is valid conditional formatting operator. valid operators must be one of lessThan, lessThanOrEqual, equal, notEqual, greaterThanOrEqual, greaterThan, between, notBetween, containsText, notContains, beginsWith, endsWith
230 231 232 |
# File 'lib/axlsx/util/validators.rb', line 230 def self.validate_conditional_formatting_operator(v) RestrictionValidator.validate :conditional_formatting_type, VALID_CONDITIONAL_FORMATTING_OPERATOR_VALUES, v end |
.validate_conditional_formatting_type(v) ⇒ Object
Requires that the value is valid conditional formatting type. valid types must be one of expression, cellIs, colorScale, dataBar, iconSet, top10, uniqueValues, duplicateValues, containsText, notContainsText, beginsWith, endsWith, containsBlanks, notContainsBlanks, containsErrors, notContainsErrors, timePeriod, aboveAverage
211 212 213 |
# File 'lib/axlsx/util/validators.rb', line 211 def self.validate_conditional_formatting_type(v) RestrictionValidator.validate :conditional_formatting_type, VALID_CONDITIONAL_FORMATTING_TYPE_VALUES, v end |
.validate_conditional_formatting_value_object_type(v) ⇒ Object
Requires thatt he value is a valid conditional formatting value object type. valid types must be one of num, percent, max, min, formula and percentile
219 220 221 |
# File 'lib/axlsx/util/validators.rb', line 219 def self.validate_conditional_formatting_value_object_type(v) RestrictionValidator.validate :conditional_formatting_value_object_type, VALID_CONDITION_FORMATTING_VALUE_OBJECT_TYPE_VALUES, v end |
.validate_content_type(v) ⇒ Object
Requires that the value is a valid content_type TABLE_CT, WORKBOOK_CT, APP_CT, RELS_CT, STYLES_CT, XML_CT, WORKSHEET_CT, SHARED_STRINGS_CT, CORE_CT, CHART_CT, DRAWING_CT, COMMENT_CT are allowed
276 277 278 |
# File 'lib/axlsx/util/validators.rb', line 276 def self.validate_content_type(v) RestrictionValidator.validate :content_type, VALID_CONTENT_TYPE_VALUES, v end |
.validate_data_validation_error_style(v) ⇒ Object
Requires that the value is a valid data_validation_error_style :information, :stop, :warning
303 304 305 |
# File 'lib/axlsx/util/validators.rb', line 303 def self.validate_data_validation_error_style(v) RestrictionValidator.validate :validate_data_validation_error_style, VALID_DATA_VALIDATION_ERROR_STYLE_VALUES, v end |
.validate_data_validation_operator(v) ⇒ Object
Requires that the value is valid data validation operator. valid operators must be one of lessThan, lessThanOrEqual, equal, notEqual, greaterThanOrEqual, greaterThan, between, notBetween
313 314 315 |
# File 'lib/axlsx/util/validators.rb', line 313 def self.validate_data_validation_operator(v) RestrictionValidator.validate :data_validation_operator, VALID_DATA_VALIDATION_OPERATOR_VALUES, v end |
.validate_data_validation_type(v) ⇒ Object
Requires that the value is valid data validation type. valid types must be one of custom, data, decimal, list, none, textLength, time, whole
322 323 324 |
# File 'lib/axlsx/util/validators.rb', line 322 def self.validate_data_validation_type(v) RestrictionValidator.validate :data_validation_type, VALID_DATA_VALIDATION_TYPE_VALUES, v end |
.validate_display_blanks_as(v) ⇒ Object
Requires that the value is a valid "display blanks as" type. valid types must be one of gap, span, zero
358 359 360 |
# File 'lib/axlsx/util/validators.rb', line 358 def self.validate_display_blanks_as(v) RestrictionValidator.validate :display_blanks_as, VALID_DISPLAY_BLANK_AS_VALUES, v end |
.validate_family(v) ⇒ Object
validates cell style family which must be between 1 and 5
170 171 172 |
# File 'lib/axlsx/util/validators.rb', line 170 def self.validate_family(v) RestrictionValidator.validate "cell run style family", VALID_FAMILY_VALUES, v end |
.validate_float(v) ⇒ Object
Requires that the value is a Float
129 130 131 |
# File 'lib/axlsx/util/validators.rb', line 129 def self.validate_float(v) DataTypeValidator.validate :float, Float, v end |
.validate_gradient_type(v) ⇒ Object
Requires that the value is a gradient_type. valid types are :linear and :path
239 240 241 |
# File 'lib/axlsx/util/validators.rb', line 239 def self.validate_gradient_type(v) RestrictionValidator.validate :gradient_type, VALID_GRADIENT_TYPE_VALUES, v end |
.validate_horizontal_alignment(v) ⇒ Object
Requires that the value is a valid horizontal_alignment :general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed are allowed
258 259 260 |
# File 'lib/axlsx/util/validators.rb', line 258 def self.validate_horizontal_alignment(v) RestrictionValidator.validate :horizontal_alignment, VALID_HORIZONTAL_ALIGNMENT_VALUES, v end |
.validate_icon_set(v) ⇒ Object
Requires that the value is one of the valid ST_IconSet types Allowed values are: 3Arrows, 3ArrowsGray, 3Flags, 3TrafficLights1, 3TrafficLights2, 3Signs, 3Symbols, 3Symbols2, 4Arrows, 4ArrowsGray, 4RedToBlack, 4Rating, 4TrafficLights, 5Arrows, 5ArrowsGray, 5Rating, 5Quarters
198 199 200 |
# File 'lib/axlsx/util/validators.rb', line 198 def self.validate_icon_set(v) RestrictionValidator.validate :iconSet, VALID_ICON_SET_VALUES, v end |
.validate_int(v) ⇒ Object
Requires that the value is a Integer
105 106 107 |
# File 'lib/axlsx/util/validators.rb', line 105 def self.validate_int(v) DataTypeValidator.validate :signed_int, Integer, v end |
.validate_integerish(v) ⇒ Object
Requires that the value can be converted to an integer @para, [Any] v the value to validate
72 73 74 |
# File 'lib/axlsx/util/validators.rb', line 72 def self.validate_integerish(v) raise ArgumentError, format(ERR_INTEGERISH, v.inspect) unless v.respond_to?(:to_i) && v.to_i.is_a?(Integer) end |
.validate_marker_symbol(v) ⇒ Object
Requires that the value is one of :default, :circle, :dash, :diamond, :dot, :picture, :plus, :square, :star, :triangle, :x
372 373 374 |
# File 'lib/axlsx/util/validators.rb', line 372 def self.validate_marker_symbol(v) RestrictionValidator.validate :marker_symbol, VALID_MARKER_SYMBOL_VALUES, v end |
.validate_number_with_unit(v) ⇒ Object
Requires that the value is a string containing a positive decimal number followed by one of the following units: "mm", "cm", "in", "pt", "pc", "pi"
135 136 137 |
# File 'lib/axlsx/util/validators.rb', line 135 def self.validate_number_with_unit(v) RegexValidator.validate "number_with_unit", /\A[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)\Z/, v end |
.validate_page_orientation(v) ⇒ Object
Requires that the value is one of :default, :landscape, or :portrait.
156 157 158 |
# File 'lib/axlsx/util/validators.rb', line 156 def self.validate_page_orientation(v) RestrictionValidator.validate "page_orientation", VALID_PAGE_ORIENTATION_VALUES, v end |
.validate_pane_type(v) ⇒ Object
Requires that the value is a valid active pane type. valid types must be one of bottom_left, bottom_right, top_left, top_right
340 341 342 |
# File 'lib/axlsx/util/validators.rb', line 340 def self.validate_pane_type(v) RestrictionValidator.validate :active_pane_type, VALID_PANE_TYPE_VALUES, v end |
.validate_pattern_type(v) ⇒ Object
Requires that the value is valid pattern type. valid pattern types must be one of :none, :solid, :mediumGray, :darkGray, :lightGray, :darkHorizontal, :darkVertical, :darkDown, :darkUp, :darkGrid, :darkTrellis, :lightHorizontal, :lightVertical, :lightDown, :lightUp, :lightGrid, :lightTrellis, :gray125, or :gray0625.
181 182 183 |
# File 'lib/axlsx/util/validators.rb', line 181 def self.validate_pattern_type(v) RestrictionValidator.validate :pattern_type, VALID_PATTERN_TYPE_VALUES, v end |
.validate_relationship_type(v) ⇒ Object
Requires that the value is a valid relationship_type XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R, IMAGE_R, HYPERLINK_R, SHARED_STRINGS_R are allowed
285 286 287 |
# File 'lib/axlsx/util/validators.rb', line 285 def self.validate_relationship_type(v) RestrictionValidator.validate :relationship_type, VALID_RELATIONSHIP_TYPE_VALUES, v end |
.validate_scale_0_10_400(v) ⇒ Object
Requires that the value is an integer ranging from 10 to 400 or 0.
149 150 151 |
# File 'lib/axlsx/util/validators.rb', line 149 def self.validate_scale_0_10_400(v) DataTypeValidator.validate "page_scale", Integer, v, SCALE_0_10_400_VALIDATOR end |
.validate_scale_10_400(v) ⇒ Object
Requires that the value is an integer ranging from 10 to 400.
142 143 144 |
# File 'lib/axlsx/util/validators.rb', line 142 def self.validate_scale_10_400(v) DataTypeValidator.validate "page_scale", Integer, v, SCALE_10_400_VALIDATOR end |
.validate_scatter_style(v) ⇒ Object
Requires that the value is a valid scatterStyle must be one of :none | :line | :lineMarker | :marker | :smooth | :smoothMarker must be one of "none" | "line" | "lineMarker" | "marker" | "smooth" | "smoothMarker"
249 250 251 |
# File 'lib/axlsx/util/validators.rb', line 249 def self.validate_scatter_style(v) Axlsx::RestrictionValidator.validate "ScatterChart.scatterStyle", VALID_SCATTER_STYLE_VALUES, v.to_sym end |
.validate_sheet_view_type(v) ⇒ Object
Requires that the value is a valid sheet view type. valid types must be one of normal, page_break_preview, page_layout
331 332 333 |
# File 'lib/axlsx/util/validators.rb', line 331 def self.validate_sheet_view_type(v) RestrictionValidator.validate :sheet_view_type, VALID_SHEET_VIEW_TYPE_VALUES, v end |
.validate_split_state_type(v) ⇒ Object
Requires that the value is a valid split state type. valid types must be one of frozen, frozen_split, split
349 350 351 |
# File 'lib/axlsx/util/validators.rb', line 349 def self.validate_split_state_type(v) RestrictionValidator.validate :split_state_type, VALID_SPLIT_STATE_TYPE_VALUES, v end |
.validate_string(v) ⇒ Object
Requires that the value is a String
123 124 125 |
# File 'lib/axlsx/util/validators.rb', line 123 def self.validate_string(v) DataTypeValidator.validate :string, String, v end |
.validate_table_element_type(v) ⇒ Object
Requires that the value is a valid table element type :wholeTable, :headerRow, :totalRow, :firstColumn, :lastColumn, :firstRowStripe, :secondRowStripe, :firstColumnStripe, :secondColumnStripe, :firstHeaderCell, :lastHeaderCell, :firstTotalCell, :lastTotalCell, :firstSubtotalColumn, :secondSubtotalColumn, :thirdSubtotalColumn, :firstSubtotalRow, :secondSubtotalRow, :thirdSubtotalRow, :blankRow, :firstColumnSubheading, :secondColumnSubheading, :thirdColumnSubheading, :firstRowSubheading, :secondRowSubheading, :thirdRowSubheading, :pageFieldLabels, :pageFieldValues are allowed
294 295 296 |
# File 'lib/axlsx/util/validators.rb', line 294 def self.validate_table_element_type(v) RestrictionValidator.validate :table_element_type, VALID_TABLE_ELEMENT_TYPE_VALUES, v end |
.validate_time_period_type(v) ⇒ Object
Requires that the value is one of the ST_TimePeriod types valid time period types are today, yesterday, tomorrow, last7Days, thisMonth, lastMonth, nextMonth, thisWeek, lastWeek, nextWeek
190 191 192 |
# File 'lib/axlsx/util/validators.rb', line 190 def self.validate_time_period_type(v) RestrictionValidator.validate :time_period_type, VALID_TIME_PERIOD_TYPE_VALUES, v end |
.validate_unsigned_int(v) ⇒ Boolean
Requires that the value is a Integer and is greater or equal to 0
91 92 93 |
# File 'lib/axlsx/util/validators.rb', line 91 def self.validate_unsigned_int(v) DataTypeValidator.validate(:unsigned_int, Integer, v, UINT_VALIDATOR) end |
.validate_unsigned_numeric(v) ⇒ Boolean
Requires that the value is a Integer or Float and is greater or equal to 0
99 100 101 |
# File 'lib/axlsx/util/validators.rb', line 99 def self.validate_unsigned_numeric(v) DataTypeValidator.validate(:unsigned_numeric, Numeric, v, UINT_VALIDATOR) end |
.validate_vertical_alignment(v) ⇒ Object
Requires that the value is a valid vertical_alignment :top, :center, :bottom, :justify, :distributed are allowed
267 268 269 |
# File 'lib/axlsx/util/validators.rb', line 267 def self.validate_vertical_alignment(v) RestrictionValidator.validate :vertical_alignment, VALID_VERTICAL_ALIGNMENT_VALUES, v end |
.validate_view_visibility(v) ⇒ Object
Requires that the value is one of :visible, :hidden, :very_hidden
365 366 367 |
# File 'lib/axlsx/util/validators.rb', line 365 def self.validate_view_visibility(v) RestrictionValidator.validate :visibility, VALID_VIEW_VISIBILITY_VALUES, v end |