Module: Axlsx

Defined in:
lib/axlsx/package.rb,
lib/axlsx.rb,
lib/axlsx/version.rb,
lib/axlsx/drawing/axis.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/marker.rb,
lib/axlsx/drawing/series.rb,
lib/axlsx/util/constants.rb,
lib/axlsx/drawing/drawing.rb,
lib/axlsx/drawing/scaling.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/ser_axis.rb,
lib/axlsx/drawing/val_axis.rb,
lib/axlsx/stylesheet/color.rb,
lib/axlsx/rels/relationship.rb,
lib/axlsx/stylesheet/border.rb,
lib/axlsx/stylesheet/styles.rb,
lib/axlsx/workbook/workbook.rb,
lib/axlsx/drawing/bar_series.rb,
lib/axlsx/drawing/pie_series.rb,
lib/axlsx/rels/relationships.rb,
lib/axlsx/stylesheet/num_fmt.rb,
lib/axlsx/drawing/line_series.rb,
lib/axlsx/content_type/default.rb,
lib/axlsx/drawing/bar_3D_chart.rb,
lib/axlsx/drawing/pie_3D_chart.rb,
lib/axlsx/drawing/series_title.rb,
lib/axlsx/stylesheet/border_pr.rb,
lib/axlsx/content_type/override.rb,
lib/axlsx/drawing/cat_axis_data.rb,
lib/axlsx/drawing/graphic_frame.rb,
lib/axlsx/drawing/line_3D_chart.rb,
lib/axlsx/drawing/val_axis_data.rb,
lib/axlsx/stylesheet/cell_style.rb,
lib/axlsx/stylesheet/table_style.rb,
lib/axlsx/util/simple_typed_list.rb,
lib/axlsx/workbook/worksheet/row.rb,
lib/axlsx/drawing/two_cell_anchor.rb,
lib/axlsx/stylesheet/pattern_fill.rb,
lib/axlsx/stylesheet/table_styles.rb,
lib/axlsx/workbook/worksheet/cell.rb,
lib/axlsx/stylesheet/gradient_fill.rb,
lib/axlsx/stylesheet/gradient_stop.rb,
lib/axlsx/content_type/content_type.rb,
lib/axlsx/stylesheet/cell_alignment.rb,
lib/axlsx/stylesheet/cell_protection.rb,
lib/axlsx/workbook/worksheet/worksheet.rb,
lib/axlsx/stylesheet/table_style_element.rb

Overview

Create Office Open XML Spreadsheets (xlsx) with safe and full control over cell styles, automatically resized column widths and 3D pie charts.

Defined Under Namespace

Classes: App, Axis, Bar3DChart, BarSeries, Border, BorderPr, CatAxis, CatAxisData, Cell, CellAlignment, CellProtection, CellStyle, Chart, Color, ContentType, Core, DataTypeValidator, Default, Drawing, Fill, Font, GradientFill, GradientStop, GraphicFrame, Line3DChart, LineSeries, Marker, NumFmt, Override, Package, PatternFill, Pie3DChart, PieSeries, RegexValidator, Relationship, Relationships, RestrictionValidator, Row, Scaling, SerAxis, Series, SeriesTitle, SimpleTypedList, Styles, TableStyle, TableStyleElement, TableStyles, Title, TwoCellAnchor, ValAxis, ValAxisData, View3D, Workbook, Worksheet, Xf

Constant Summary collapse

VERSION =

version

"1.0.7"
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"
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"
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/officeDocument/2006/relationships/metadata/core-properties"
STYLES_R =

styles rels namespace

"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles"
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"
TABLE_CT =

table content type

"application/vnd.openxmlformats-officedocument.spreadsheetml.table+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"
CHART_CT =

chart content type

"application/vnd.openxmlformats-officedocument.drawingml.chart+xml"
DRAWING_CT =

drawing content type

"application/vnd.openxmlformats-officedocument.drawing+xml"
XML_EX =

xml content type extensions

"xml"
RELS_EX =

rels content type extension

"rels"
WORKBOOK_PN =

workbook part

"xl/workbook.xml"
STYLES_PN =

styles part

"styles.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"
CHART_PN =

chart part

"charts/chart%d.xml"
APP_XSD =

App validation schema

"lib/schema/shared-documentPropertiesExtended.xsd"
CORE_XSD =

core validation schema

"lib/schema/opc-coreProperties.xsd"
CONTENT_TYPES_XSD =

content types validation schema

"lib/schema/opc-contentTypes.xsd"
RELS_XSD =

rels validation schema

"lib/schema/opc-relationships.xsd"
SML_XSD =

spreadsheetML validation schema

"lib/schema/sml.xsd"
DRAWING_XSD =

drawing validation schema

"lib/schema/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
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."

Class Method Summary collapse

Class Method Details

.cell_range(items) ⇒ Object

determines the cell range for the items provided



31
32
33
34
35
# File 'lib/axlsx.rb', line 31

def self.cell_range(items)
  return "" unless items.first.is_a? Cell          
  "#{items.first.row.worksheet.name}!" +
    "#{items.first.r_abs}:#{items.last.r_abs}"
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 Fixnum, String, Integer, Symbol, TrueClass or FalseClass and it must be one of 0, 1, “true”, “false”, :true, :false, true, false, “0”, or “1”

Parameters:

  • v (Any)

    The value validated



65
66
67
# File 'lib/axlsx/util/validators.rb', line 65

def self.validate_boolean(v)
  DataTypeValidator.validate(:boolean, [Fixnum, String, Integer, Symbol, TrueClass, FalseClass], v, lambda { |v| [0, 1, "true", "false", :true, :false, true, false, "0", "1"].include?(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 are allowed

Parameters:

  • v (Any)

    The value validated



114
115
116
# File 'lib/axlsx/util/validators.rb', line 114

def self.validate_content_type(v)
  RestrictionValidator.validate :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], v
end

.validate_float(v) ⇒ Object

Requires that the value is a Float

Parameters:

  • v (Any)

    The value validated



77
78
79
# File 'lib/axlsx/util/validators.rb', line 77

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

Parameters:

  • v (Any)

    The value validated



93
94
95
# File 'lib/axlsx/util/validators.rb', line 93

def self.validate_gradient_type(v)
  RestrictionValidator.validate :gradient_type, [:linear, :path], 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

Parameters:

  • v (Any)

    The value validated



100
101
102
# File 'lib/axlsx/util/validators.rb', line 100

def self.validate_horizontal_alignment(v)
  RestrictionValidator.validate :horizontal_alignment, [:general, :left, :center, :right, :fill, :justify, :centerContinuous, :distributed], v
end

.validate_int(v) ⇒ Object

Requires that the value is a Fixnum or Integer

Parameters:

  • v (Any)

    The value validated



57
58
59
# File 'lib/axlsx/util/validators.rb', line 57

def self.validate_int(v)
  DataTypeValidator.validate :unsigned_int, [Fixnum, Integer], 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.

Parameters:

  • v (Any)

    The value validated



85
86
87
88
# File 'lib/axlsx/util/validators.rb', line 85

def self.validate_pattern_type(v)
  RestrictionValidator.validate :pattern_type, [:none, :solid, :mediumGray, :darkGray, :lightGray, :darkHorizontal, :darkVertical, :darkDown, :darkUp, :darkGrid,
     :darkTrellis, :lightHorizontal, :lightVertical, :lightDown, :lightUp, :lightGrid, :lightTrellis, :gray125, :gray0625], 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 are allowed

Parameters:

  • v (Any)

    The value validated



121
122
123
# File 'lib/axlsx/util/validators.rb', line 121

def self.validate_relationship_type(v)
  RestrictionValidator.validate :relationship_type, [XML_NS_R, TABLE_R, WORKBOOK_R, WORKSHEET_R, APP_R, RELS_R, CORE_R, STYLES_R, CHART_R, DRAWING_R], v
end

.validate_string(v) ⇒ Object

Requires that the value is a String

Parameters:

  • v (Any)

    The value validated



71
72
73
# File 'lib/axlsx/util/validators.rb', line 71

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

Parameters:

  • v (Any)

    The value validated



128
129
130
# File 'lib/axlsx/util/validators.rb', line 128

def self.validate_table_element_type(v)
  RestrictionValidator.validate :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], v
end

.validate_unsigned_int(v) ⇒ Boolean

Requires that the value is a Fixnum or Integer and is greater or equal to 0

Parameters:

  • v (Any)

    The value validated

Returns:

  • (Boolean)

    true if the data is valid

Raises:

  • (ArgumentError)

    raised if the value is not a Fixnum or Integer value greater or equal to 0



51
52
53
# File 'lib/axlsx/util/validators.rb', line 51

def self.validate_unsigned_int(v)
  DataTypeValidator.validate(:unsigned_int, [Fixnum, Integer], v, lambda { |v| v.respond_to?(:>=) && v >= 0 })
end

.validate_vertical_alignment(v) ⇒ Object

Requires that the value is a valid vertical_alignment :top, :center, :bottom, :justify, :distributed are allowed

Parameters:

  • v (Any)

    The value validated



107
108
109
# File 'lib/axlsx/util/validators.rb', line 107

def self.validate_vertical_alignment(v)
  RestrictionValidator.validate :vertical_alignment, [:top, :center, :bottom, :justify, :distributed], v
end