rubyXL 3.4.12 → 3.4.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +2 -1
- data/Gemfile +8 -8
- data/Gemfile.lock +82 -50
- data/README.rdoc +26 -9
- data/Rakefile +26 -27
- data/VERSION +1 -1
- data/lib/rubyXL/cell.rb +2 -4
- data/lib/rubyXL/convenience_methods/cell.rb +35 -31
- data/lib/rubyXL/convenience_methods/color.rb +6 -8
- data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
- data/lib/rubyXL/convenience_methods/worksheet.rb +77 -1
- data/lib/rubyXL/objects/border.rb +0 -3
- data/lib/rubyXL/objects/calculation_chain.rb +2 -2
- data/lib/rubyXL/objects/cell_style.rb +1 -3
- data/lib/rubyXL/objects/chartsheet.rb +6 -10
- data/lib/rubyXL/objects/color.rb +1 -3
- data/lib/rubyXL/objects/column_range.rb +0 -3
- data/lib/rubyXL/objects/comments.rb +1 -4
- data/lib/rubyXL/objects/connection.rb +11 -11
- data/lib/rubyXL/objects/container_nodes.rb +1 -5
- data/lib/rubyXL/objects/content_types.rb +3 -6
- data/lib/rubyXL/objects/data_validation.rb +2 -2
- data/lib/rubyXL/objects/document_properties.rb +9 -13
- data/lib/rubyXL/objects/extensions.rb +0 -2
- data/lib/rubyXL/objects/external_links.rb +29 -7
- data/lib/rubyXL/objects/fill.rb +2 -5
- data/lib/rubyXL/objects/filters.rb +5 -7
- data/lib/rubyXL/objects/font.rb +2 -4
- data/lib/rubyXL/objects/formula.rb +3 -5
- data/lib/rubyXL/objects/ooxml_object.rb +18 -18
- data/lib/rubyXL/objects/query_table.rb +3 -3
- data/lib/rubyXL/objects/reference.rb +6 -8
- data/lib/rubyXL/objects/relationships.rb +6 -11
- data/lib/rubyXL/objects/root.rb +0 -2
- data/lib/rubyXL/objects/shared_strings.rb +3 -6
- data/lib/rubyXL/objects/sheet_common.rb +1 -3
- data/lib/rubyXL/objects/sheet_data.rb +6 -8
- data/lib/rubyXL/objects/simple_types.rb +3 -1
- data/lib/rubyXL/objects/storage.rb +51 -50
- data/lib/rubyXL/objects/stylesheet.rb +8 -15
- data/lib/rubyXL/objects/text.rb +5 -7
- data/lib/rubyXL/objects/theme.rb +5 -8
- data/lib/rubyXL/objects/workbook.rb +35 -31
- data/lib/rubyXL/objects/worksheet.rb +33 -29
- data/lib/rubyXL/parser.rb +1 -3
- data/lib/rubyXL/worksheet.rb +83 -84
- data/lib/rubyXL.rb +0 -1
- data/rdoc/README_rdoc.html +42 -28
- data/rdoc/RubyXL/AExtension.html +9 -49
- data/rdoc/RubyXL/AExtensionStorageArea.html +5 -12
- data/rdoc/RubyXL/ActiveX.html +12 -41
- data/rdoc/RubyXL/ActiveXBinary.html +5 -17
- data/rdoc/RubyXL/AdjustHandleList.html +5 -12
- data/rdoc/RubyXL/Alignment.html +5 -12
- data/rdoc/RubyXL/AlternateContent.html +5 -12
- data/rdoc/RubyXL/Authors.html +5 -12
- data/rdoc/RubyXL/AutoFilter.html +5 -12
- data/rdoc/RubyXL/AutoFilterColumn.html +5 -12
- data/rdoc/RubyXL/BinaryImageFile.html +5 -20
- data/rdoc/RubyXL/BodyProperties.html +5 -12
- data/rdoc/RubyXL/BooleanNode.html +5 -12
- data/rdoc/RubyXL/BooleanValue.html +5 -12
- data/rdoc/RubyXL/Border.html +12 -72
- data/rdoc/RubyXL/BorderEdge.html +10 -44
- data/rdoc/RubyXL/Borders.html +9 -30
- data/rdoc/RubyXL/Break.html +5 -12
- data/rdoc/RubyXL/BreakList.html +5 -12
- data/rdoc/RubyXL/CT_AdjPoint2D.html +5 -12
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +5 -12
- data/rdoc/RubyXL/CT_Backdrop.html +5 -12
- data/rdoc/RubyXL/CT_Bevel.html +5 -12
- data/rdoc/RubyXL/CT_BiLevelEffect.html +5 -12
- data/rdoc/RubyXL/CT_BlendEffect.html +5 -12
- data/rdoc/RubyXL/CT_Blip.html +5 -12
- data/rdoc/RubyXL/CT_BlipFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_BlurEffect.html +5 -12
- data/rdoc/RubyXL/CT_Camera.html +5 -12
- data/rdoc/RubyXL/CT_Color.html +5 -12
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +5 -12
- data/rdoc/RubyXL/CT_ColorMapping.html +5 -12
- data/rdoc/RubyXL/CT_ColorScheme.html +5 -12
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +5 -12
- data/rdoc/RubyXL/CT_ConnectionSite.html +5 -12
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +5 -12
- data/rdoc/RubyXL/CT_DashStop.html +5 -12
- data/rdoc/RubyXL/CT_DashStopList.html +5 -12
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +5 -12
- data/rdoc/RubyXL/CT_DuotoneEffect.html +5 -12
- data/rdoc/RubyXL/CT_EffectContainer.html +5 -12
- data/rdoc/RubyXL/CT_EffectList.html +5 -12
- data/rdoc/RubyXL/CT_EffectReference.html +5 -12
- data/rdoc/RubyXL/CT_EffectStyleItem.html +5 -12
- data/rdoc/RubyXL/CT_EffectStyleList.html +5 -12
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +5 -12
- data/rdoc/RubyXL/CT_FillEffect.html +5 -12
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +5 -12
- data/rdoc/RubyXL/CT_FillStyleList.html +5 -12
- data/rdoc/RubyXL/CT_FlatText.html +5 -12
- data/rdoc/RubyXL/CT_FontCollection.html +5 -12
- data/rdoc/RubyXL/CT_FontReference.html +5 -12
- data/rdoc/RubyXL/CT_GeomGuideList.html +5 -12
- data/rdoc/RubyXL/CT_GlowEffect.html +5 -12
- data/rdoc/RubyXL/CT_GradientFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_GradientStop.html +5 -12
- data/rdoc/RubyXL/CT_GradientStopList.html +5 -12
- data/rdoc/RubyXL/CT_HSLEffect.html +5 -12
- data/rdoc/RubyXL/CT_HslColor.html +5 -12
- data/rdoc/RubyXL/CT_Hyperlink.html +5 -12
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_LightRig.html +5 -12
- data/rdoc/RubyXL/CT_LineEndProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineStyleList.html +5 -12
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +5 -12
- data/rdoc/RubyXL/CT_LuminanceEffect.html +5 -12
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +5 -12
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_Path2D.html +5 -12
- data/rdoc/RubyXL/CT_Path2DArcTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DList.html +5 -12
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DTo.html +5 -12
- data/rdoc/RubyXL/CT_PathShadeProperties.html +5 -12
- data/rdoc/RubyXL/CT_PatternFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_Point3D.html +5 -12
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +5 -12
- data/rdoc/RubyXL/CT_PresetColor.html +5 -12
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +5 -12
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_PresetTextShape.html +5 -12
- data/rdoc/RubyXL/CT_ReflectionEffect.html +5 -12
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +5 -12
- data/rdoc/RubyXL/CT_RelativeRect.html +5 -12
- data/rdoc/RubyXL/CT_SRgbColor.html +5 -12
- data/rdoc/RubyXL/CT_ScRgbColor.html +5 -12
- data/rdoc/RubyXL/CT_Scene3D.html +5 -12
- data/rdoc/RubyXL/CT_SchemeColor.html +5 -12
- data/rdoc/RubyXL/CT_Shape3D.html +5 -12
- data/rdoc/RubyXL/CT_ShapeStyle.html +5 -12
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +5 -12
- data/rdoc/RubyXL/CT_SphereCoords.html +5 -12
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +5 -12
- data/rdoc/RubyXL/CT_StyleMatrix.html +5 -12
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +5 -12
- data/rdoc/RubyXL/CT_SupplementalFont.html +5 -12
- data/rdoc/RubyXL/CT_SystemColor.html +5 -12
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextBlipBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextCharBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +5 -12
- data/rdoc/RubyXL/CT_TextFont.html +5 -12
- data/rdoc/RubyXL/CT_TextListStyle.html +5 -12
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +5 -12
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +5 -12
- data/rdoc/RubyXL/CT_TextSpacing.html +5 -12
- data/rdoc/RubyXL/CT_TextTabStop.html +5 -12
- data/rdoc/RubyXL/CT_TextTabStopList.html +5 -12
- data/rdoc/RubyXL/CT_TileInfoProperties.html +5 -12
- data/rdoc/RubyXL/CT_TintEffect.html +5 -12
- data/rdoc/RubyXL/CT_Transform2D.html +5 -12
- data/rdoc/RubyXL/CT_TransformEffect.html +5 -12
- data/rdoc/RubyXL/CT_Vector3D.html +5 -12
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +5 -12
- data/rdoc/RubyXL/CalculationChain.html +8 -37
- data/rdoc/RubyXL/CalculationChainCell.html +5 -12
- data/rdoc/RubyXL/CalculationProperties.html +5 -12
- data/rdoc/RubyXL/Cell.html +26 -228
- data/rdoc/RubyXL/CellConvenienceMethods.html +108 -503
- data/rdoc/RubyXL/CellExt.html +5 -12
- data/rdoc/RubyXL/CellSmartTag.html +5 -12
- data/rdoc/RubyXL/CellSmartTagProperty.html +5 -12
- data/rdoc/RubyXL/CellSmartTags.html +5 -12
- data/rdoc/RubyXL/CellStyle.html +5 -12
- data/rdoc/RubyXL/CellStyleXFs.html +9 -30
- data/rdoc/RubyXL/CellStyles.html +9 -30
- data/rdoc/RubyXL/CellValue.html +9 -30
- data/rdoc/RubyXL/CellWatch.html +5 -12
- data/rdoc/RubyXL/CellWatches.html +5 -12
- data/rdoc/RubyXL/CellXFs.html +10 -33
- data/rdoc/RubyXL/ChartColorsFile.html +5 -20
- data/rdoc/RubyXL/ChartFile.html +11 -43
- data/rdoc/RubyXL/ChartStyleFile.html +5 -20
- data/rdoc/RubyXL/ChartUserShapesFile.html +5 -20
- data/rdoc/RubyXL/Chartsheet.html +11 -60
- data/rdoc/RubyXL/ChartsheetPageSetup.html +5 -12
- data/rdoc/RubyXL/ChartsheetProperties.html +5 -12
- data/rdoc/RubyXL/ChartsheetProtection.html +5 -12
- data/rdoc/RubyXL/ChartsheetView.html +5 -12
- data/rdoc/RubyXL/ChartsheetViews.html +5 -12
- data/rdoc/RubyXL/Color.html +10 -36
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +10 -58
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +18 -78
- data/rdoc/RubyXL/ColorConvenienceClasses.html +3 -9
- data/rdoc/RubyXL/ColorConvenienceMethods.html +7 -27
- data/rdoc/RubyXL/ColorFilter.html +5 -12
- data/rdoc/RubyXL/ColorScale.html +5 -12
- data/rdoc/RubyXL/ColorSet.html +5 -12
- data/rdoc/RubyXL/Colors.html +5 -12
- data/rdoc/RubyXL/ColumnRange.html +11 -63
- data/rdoc/RubyXL/ColumnRanges.html +12 -72
- data/rdoc/RubyXL/Comment.html +5 -12
- data/rdoc/RubyXL/CommentList.html +5 -12
- data/rdoc/RubyXL/CommentsFile.html +9 -43
- data/rdoc/RubyXL/ConditionalFormatValue.html +5 -12
- data/rdoc/RubyXL/ConditionalFormatting.html +5 -12
- data/rdoc/RubyXL/ConditionalFormattingRule.html +5 -12
- data/rdoc/RubyXL/Connection.html +5 -12
- data/rdoc/RubyXL/ConnectionTable.html +5 -12
- data/rdoc/RubyXL/ConnectionTables.html +5 -12
- data/rdoc/RubyXL/ConnectionTextField.html +5 -12
- data/rdoc/RubyXL/ConnectionTextFields.html +5 -12
- data/rdoc/RubyXL/Connections.html +8 -37
- data/rdoc/RubyXL/ContentTypeDefault.html +5 -12
- data/rdoc/RubyXL/ContentTypeOverride.html +5 -12
- data/rdoc/RubyXL/ContentTypes.html +12 -54
- data/rdoc/RubyXL/ControlPropertiesFile.html +7 -17
- data/rdoc/RubyXL/CorePropertiesFile.html +17 -155
- data/rdoc/RubyXL/CustomColor.html +5 -12
- data/rdoc/RubyXL/CustomColorList.html +5 -12
- data/rdoc/RubyXL/CustomFilter.html +5 -12
- data/rdoc/RubyXL/CustomFilters.html +5 -12
- data/rdoc/RubyXL/CustomGeometry.html +5 -12
- data/rdoc/RubyXL/CustomProperties.html +5 -12
- data/rdoc/RubyXL/CustomPropertiesFile.html +5 -20
- data/rdoc/RubyXL/CustomProperty.html +5 -12
- data/rdoc/RubyXL/CustomPropertyFile.html +5 -20
- data/rdoc/RubyXL/CustomSheetView.html +5 -12
- data/rdoc/RubyXL/CustomSheetViews.html +5 -12
- data/rdoc/RubyXL/CustomWorkbookView.html +5 -12
- data/rdoc/RubyXL/CustomWorkbookViews.html +5 -12
- data/rdoc/RubyXL/CustomXMLFile.html +5 -17
- data/rdoc/RubyXL/DXF.html +5 -12
- data/rdoc/RubyXL/DXFs.html +5 -12
- data/rdoc/RubyXL/DataBar.html +5 -12
- data/rdoc/RubyXL/DataConsolidate.html +5 -12
- data/rdoc/RubyXL/DataConsolidationReference.html +5 -12
- data/rdoc/RubyXL/DataConsolidationReferences.html +5 -12
- data/rdoc/RubyXL/DataType.html +3 -32
- data/rdoc/RubyXL/DataValidation.html +5 -12
- data/rdoc/RubyXL/DataValidations.html +5 -12
- data/rdoc/RubyXL/DateGroupItem.html +5 -12
- data/rdoc/RubyXL/DefinedName.html +5 -12
- data/rdoc/RubyXL/DefinedNameExt.html +5 -12
- data/rdoc/RubyXL/DefinedNames.html +5 -12
- data/rdoc/RubyXL/DefinedNamesExt.html +5 -12
- data/rdoc/RubyXL/DocumentPropertiesFile.html +10 -57
- data/rdoc/RubyXL/DrawingFile.html +11 -43
- data/rdoc/RubyXL/DynamicFilter.html +5 -12
- data/rdoc/RubyXL/EmbeddedControl.html +5 -12
- data/rdoc/RubyXL/EmbeddedControls.html +5 -12
- data/rdoc/RubyXL/Extension.html +5 -12
- data/rdoc/RubyXL/ExtensionStorageArea.html +5 -12
- data/rdoc/RubyXL/Extents.html +5 -12
- data/rdoc/RubyXL/ExternalBook.html +5 -12
- data/rdoc/RubyXL/ExternalLinksFile.html +11 -43
- data/rdoc/RubyXL/ExternalReference.html +5 -12
- data/rdoc/RubyXL/ExternalReferences.html +5 -12
- data/rdoc/RubyXL/ExtraColorSchemeList.html +5 -12
- data/rdoc/RubyXL/FieldItem.html +5 -12
- data/rdoc/RubyXL/FileRecoveryProperties.html +5 -12
- data/rdoc/RubyXL/FileSharing.html +5 -12
- data/rdoc/RubyXL/FileVersion.html +5 -12
- data/rdoc/RubyXL/Fill.html +9 -30
- data/rdoc/RubyXL/Fills.html +9 -30
- data/rdoc/RubyXL/FilterContainer.html +5 -12
- data/rdoc/RubyXL/FloatNode.html +5 -12
- data/rdoc/RubyXL/FloatValue.html +5 -12
- data/rdoc/RubyXL/Font.html +11 -37
- data/rdoc/RubyXL/FontConvenienceMethods.html +7 -196
- data/rdoc/RubyXL/FontScheme.html +5 -12
- data/rdoc/RubyXL/Fonts.html +9 -30
- data/rdoc/RubyXL/Formula.html +5 -12
- data/rdoc/RubyXL/FunctionGroup.html +5 -12
- data/rdoc/RubyXL/FunctionGroups.html +5 -12
- data/rdoc/RubyXL/GenericStorageObject.html +12 -76
- data/rdoc/RubyXL/GradientFill.html +5 -12
- data/rdoc/RubyXL/HeaderFooterSettings.html +5 -12
- data/rdoc/RubyXL/Hyperlink.html +5 -12
- data/rdoc/RubyXL/HyperlinkRelFile.html +5 -17
- data/rdoc/RubyXL/Hyperlinks.html +5 -12
- data/rdoc/RubyXL/IconFilter.html +5 -12
- data/rdoc/RubyXL/IconSet.html +5 -12
- data/rdoc/RubyXL/IgnoredError.html +5 -12
- data/rdoc/RubyXL/IgnoredErrors.html +5 -12
- data/rdoc/RubyXL/IndexedColors.html +5 -12
- data/rdoc/RubyXL/InputCells.html +5 -12
- data/rdoc/RubyXL/IntegerNode.html +5 -12
- data/rdoc/RubyXL/IntegerValue.html +5 -12
- data/rdoc/RubyXL/LegacyCell.html +7 -27
- data/rdoc/RubyXL/LegacyWorksheet.html +11 -88
- data/rdoc/RubyXL/MRUColors.html +5 -12
- data/rdoc/RubyXL/MacrosFile.html +5 -20
- data/rdoc/RubyXL/MergedCell.html +5 -12
- data/rdoc/RubyXL/MergedCells.html +5 -12
- data/rdoc/RubyXL/NumFmt.html +5 -12
- data/rdoc/RubyXL/NumberFormat.html +10 -31
- data/rdoc/RubyXL/NumberFormats.html +9 -35
- data/rdoc/RubyXL/OLEObject.html +5 -12
- data/rdoc/RubyXL/OLEObjectFile.html +5 -20
- data/rdoc/RubyXL/OLEObjects.html +5 -12
- data/rdoc/RubyXL/OLESize.html +5 -12
- data/rdoc/RubyXL/OOXMLContainerObject.html +19 -114
- data/rdoc/RubyXL/OOXMLIgnored.html +11 -46
- data/rdoc/RubyXL/OOXMLObject.html +8 -18
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +42 -92
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +23 -144
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +24 -181
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +15 -102
- data/rdoc/RubyXL/OdbcOleDbProperties.html +5 -12
- data/rdoc/RubyXL/Offset.html +5 -12
- data/rdoc/RubyXL/OlapProperties.html +5 -12
- data/rdoc/RubyXL/OleItem.html +99 -0
- data/rdoc/RubyXL/OleItems.html +99 -0
- data/rdoc/RubyXL/OleLink.html +99 -0
- data/rdoc/RubyXL/OutlineProperties.html +5 -12
- data/rdoc/RubyXL/PageMargins.html +5 -12
- data/rdoc/RubyXL/PageSetup.html +5 -12
- data/rdoc/RubyXL/PageSetupProperties.html +5 -12
- data/rdoc/RubyXL/Pane.html +5 -12
- data/rdoc/RubyXL/Parser.html +11 -45
- data/rdoc/RubyXL/PatternFill.html +5 -12
- data/rdoc/RubyXL/PhoneticProperties.html +5 -12
- data/rdoc/RubyXL/PhoneticRun.html +5 -12
- data/rdoc/RubyXL/PivotArea.html +5 -12
- data/rdoc/RubyXL/PivotCache.html +5 -12
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +7 -25
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +5 -20
- data/rdoc/RubyXL/PivotCaches.html +5 -12
- data/rdoc/RubyXL/PivotReference.html +5 -12
- data/rdoc/RubyXL/PivotReferences.html +5 -12
- data/rdoc/RubyXL/PivotTableFile.html +7 -25
- data/rdoc/RubyXL/PivotTableSelection.html +5 -12
- data/rdoc/RubyXL/PresetGeometry.html +5 -12
- data/rdoc/RubyXL/PrintOptions.html +5 -12
- data/rdoc/RubyXL/PrinterSettingsFile.html +5 -20
- data/rdoc/RubyXL/ProtectedRange.html +5 -12
- data/rdoc/RubyXL/ProtectedRanges.html +5 -12
- data/rdoc/RubyXL/Protection.html +5 -12
- data/rdoc/RubyXL/QueryParameter.html +5 -12
- data/rdoc/RubyXL/QueryParameters.html +5 -12
- data/rdoc/RubyXL/QueryTable.html +10 -42
- data/rdoc/RubyXL/QueryTableDeletedField.html +5 -12
- data/rdoc/RubyXL/QueryTableDeletedFields.html +5 -12
- data/rdoc/RubyXL/QueryTableField.html +5 -12
- data/rdoc/RubyXL/QueryTableFields.html +5 -12
- data/rdoc/RubyXL/QueryTableRefresh.html +5 -12
- data/rdoc/RubyXL/RID.html +5 -12
- data/rdoc/RubyXL/RawOOXML.html +11 -51
- data/rdoc/RubyXL/Reference.html +42 -204
- data/rdoc/RubyXL/Relationship.html +5 -12
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +7 -27
- data/rdoc/RubyXL/RelationshipSupport.html +15 -112
- data/rdoc/RubyXL/RevisionPointer.html +5 -12
- data/rdoc/RubyXL/RichText.html +11 -31
- data/rdoc/RubyXL/RichTextRun.html +9 -30
- data/rdoc/RubyXL/Row.html +8 -143
- data/rdoc/RubyXL/RowExt.html +5 -12
- data/rdoc/RubyXL/RunProperties.html +5 -12
- data/rdoc/RubyXL/Scenario.html +5 -12
- data/rdoc/RubyXL/Scenarios.html +5 -12
- data/rdoc/RubyXL/Selection.html +9 -30
- data/rdoc/RubyXL/ShapeGuide.html +5 -12
- data/rdoc/RubyXL/ShapeTextRectangle.html +5 -12
- data/rdoc/RubyXL/SharedStringsTable.html +16 -126
- data/rdoc/RubyXL/Sheet.html +5 -12
- data/rdoc/RubyXL/SheetCalculationProperties.html +5 -12
- data/rdoc/RubyXL/SheetData.html +8 -42
- data/rdoc/RubyXL/SheetDataExt.html +5 -12
- data/rdoc/RubyXL/SheetDataSet.html +5 -12
- data/rdoc/RubyXL/SheetMetadata.html +108 -0
- data/rdoc/RubyXL/SheetName.html +5 -12
- data/rdoc/RubyXL/SheetNames.html +5 -12
- data/rdoc/RubyXL/Sheets.html +5 -12
- data/rdoc/RubyXL/SlicerCacheFile.html +5 -20
- data/rdoc/RubyXL/SlicerFile.html +5 -20
- data/rdoc/RubyXL/SmartTagProperties.html +5 -12
- data/rdoc/RubyXL/SmartTagType.html +5 -12
- data/rdoc/RubyXL/SmartTagTypes.html +5 -12
- data/rdoc/RubyXL/SmartTags.html +5 -12
- data/rdoc/RubyXL/SortCondition.html +5 -12
- data/rdoc/RubyXL/SortState.html +5 -12
- data/rdoc/RubyXL/Sqref.html +11 -46
- data/rdoc/RubyXL/Stop.html +5 -12
- data/rdoc/RubyXL/StringNode.html +5 -12
- data/rdoc/RubyXL/StringNodeW3C.html +11 -46
- data/rdoc/RubyXL/StringValue.html +5 -12
- data/rdoc/RubyXL/Stylesheet.html +14 -97
- data/rdoc/RubyXL/TableFile.html +5 -20
- data/rdoc/RubyXL/TableParts.html +5 -12
- data/rdoc/RubyXL/TableStyle.html +5 -12
- data/rdoc/RubyXL/TableStyles.html +5 -12
- data/rdoc/RubyXL/Text.html +12 -54
- data/rdoc/RubyXL/TextImportSettings.html +5 -12
- data/rdoc/RubyXL/Theme.html +12 -68
- data/rdoc/RubyXL/ThemeElements.html +5 -12
- data/rdoc/RubyXL/ThumbnailFile.html +5 -20
- data/rdoc/RubyXL/Top10.html +5 -12
- data/rdoc/RubyXL/VMLDrawingFile.html +8 -26
- data/rdoc/RubyXL/Variant.html +5 -12
- data/rdoc/RubyXL/Vector.html +9 -30
- data/rdoc/RubyXL/VectorValue.html +5 -12
- data/rdoc/RubyXL/VisualProperties.html +5 -12
- data/rdoc/RubyXL/WebPublishObject.html +5 -12
- data/rdoc/RubyXL/WebPublishObjects.html +5 -12
- data/rdoc/RubyXL/WebPublishingItem.html +5 -12
- data/rdoc/RubyXL/WebPublishingItems.html +5 -12
- data/rdoc/RubyXL/WebPublishingProperties.html +5 -12
- data/rdoc/RubyXL/WebQueryProperties.html +5 -12
- data/rdoc/RubyXL/Workbook.html +45 -462
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +68 -239
- data/rdoc/RubyXL/WorkbookProperties.html +5 -12
- data/rdoc/RubyXL/WorkbookProtection.html +5 -12
- data/rdoc/RubyXL/WorkbookRoot.html +16 -104
- data/rdoc/RubyXL/WorkbookView.html +5 -12
- data/rdoc/RubyXL/WorkbookViews.html +5 -12
- data/rdoc/RubyXL/Worksheet.html +40 -135
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +170 -989
- data/rdoc/RubyXL/WorksheetDimensions.html +5 -12
- data/rdoc/RubyXL/WorksheetFormatProperties.html +5 -12
- data/rdoc/RubyXL/WorksheetProperties.html +5 -12
- data/rdoc/RubyXL/WorksheetProtection.html +5 -12
- data/rdoc/RubyXL/WorksheetView.html +5 -12
- data/rdoc/RubyXL/WorksheetViews.html +5 -12
- data/rdoc/RubyXL/XF.html +5 -12
- data/rdoc/RubyXL.html +8 -319
- data/rdoc/created.rid +44 -44
- data/rdoc/css/rdoc.css +21 -1
- data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/rdoc/index.html +9 -388
- data/rdoc/js/navigation.js.gz +0 -0
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/js/search_index.js.gz +0 -0
- data/rdoc/js/searcher.js.gz +0 -0
- data/rdoc/table_of_contents.html +57 -5
- data/rubyXL.gemspec +24 -30
- data/spec/lib/cell_spec.rb +38 -6
- data/spec/lib/color_spec.rb +1 -1
- data/spec/lib/parser_spec.rb +24 -27
- data/spec/lib/reference_spec.rb +9 -3
- data/spec/lib/rgb_color_spec.rb +27 -0
- data/spec/lib/stylesheet_spec.rb +8 -11
- data/spec/lib/text_spec.rb +1 -5
- data/spec/lib/workbook_spec.rb +14 -4
- data/spec/lib/worksheet_spec.rb +790 -447
- data/spec/spec_helper.rb +2 -0
- data/test/test_parse_write.rb +3 -3
- metadata +11 -8
- data/test/output/test.xlsx +0 -0
@@ -3,7 +3,6 @@ require 'rubyXL/objects/simple_types'
|
|
3
3
|
require 'rubyXL/objects/extensions'
|
4
4
|
|
5
5
|
module RubyXL
|
6
|
-
|
7
6
|
# http://www.datypic.com/sc/ooxml/e-ssml_dateGroupItem-1.html
|
8
7
|
class DateGroupItem < OOXMLObject
|
9
8
|
define_attribute(:year, :int, :required => true)
|
@@ -18,7 +17,7 @@ module RubyXL
|
|
18
17
|
|
19
18
|
# http://www.datypic.com/sc/ooxml/e-ssml_filters-1.html
|
20
19
|
class FilterContainer < OOXMLObject
|
21
|
-
define_attribute(:blank, :bool,
|
20
|
+
define_attribute(:blank, :bool, :default => false)
|
22
21
|
define_attribute(:calendarType, RubyXL::ST_CalendarType, :default => 'none')
|
23
22
|
define_child_node(RubyXL::StringValue, :collection => true, :accessor => :filters, :node_name => :filter)
|
24
23
|
define_child_node(RubyXL::DateGroupItem, :collection => true, :accessor => :date_group_items)
|
@@ -43,7 +42,7 @@ module RubyXL
|
|
43
42
|
|
44
43
|
# http://www.datypic.com/sc/ooxml/e-ssml_customFilters-1.html
|
45
44
|
class CustomFilters < OOXMLContainerObject
|
46
|
-
define_attribute(:and, :bool,
|
45
|
+
define_attribute(:and, :bool, :default => false)
|
47
46
|
define_child_node(RubyXL::CustomFilter, :collection => true)
|
48
47
|
define_element_name 'customFilters'
|
49
48
|
end
|
@@ -87,9 +86,9 @@ module RubyXL
|
|
87
86
|
|
88
87
|
# http://www.datypic.com/sc/ooxml/e-ssml_sortCondition-1.html
|
89
88
|
class SortCondition < OOXMLObject
|
90
|
-
define_attribute(:descending, :bool,
|
89
|
+
define_attribute(:descending, :bool, :default => false)
|
91
90
|
define_attribute(:sortBy, RubyXL::ST_SortBy, :default => 'value')
|
92
|
-
define_attribute(:ref, :ref,
|
91
|
+
define_attribute(:ref, :ref, :required => true)
|
93
92
|
define_attribute(:customList, :string)
|
94
93
|
define_attribute(:dxfId, :int)
|
95
94
|
define_attribute(:iconSet, RubyXL::ST_IconSetType, :required => true, :default => '3Arrows')
|
@@ -116,5 +115,4 @@ module RubyXL
|
|
116
115
|
define_child_node(RubyXL::ExtensionStorageArea)
|
117
116
|
define_element_name 'autoFilter'
|
118
117
|
end
|
119
|
-
|
120
|
-
end
|
118
|
+
end
|
data/lib/rubyXL/objects/font.rb
CHANGED
@@ -3,7 +3,6 @@ require 'rubyXL/objects/container_nodes'
|
|
3
3
|
require 'rubyXL/objects/color'
|
4
4
|
|
5
5
|
module RubyXL
|
6
|
-
|
7
6
|
# http://www.datypic.com/sc/ooxml/e-ssml_font-1.html
|
8
7
|
class Font < OOXMLObject
|
9
8
|
# Since we have no capability to load the actual fonts, we'll have to live with the default.
|
@@ -21,14 +20,14 @@ module RubyXL
|
|
21
20
|
define_child_node(RubyXL::BooleanValue, :node_name => :extend)
|
22
21
|
define_child_node(RubyXL::Color)
|
23
22
|
define_child_node(RubyXL::FloatValue, :node_name => :sz)
|
24
|
-
define_child_node(RubyXL::
|
23
|
+
define_child_node(RubyXL::StringValue, :node_name => :u) # ST_UnderlineValues (http://www.datypic.com/sc/ooxml/e-ssml_u-1.html)
|
25
24
|
define_child_node(RubyXL::StringValue, :node_name => :vertAlign)
|
26
25
|
define_child_node(RubyXL::StringValue, :node_name => :scheme)
|
27
26
|
define_element_name 'font'
|
28
27
|
|
29
28
|
def self.default(size = 10)
|
30
29
|
self.new(:name => RubyXL::StringValue.new(:val => 'Verdana'),
|
31
|
-
:sz => RubyXL::FloatValue.new(:val => size)
|
30
|
+
:sz => RubyXL::FloatValue.new(:val => size))
|
32
31
|
end
|
33
32
|
end
|
34
33
|
|
@@ -41,5 +40,4 @@ module RubyXL
|
|
41
40
|
self.new(:_ => [ RubyXL::Font.default(10), RubyXL::Font.default(8) ])
|
42
41
|
end
|
43
42
|
end
|
44
|
-
|
45
43
|
end
|
@@ -2,12 +2,11 @@ require 'rubyXL/objects/ooxml_object'
|
|
2
2
|
require 'rubyXL/objects/simple_types'
|
3
3
|
|
4
4
|
module RubyXL
|
5
|
-
|
6
5
|
# http://www.datypic.com/sc/ooxml/e-ssml_f-1.html
|
7
6
|
class Formula < OOXMLObject
|
8
7
|
define_attribute(:_, :string, :accessor => :expression)
|
9
8
|
define_attribute(:t, RubyXL::ST_CellFormulaType, :default => 'normal')
|
10
|
-
define_attribute(:aca, :bool,
|
9
|
+
define_attribute(:aca, :bool, :default => false)
|
11
10
|
define_attribute(:ref, :ref)
|
12
11
|
define_attribute(:dt2D, :bool, :default => false)
|
13
12
|
define_attribute(:dtr, :bool, :default => false)
|
@@ -15,10 +14,9 @@ module RubyXL
|
|
15
14
|
define_attribute(:del2, :bool, :default => false)
|
16
15
|
define_attribute(:r1, :ref)
|
17
16
|
define_attribute(:r2, :ref)
|
18
|
-
define_attribute(:ca, :bool,
|
17
|
+
define_attribute(:ca, :bool, :default => false)
|
19
18
|
define_attribute(:si, :int)
|
20
|
-
define_attribute(:bx, :bool,
|
19
|
+
define_attribute(:bx, :bool, :default => false)
|
21
20
|
define_element_name 'f'
|
22
21
|
end
|
23
|
-
|
24
22
|
end
|
@@ -12,10 +12,10 @@ module RubyXL
|
|
12
12
|
# addressing variable by name creates it in the context of defining class, while calling
|
13
13
|
# the setter/getter method addresses it in the context of descendant class,
|
14
14
|
# which is what we need.
|
15
|
-
def obtain_class_variable(var_name, default =
|
15
|
+
def obtain_class_variable(var_name, default = nil)
|
16
16
|
self.class_variable_get(var_name)
|
17
17
|
rescue NameError
|
18
|
-
self.class_variable_set(var_name, default)
|
18
|
+
self.class_variable_set(var_name, default || {})
|
19
19
|
end
|
20
20
|
|
21
21
|
# Defines an attribute of OOXML object.
|
@@ -45,14 +45,20 @@ module RubyXL
|
|
45
45
|
# The value of the element will be accessible as a <tt>String</tt> by calling +obj.expression+
|
46
46
|
# define_attribute(:errorStyle, %w{ stop warning information }, :default => 'stop',)
|
47
47
|
# A <tt>String</tt> attribute named 'errorStyle' will be accessible as +obj.error_style+, valid values are <tt>"stop"</tt>, <tt>"warning"</tt>, <tt>"information"</tt>
|
48
|
-
def define_attribute(attr_name, attr_type, extra_params =
|
48
|
+
def define_attribute(attr_name, attr_type, extra_params = nil)
|
49
49
|
attrs = obtain_class_variable(:@@ooxml_attributes)
|
50
|
-
attr_hash =
|
50
|
+
attr_hash = { :attr_type => attr_type }
|
51
|
+
attr_hash.merge!(extra_params) if extra_params
|
51
52
|
attr_hash[:accessor] ||= accessorize(attr_name)
|
52
53
|
attrs[attr_name.to_s] = attr_hash
|
53
54
|
self.send(:attr_accessor, attr_hash[:accessor]) unless attr_hash[:computed]
|
54
55
|
end
|
55
56
|
|
57
|
+
# Defines a `r:id` attribute
|
58
|
+
def define_relationship(extra_params = {})
|
59
|
+
define_attribute(:'r:id', :string, extra_params)
|
60
|
+
end
|
61
|
+
|
56
62
|
# Defines a child node of OOXML object.
|
57
63
|
# === Parameters
|
58
64
|
# * +klass+ - Class (descendant of RubyXL::OOXMLObject) of the child nodes. Child node objects will be produced by calling +parse+ method of that class.
|
@@ -79,7 +85,7 @@ module RubyXL
|
|
79
85
|
accessor = (extra_params[:accessor] || accessorize(child_node_name)).to_sym
|
80
86
|
|
81
87
|
child_nodes[child_node_name] = {
|
82
|
-
:class
|
88
|
+
:class => klass,
|
83
89
|
:is_array => extra_params[:collection],
|
84
90
|
:accessor => accessor
|
85
91
|
}
|
@@ -142,7 +148,6 @@ module RubyXL
|
|
142
148
|
known_namespaces ||= obtain_class_variable(:@@ooxml_namespaces)
|
143
149
|
|
144
150
|
node.element_children.each { |child_node|
|
145
|
-
|
146
151
|
ns = child_node.namespace
|
147
152
|
prefix = if known_namespaces.has_key?(ns.href) then known_namespaces[ns.href]
|
148
153
|
else ns.prefix
|
@@ -180,21 +185,21 @@ module RubyXL
|
|
180
185
|
private
|
181
186
|
def accessorize(str)
|
182
187
|
acc = str.to_s.dup
|
183
|
-
acc.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
|
184
|
-
acc.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
185
|
-
acc.gsub!(':','_')
|
188
|
+
acc.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
|
189
|
+
acc.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
|
190
|
+
acc.gsub!(':', '_')
|
186
191
|
acc.downcase.to_sym
|
187
192
|
end
|
188
193
|
|
189
194
|
def process_attribute(obj, raw_value, params)
|
190
195
|
val = raw_value &&
|
191
196
|
case params[:attr_type]
|
192
|
-
when :double then Float(raw_value)
|
197
|
+
when :double then Float(raw_value) # http://www.datypic.com/sc/xsd/t-xsd_double.html
|
193
198
|
when :string then raw_value
|
194
199
|
when Array then raw_value # Case of Simple Types
|
195
200
|
when :sqref then RubyXL::Sqref.new(raw_value)
|
196
201
|
when :ref then RubyXL::Reference.new(raw_value)
|
197
|
-
when :bool then ['1', 'true'].include?(raw_value)
|
202
|
+
when :bool then ['1', 'true'].include?(raw_value) # http://www.datypic.com/sc/xsd/t-xsd_boolean.html
|
198
203
|
when :int then Integer(raw_value)
|
199
204
|
when :uint then
|
200
205
|
v = Integer(raw_value)
|
@@ -203,7 +208,6 @@ module RubyXL
|
|
203
208
|
end
|
204
209
|
obj.send("#{params[:accessor]}=", val)
|
205
210
|
end
|
206
|
-
|
207
211
|
end
|
208
212
|
|
209
213
|
|
@@ -219,8 +223,9 @@ module RubyXL
|
|
219
223
|
end
|
220
224
|
private :obtain_class_variable
|
221
225
|
|
222
|
-
def initialize(params =
|
226
|
+
def initialize(params = nil)
|
223
227
|
@local_namespaces = nil
|
228
|
+
params ||= {}
|
224
229
|
|
225
230
|
obtain_class_variable(:@@ooxml_attributes).each_value { |v|
|
226
231
|
instance_variable_set("@#{v[:accessor]}", params[v[:accessor]]) unless v[:computed]
|
@@ -231,7 +236,6 @@ module RubyXL
|
|
231
236
|
|
232
237
|
def init_child_nodes(params)
|
233
238
|
obtain_class_variable(:@@ooxml_child_nodes).each_value { |v|
|
234
|
-
|
235
239
|
initial_value =
|
236
240
|
if params.has_key?(v[:accessor]) then params[v[:accessor]]
|
237
241
|
elsif v[:is_array] then []
|
@@ -356,7 +360,6 @@ module RubyXL
|
|
356
360
|
}
|
357
361
|
true
|
358
362
|
end
|
359
|
-
|
360
363
|
end
|
361
364
|
|
362
365
|
# Parent class for defining OOXML based objects (not unlike Rails' +ActiveRecord+!)
|
@@ -410,7 +413,6 @@ module RubyXL
|
|
410
413
|
end
|
411
414
|
protected :define_count_attribute
|
412
415
|
end
|
413
|
-
|
414
416
|
end
|
415
417
|
|
416
418
|
# Extension class providing functionality for top-level OOXML objects that are represented by
|
@@ -461,7 +463,5 @@ module RubyXL
|
|
461
463
|
def file_index
|
462
464
|
root.rels_hash[self.class].index{ |f| f.equal?(self) }.to_i + 1
|
463
465
|
end
|
464
|
-
|
465
466
|
end
|
466
|
-
|
467
467
|
end
|
@@ -62,8 +62,8 @@ module RubyXL
|
|
62
62
|
|
63
63
|
# http://www.datypic.com/sc/ooxml/e-ssml_queryTable.html
|
64
64
|
class QueryTable < OOXMLTopLevelObject
|
65
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'
|
66
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable'
|
65
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'.freeze
|
66
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable'.freeze
|
67
67
|
|
68
68
|
include RubyXL::RelationshipSupport
|
69
69
|
|
@@ -94,7 +94,7 @@ module RubyXL
|
|
94
94
|
define_child_node(RubyXL::ExtensionStorageArea)
|
95
95
|
|
96
96
|
define_element_name 'queryTable'
|
97
|
-
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main'
|
97
|
+
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
|
98
98
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
|
99
99
|
|
100
100
|
def xlsx_path
|
@@ -29,6 +29,10 @@ module RubyXL
|
|
29
29
|
(@row_range.begin == @row_range.end) && (@col_range.begin == @col_range.end)
|
30
30
|
end
|
31
31
|
|
32
|
+
def valid?
|
33
|
+
!(row_range.begin.negative? || col_range.begin.negative?)
|
34
|
+
end
|
35
|
+
|
32
36
|
def first_row
|
33
37
|
@row_range.begin
|
34
38
|
end
|
@@ -71,7 +75,7 @@ module RubyXL
|
|
71
75
|
end
|
72
76
|
|
73
77
|
# Converts +row+ and +col+ zero-based indices to Excel-style cell reference
|
74
|
-
#
|
78
|
+
# <0> A...Z, AA...AZ, BA... ...ZZ, AAA... ...AZZ, BAA... ...XFD <16383>
|
75
79
|
def self.ind2ref(row = 0, col = 0)
|
76
80
|
str = ''
|
77
81
|
|
@@ -88,16 +92,11 @@ module RubyXL
|
|
88
92
|
# Converts Excel-style cell reference to +row+ and +col+ zero-based indices.
|
89
93
|
def self.ref2ind(str)
|
90
94
|
return [ -1, -1 ] unless str =~ /\A([A-Z]+)(\d+)\Z/
|
91
|
-
|
92
|
-
col = 0
|
93
|
-
$1.each_byte { |chr| col = col * 26 + (chr - 64) }
|
94
|
-
[ $2.to_i - 1, col - 1 ]
|
95
|
+
[ Regexp.last_match(2).to_i - 1, Regexp.last_match(1).each_byte.inject(0) { |col, chr| col * 26 + (chr - 64) } - 1 ]
|
95
96
|
end
|
96
|
-
|
97
97
|
end
|
98
98
|
|
99
99
|
class Sqref < Array
|
100
|
-
|
101
100
|
def initialize(str)
|
102
101
|
str.split.each { |ref_str| self << RubyXL::Reference.new(ref_str) }
|
103
102
|
end
|
@@ -105,6 +104,5 @@ module RubyXL
|
|
105
104
|
def to_s
|
106
105
|
self.collect{ |ref| ref.to_s }.join(' ')
|
107
106
|
end
|
108
|
-
|
109
107
|
end
|
110
108
|
end
|
@@ -2,9 +2,8 @@ require 'pathname'
|
|
2
2
|
require 'rubyXL/objects/ooxml_object'
|
3
3
|
|
4
4
|
module RubyXL
|
5
|
-
|
6
5
|
class RID < OOXMLObject
|
7
|
-
|
6
|
+
define_relationship(:required => true)
|
8
7
|
end
|
9
8
|
|
10
9
|
class Relationship < OOXMLObject
|
@@ -16,7 +15,7 @@ module RubyXL
|
|
16
15
|
end
|
17
16
|
|
18
17
|
class OOXMLRelationshipsFile < OOXMLTopLevelObject
|
19
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-package.relationships+xml'
|
18
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-package.relationships+xml'.freeze
|
20
19
|
SAVE_ORDER = 100
|
21
20
|
|
22
21
|
define_child_node(RubyXL::Relationship, :collection => true, :accessor => :relationships)
|
@@ -28,8 +27,8 @@ module RubyXL
|
|
28
27
|
@@debug_indent = ($DEBUG ? 0 : nil)
|
29
28
|
|
30
29
|
def new_relationship(target, type)
|
31
|
-
RubyXL::Relationship.new(:id
|
32
|
-
:type
|
30
|
+
RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
|
31
|
+
:type => type,
|
33
32
|
:target => target)
|
34
33
|
end
|
35
34
|
protected :new_relationship
|
@@ -37,8 +36,8 @@ module RubyXL
|
|
37
36
|
def add_relationship(obj)
|
38
37
|
return if obj.nil? || !defined?(obj.class::REL_TYPE) || (obj.respond_to?(:empty?) && obj.empty?)
|
39
38
|
|
40
|
-
relationships << RubyXL::Relationship.new(:id
|
41
|
-
:type
|
39
|
+
relationships << RubyXL::Relationship.new(:id => "rId#{relationships.size + 1}",
|
40
|
+
:type => obj.class::REL_TYPE,
|
42
41
|
:target => obj.xlsx_path.relative_path_from(owner.xlsx_path.dirname))
|
43
42
|
end
|
44
43
|
protected :add_relationship
|
@@ -131,12 +130,10 @@ module RubyXL
|
|
131
130
|
basename = base_file_path.root? ? '' : base_file_path.basename
|
132
131
|
base_file_path.dirname.join('_rels', "#{basename}.rels").cleanpath
|
133
132
|
end
|
134
|
-
|
135
133
|
end
|
136
134
|
|
137
135
|
# +RelationshipSupport+ module enables automatic loading and saving of _rels for the respective file
|
138
136
|
module RelationshipSupport
|
139
|
-
|
140
137
|
module ClassMehods
|
141
138
|
def define_relationship(klass, accessor = nil)
|
142
139
|
class_variable_get(:@@ooxml_relationships)[klass] = accessor
|
@@ -212,7 +209,5 @@ module RubyXL
|
|
212
209
|
end
|
213
210
|
self.generic_storage << related_file
|
214
211
|
end
|
215
|
-
|
216
212
|
end
|
217
|
-
|
218
213
|
end
|
data/lib/rubyXL/objects/root.rb
CHANGED
@@ -3,15 +3,14 @@ require 'rubyXL/objects/text'
|
|
3
3
|
require 'rubyXL/objects/extensions'
|
4
4
|
|
5
5
|
module RubyXL
|
6
|
-
|
7
6
|
# http://www.datypic.com/sc/ooxml/e-ssml_sst.html
|
8
7
|
class SharedStringsTable < OOXMLTopLevelObject
|
9
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'
|
10
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings'
|
8
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml'.freeze
|
9
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings'.freeze
|
11
10
|
|
12
11
|
# According to http://msdn.microsoft.com/en-us/library/office/gg278314.aspx,
|
13
12
|
# +count+ and +uniqueCount+ may be either both missing, or both present. Need to validate.
|
14
|
-
define_attribute(:uniqueCount,
|
13
|
+
define_attribute(:uniqueCount, :int)
|
15
14
|
define_child_node(RubyXL::RichText, :collection => :with_count, :node_name => 'si', :accessor => :strings)
|
16
15
|
define_child_node(RubyXL::ExtensionStorageArea)
|
17
16
|
define_element_name 'sst'
|
@@ -64,7 +63,5 @@ module RubyXL
|
|
64
63
|
def xlsx_path
|
65
64
|
ROOT.join('xl', 'sharedStrings.xml')
|
66
65
|
end
|
67
|
-
|
68
66
|
end
|
69
|
-
|
70
67
|
end
|
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
|
|
2
2
|
require 'rubyXL/objects/storage'
|
3
3
|
|
4
4
|
module RubyXL
|
5
|
-
|
6
5
|
# http://www.datypic.com/sc/ooxml/e-ssml_webPublishItem-1.html
|
7
6
|
class WebPublishingItem < OOXMLObject
|
8
7
|
define_attribute(:id, :int, :required => true)
|
@@ -12,7 +11,7 @@ module RubyXL
|
|
12
11
|
define_attribute(:sourceObject, :string)
|
13
12
|
define_attribute(:destinationFile, :string, :required => true)
|
14
13
|
define_attribute(:title, :string)
|
15
|
-
define_attribute(:autoRepublish, :bool,
|
14
|
+
define_attribute(:autoRepublish, :bool, :default => false)
|
16
15
|
define_element_name 'webPublishItem'
|
17
16
|
end
|
18
17
|
|
@@ -47,5 +46,4 @@ module RubyXL
|
|
47
46
|
define_child_node(RubyXL::StringNode, :node_name => :firstFooter)
|
48
47
|
define_element_name 'headerFooter'
|
49
48
|
end
|
50
|
-
|
51
49
|
end
|
@@ -5,7 +5,6 @@ require 'rubyXL/objects/formula'
|
|
5
5
|
require 'rubyXL/cell'
|
6
6
|
|
7
7
|
module RubyXL
|
8
|
-
|
9
8
|
# http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cellvalues(v=office.14).aspx
|
10
9
|
module DataType
|
11
10
|
SHARED_STRING = 's'
|
@@ -14,7 +13,7 @@ module RubyXL
|
|
14
13
|
ERROR = 'e'
|
15
14
|
BOOLEAN = 'b'
|
16
15
|
NUMBER = 'n'
|
17
|
-
DATE = 'd'
|
16
|
+
DATE = 'd' # Only available in Office2010.
|
18
17
|
end
|
19
18
|
|
20
19
|
# http://www.datypic.com/sc/ooxml/e-ssml_v-1.html
|
@@ -35,13 +34,13 @@ module RubyXL
|
|
35
34
|
|
36
35
|
define_attribute(:r, :ref)
|
37
36
|
define_attribute(:s, :int, :default => 0, :accessor => :style_index)
|
38
|
-
define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n'
|
37
|
+
define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n')
|
39
38
|
define_attribute(:cm, :int, :default => 0)
|
40
39
|
define_attribute(:vm, :int, :default => 0)
|
41
40
|
define_attribute(:ph, :bool, :default => false)
|
42
41
|
define_child_node(RubyXL::Formula, :accessor => :formula)
|
43
42
|
define_child_node(RubyXL::CellValue, :accessor => :value_container)
|
44
|
-
define_child_node(RubyXL::RichText)
|
43
|
+
define_child_node(RubyXL::RichText) # is
|
45
44
|
define_element_name 'c'
|
46
45
|
|
47
46
|
attr_accessor :worksheet
|
@@ -113,9 +112,10 @@ module RubyXL
|
|
113
112
|
when RubyXL::DataType::INLINE_STRING then is.to_s
|
114
113
|
when RubyXL::DataType::RAW_STRING then raw_value
|
115
114
|
else
|
116
|
-
if
|
115
|
+
if is then is.to_s
|
116
|
+
elsif is_date? then workbook.num_to_date(r.to_f)
|
117
117
|
elsif r.is_a?(String) && (r =~ NUMBER_REGEXP) then # Numeric
|
118
|
-
if
|
118
|
+
if Regexp.last_match(1) != '' then r.to_f
|
119
119
|
else r.to_i
|
120
120
|
end
|
121
121
|
else r
|
@@ -215,7 +215,5 @@ module RubyXL
|
|
215
215
|
def size
|
216
216
|
rows.size
|
217
217
|
end
|
218
|
-
|
219
218
|
end
|
220
|
-
|
221
219
|
end
|
@@ -140,7 +140,7 @@ module RubyXL
|
|
140
140
|
ST_TextHorzOverflowType = %w{ overflow clip }
|
141
141
|
ST_TextVerticalType = %w{ horz vert vert270 wordArtVert eaVert mongolianVert wordArtVertRtl }
|
142
142
|
ST_TextWrappingType = %w{ none square }
|
143
|
-
ST_TextAnchoringType
|
143
|
+
ST_TextAnchoringType = %w{ t ctr b just dist }
|
144
144
|
ST_TextShapeType = %w{ textNoShape textPlain textStop textTriangle textTriangleInverted textChevron
|
145
145
|
textChevronInverted textRingInside textRingOutside textArchUp textArchDown
|
146
146
|
textCircle textButton textArchUpPour textArchDownPour textCirclePour textButtonPour
|
@@ -223,6 +223,8 @@ module RubyXL
|
|
223
223
|
|
224
224
|
ST_TextUnderlineType = %w{ none words sng dbl heavy dotted dottedHeavy dash dashHeavy dashLong dashLongHeavy
|
225
225
|
dotDash dotDashHeavy dotDotDash dotDotDashHeavy wavy wavyHeavy wavyDbl }
|
226
|
+
ST_UnderlineValues = %w{ single double singleAccounting doubleAccounting none }
|
227
|
+
|
226
228
|
ST_TextStrikeType = %w{ noStrike sngStrike dblStrike }
|
227
229
|
ST_TextCapsType = %w{ none small all }
|
228
230
|
|