rubyXL 3.4.5 → 3.4.18
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 +3 -3
- data/Gemfile.lock +76 -51
- data/LICENSE.txt +1 -1
- data/README.rdoc +10 -2
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/rubyXL/convenience_methods/cell.rb +11 -1
- data/lib/rubyXL/convenience_methods/color.rb +5 -3
- data/lib/rubyXL/convenience_methods/worksheet.rb +77 -0
- data/lib/rubyXL/objects/chartsheet.rb +1 -1
- data/lib/rubyXL/objects/data_validation.rb +2 -0
- data/lib/rubyXL/objects/document_properties.rb +2 -2
- data/lib/rubyXL/objects/external_links.rb +25 -1
- data/lib/rubyXL/objects/ooxml_object.rb +13 -1
- data/lib/rubyXL/objects/relationships.rb +1 -1
- data/lib/rubyXL/objects/sheet_data.rb +11 -4
- data/lib/rubyXL/objects/storage.rb +1 -0
- data/lib/rubyXL/objects/text.rb +1 -1
- data/lib/rubyXL/objects/theme.rb +1 -1
- data/lib/rubyXL/objects/workbook.rb +24 -10
- data/lib/rubyXL/objects/worksheet.rb +7 -7
- data/lib/rubyXL/worksheet.rb +2 -0
- data/rdoc/README_rdoc.html +22 -10
- data/rdoc/RubyXL/AExtension.html +14 -51
- data/rdoc/RubyXL/AExtensionStorageArea.html +10 -14
- data/rdoc/RubyXL/ActiveX.html +16 -42
- data/rdoc/RubyXL/ActiveXBinary.html +10 -19
- data/rdoc/RubyXL/AdjustHandleList.html +10 -14
- data/rdoc/RubyXL/Alignment.html +10 -14
- data/rdoc/RubyXL/AlternateContent.html +10 -14
- data/rdoc/RubyXL/Authors.html +10 -14
- data/rdoc/RubyXL/AutoFilter.html +10 -14
- data/rdoc/RubyXL/AutoFilterColumn.html +10 -14
- data/rdoc/RubyXL/BinaryImageFile.html +10 -22
- data/rdoc/RubyXL/BodyProperties.html +10 -14
- data/rdoc/RubyXL/BooleanNode.html +10 -14
- data/rdoc/RubyXL/BooleanValue.html +10 -14
- data/rdoc/RubyXL/Border.html +13 -70
- data/rdoc/RubyXL/BorderEdge.html +13 -44
- data/rdoc/RubyXL/Borders.html +13 -31
- data/rdoc/RubyXL/Break.html +10 -14
- data/rdoc/RubyXL/BreakList.html +10 -14
- data/rdoc/RubyXL/CT_AdjPoint2D.html +10 -14
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +10 -14
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +10 -14
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +10 -14
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +10 -14
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +10 -14
- data/rdoc/RubyXL/CT_Backdrop.html +10 -14
- data/rdoc/RubyXL/CT_Bevel.html +10 -14
- data/rdoc/RubyXL/CT_BiLevelEffect.html +10 -14
- data/rdoc/RubyXL/CT_BlendEffect.html +10 -14
- data/rdoc/RubyXL/CT_Blip.html +10 -14
- data/rdoc/RubyXL/CT_BlipFillProperties.html +10 -14
- data/rdoc/RubyXL/CT_BlurEffect.html +10 -14
- data/rdoc/RubyXL/CT_Camera.html +10 -14
- data/rdoc/RubyXL/CT_Color.html +10 -14
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +10 -14
- data/rdoc/RubyXL/CT_ColorMapping.html +10 -14
- data/rdoc/RubyXL/CT_ColorScheme.html +10 -14
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +10 -14
- data/rdoc/RubyXL/CT_ConnectionSite.html +10 -14
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +10 -14
- data/rdoc/RubyXL/CT_DashStop.html +10 -14
- data/rdoc/RubyXL/CT_DashStopList.html +10 -14
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +10 -14
- data/rdoc/RubyXL/CT_DuotoneEffect.html +10 -14
- data/rdoc/RubyXL/CT_EffectContainer.html +10 -14
- data/rdoc/RubyXL/CT_EffectList.html +10 -14
- data/rdoc/RubyXL/CT_EffectReference.html +10 -14
- data/rdoc/RubyXL/CT_EffectStyleItem.html +10 -14
- data/rdoc/RubyXL/CT_EffectStyleList.html +10 -14
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +10 -14
- data/rdoc/RubyXL/CT_FillEffect.html +10 -14
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +10 -14
- data/rdoc/RubyXL/CT_FillStyleList.html +10 -14
- data/rdoc/RubyXL/CT_FlatText.html +10 -14
- data/rdoc/RubyXL/CT_FontCollection.html +10 -14
- data/rdoc/RubyXL/CT_FontReference.html +10 -14
- data/rdoc/RubyXL/CT_GeomGuideList.html +10 -14
- data/rdoc/RubyXL/CT_GlowEffect.html +10 -14
- data/rdoc/RubyXL/CT_GradientFillProperties.html +10 -14
- data/rdoc/RubyXL/CT_GradientStop.html +10 -14
- data/rdoc/RubyXL/CT_GradientStopList.html +10 -14
- data/rdoc/RubyXL/CT_HSLEffect.html +10 -14
- data/rdoc/RubyXL/CT_HslColor.html +10 -14
- data/rdoc/RubyXL/CT_Hyperlink.html +10 -14
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +10 -14
- data/rdoc/RubyXL/CT_LightRig.html +10 -14
- data/rdoc/RubyXL/CT_LineEndProperties.html +10 -14
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +10 -14
- data/rdoc/RubyXL/CT_LineProperties.html +10 -14
- data/rdoc/RubyXL/CT_LineStyleList.html +10 -14
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +10 -14
- data/rdoc/RubyXL/CT_LuminanceEffect.html +10 -14
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +10 -14
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +10 -14
- data/rdoc/RubyXL/CT_Path2D.html +10 -14
- data/rdoc/RubyXL/CT_Path2DArcTo.html +10 -14
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +10 -14
- data/rdoc/RubyXL/CT_Path2DList.html +10 -14
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +10 -14
- data/rdoc/RubyXL/CT_Path2DTo.html +10 -14
- data/rdoc/RubyXL/CT_PathShadeProperties.html +10 -14
- data/rdoc/RubyXL/CT_PatternFillProperties.html +10 -14
- data/rdoc/RubyXL/CT_Point3D.html +10 -14
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +10 -14
- data/rdoc/RubyXL/CT_PresetColor.html +10 -14
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +10 -14
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +10 -14
- data/rdoc/RubyXL/CT_PresetTextShape.html +10 -14
- data/rdoc/RubyXL/CT_ReflectionEffect.html +10 -14
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +10 -14
- data/rdoc/RubyXL/CT_RelativeRect.html +10 -14
- data/rdoc/RubyXL/CT_SRgbColor.html +10 -14
- data/rdoc/RubyXL/CT_ScRgbColor.html +10 -14
- data/rdoc/RubyXL/CT_Scene3D.html +10 -14
- data/rdoc/RubyXL/CT_SchemeColor.html +10 -14
- data/rdoc/RubyXL/CT_Shape3D.html +10 -14
- data/rdoc/RubyXL/CT_ShapeStyle.html +10 -14
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +10 -14
- data/rdoc/RubyXL/CT_SphereCoords.html +10 -14
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +10 -14
- data/rdoc/RubyXL/CT_StyleMatrix.html +10 -14
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +10 -14
- data/rdoc/RubyXL/CT_SupplementalFont.html +10 -14
- data/rdoc/RubyXL/CT_SystemColor.html +10 -14
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +10 -14
- data/rdoc/RubyXL/CT_TextBlipBullet.html +10 -14
- data/rdoc/RubyXL/CT_TextCharBullet.html +10 -14
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +10 -14
- data/rdoc/RubyXL/CT_TextFont.html +10 -14
- data/rdoc/RubyXL/CT_TextListStyle.html +10 -14
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +10 -14
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +10 -14
- data/rdoc/RubyXL/CT_TextSpacing.html +10 -14
- data/rdoc/RubyXL/CT_TextTabStop.html +10 -14
- data/rdoc/RubyXL/CT_TextTabStopList.html +10 -14
- data/rdoc/RubyXL/CT_TileInfoProperties.html +10 -14
- data/rdoc/RubyXL/CT_TintEffect.html +10 -14
- data/rdoc/RubyXL/CT_Transform2D.html +10 -14
- data/rdoc/RubyXL/CT_TransformEffect.html +10 -14
- data/rdoc/RubyXL/CT_Vector3D.html +10 -14
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +10 -14
- data/rdoc/RubyXL/CalculationChain.html +13 -39
- data/rdoc/RubyXL/CalculationChainCell.html +10 -14
- data/rdoc/RubyXL/CalculationProperties.html +10 -14
- data/rdoc/RubyXL/Cell.html +28 -221
- data/rdoc/RubyXL/CellConvenienceMethods.html +70 -475
- data/rdoc/RubyXL/CellExt.html +10 -14
- data/rdoc/RubyXL/CellSmartTag.html +10 -14
- data/rdoc/RubyXL/CellSmartTagProperty.html +10 -14
- data/rdoc/RubyXL/CellSmartTags.html +10 -14
- data/rdoc/RubyXL/CellStyle.html +10 -14
- data/rdoc/RubyXL/CellStyleXFs.html +13 -31
- data/rdoc/RubyXL/CellStyles.html +13 -31
- data/rdoc/RubyXL/CellValue.html +13 -31
- data/rdoc/RubyXL/CellWatch.html +10 -14
- data/rdoc/RubyXL/CellWatches.html +10 -14
- data/rdoc/RubyXL/CellXFs.html +13 -31
- data/rdoc/RubyXL/ChartColorsFile.html +10 -22
- data/rdoc/RubyXL/ChartFile.html +15 -44
- data/rdoc/RubyXL/ChartStyleFile.html +10 -22
- data/rdoc/RubyXL/ChartUserShapesFile.html +10 -22
- data/rdoc/RubyXL/Chartsheet.html +15 -61
- data/rdoc/RubyXL/ChartsheetPageSetup.html +10 -14
- data/rdoc/RubyXL/ChartsheetProperties.html +10 -14
- data/rdoc/RubyXL/ChartsheetProtection.html +10 -14
- data/rdoc/RubyXL/ChartsheetView.html +10 -14
- data/rdoc/RubyXL/ChartsheetViews.html +10 -14
- data/rdoc/RubyXL/Color.html +13 -36
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +15 -60
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +19 -76
- data/rdoc/RubyXL/ColorConvenienceClasses.html +8 -11
- data/rdoc/RubyXL/ColorConvenienceMethods.html +11 -28
- data/rdoc/RubyXL/ColorFilter.html +10 -14
- data/rdoc/RubyXL/ColorScale.html +10 -14
- data/rdoc/RubyXL/ColorSet.html +10 -14
- data/rdoc/RubyXL/Colors.html +10 -14
- data/rdoc/RubyXL/ColumnRange.html +13 -62
- data/rdoc/RubyXL/ColumnRanges.html +13 -70
- data/rdoc/RubyXL/Comment.html +10 -14
- data/rdoc/RubyXL/CommentList.html +10 -14
- data/rdoc/RubyXL/CommentsFile.html +13 -44
- data/rdoc/RubyXL/ConditionalFormatValue.html +10 -14
- data/rdoc/RubyXL/ConditionalFormatting.html +10 -14
- data/rdoc/RubyXL/ConditionalFormattingRule.html +10 -14
- data/rdoc/RubyXL/Connection.html +10 -14
- data/rdoc/RubyXL/ConnectionTable.html +10 -14
- data/rdoc/RubyXL/ConnectionTables.html +10 -14
- data/rdoc/RubyXL/ConnectionTextField.html +10 -14
- data/rdoc/RubyXL/ConnectionTextFields.html +10 -14
- data/rdoc/RubyXL/Connections.html +13 -39
- data/rdoc/RubyXL/ContentTypeDefault.html +10 -14
- data/rdoc/RubyXL/ContentTypeOverride.html +10 -14
- data/rdoc/RubyXL/ContentTypes.html +13 -52
- data/rdoc/RubyXL/ControlPropertiesFile.html +12 -19
- data/rdoc/RubyXL/CorePropertiesFile.html +15 -150
- data/rdoc/RubyXL/CustomColor.html +10 -14
- data/rdoc/RubyXL/CustomColorList.html +10 -14
- data/rdoc/RubyXL/CustomFilter.html +10 -14
- data/rdoc/RubyXL/CustomFilters.html +10 -14
- data/rdoc/RubyXL/CustomGeometry.html +10 -14
- data/rdoc/RubyXL/CustomProperties.html +10 -14
- data/rdoc/RubyXL/CustomPropertiesFile.html +10 -22
- data/rdoc/RubyXL/CustomProperty.html +10 -14
- data/rdoc/RubyXL/CustomPropertyFile.html +10 -22
- data/rdoc/RubyXL/CustomSheetView.html +10 -14
- data/rdoc/RubyXL/CustomSheetViews.html +10 -14
- data/rdoc/RubyXL/CustomWorkbookView.html +10 -14
- data/rdoc/RubyXL/CustomWorkbookViews.html +10 -14
- data/rdoc/RubyXL/CustomXMLFile.html +10 -19
- data/rdoc/RubyXL/DXF.html +10 -14
- data/rdoc/RubyXL/DXFs.html +10 -14
- data/rdoc/RubyXL/DataBar.html +10 -14
- data/rdoc/RubyXL/DataConsolidate.html +10 -14
- data/rdoc/RubyXL/DataConsolidationReference.html +10 -14
- data/rdoc/RubyXL/DataConsolidationReferences.html +10 -14
- data/rdoc/RubyXL/DataType.html +8 -34
- data/rdoc/RubyXL/DataValidation.html +10 -14
- data/rdoc/RubyXL/DataValidations.html +10 -14
- data/rdoc/RubyXL/DateGroupItem.html +10 -14
- data/rdoc/RubyXL/DefinedName.html +10 -14
- data/rdoc/RubyXL/DefinedNameExt.html +10 -14
- data/rdoc/RubyXL/DefinedNames.html +10 -14
- data/rdoc/RubyXL/DefinedNamesExt.html +10 -14
- data/rdoc/RubyXL/DocumentPropertiesFile.html +13 -57
- data/rdoc/RubyXL/DrawingFile.html +15 -44
- data/rdoc/RubyXL/DynamicFilter.html +10 -14
- data/rdoc/RubyXL/EmbeddedControl.html +10 -14
- data/rdoc/RubyXL/EmbeddedControls.html +10 -14
- data/rdoc/RubyXL/Extension.html +10 -14
- data/rdoc/RubyXL/ExtensionStorageArea.html +10 -14
- data/rdoc/RubyXL/Extents.html +10 -14
- data/rdoc/RubyXL/ExternalBook.html +10 -14
- data/rdoc/RubyXL/ExternalLinksFile.html +16 -45
- data/rdoc/RubyXL/ExternalReference.html +10 -14
- data/rdoc/RubyXL/ExternalReferences.html +10 -14
- data/rdoc/RubyXL/ExtraColorSchemeList.html +10 -14
- data/rdoc/RubyXL/FieldItem.html +10 -14
- data/rdoc/RubyXL/FileRecoveryProperties.html +10 -14
- data/rdoc/RubyXL/FileSharing.html +10 -14
- data/rdoc/RubyXL/FileVersion.html +10 -14
- data/rdoc/RubyXL/Fill.html +13 -31
- data/rdoc/RubyXL/Fills.html +13 -31
- data/rdoc/RubyXL/FilterContainer.html +10 -14
- data/rdoc/RubyXL/FloatNode.html +10 -14
- data/rdoc/RubyXL/FloatValue.html +10 -14
- data/rdoc/RubyXL/Font.html +13 -36
- data/rdoc/RubyXL/FontConvenienceMethods.html +11 -197
- data/rdoc/RubyXL/FontScheme.html +10 -14
- data/rdoc/RubyXL/Fonts.html +13 -31
- data/rdoc/RubyXL/Formula.html +10 -14
- data/rdoc/RubyXL/FunctionGroup.html +10 -14
- data/rdoc/RubyXL/FunctionGroups.html +10 -14
- data/rdoc/RubyXL/GenericStorageObject.html +14 -75
- data/rdoc/RubyXL/GradientFill.html +10 -14
- data/rdoc/RubyXL/HeaderFooterSettings.html +10 -14
- data/rdoc/RubyXL/Hyperlink.html +10 -14
- data/rdoc/RubyXL/HyperlinkRelFile.html +10 -19
- data/rdoc/RubyXL/Hyperlinks.html +10 -14
- data/rdoc/RubyXL/IconFilter.html +10 -14
- data/rdoc/RubyXL/IconSet.html +10 -14
- data/rdoc/RubyXL/IgnoredError.html +10 -14
- data/rdoc/RubyXL/IgnoredErrors.html +10 -14
- data/rdoc/RubyXL/IndexedColors.html +10 -14
- data/rdoc/RubyXL/InputCells.html +10 -14
- data/rdoc/RubyXL/IntegerNode.html +10 -14
- data/rdoc/RubyXL/IntegerValue.html +10 -14
- data/rdoc/RubyXL/LegacyCell.html +11 -28
- data/rdoc/RubyXL/LegacyWorksheet.html +16 -88
- data/rdoc/RubyXL/MRUColors.html +10 -14
- data/rdoc/RubyXL/MacrosFile.html +10 -22
- data/rdoc/RubyXL/MergedCell.html +10 -14
- data/rdoc/RubyXL/MergedCells.html +10 -14
- data/rdoc/RubyXL/NumFmt.html +10 -14
- data/rdoc/RubyXL/NumberFormat.html +13 -31
- data/rdoc/RubyXL/NumberFormats.html +13 -36
- data/rdoc/RubyXL/OLEObject.html +10 -14
- data/rdoc/RubyXL/OLEObjectFile.html +10 -22
- data/rdoc/RubyXL/OLEObjects.html +10 -14
- data/rdoc/RubyXL/OLESize.html +10 -14
- data/rdoc/RubyXL/OOXMLContainerObject.html +24 -116
- data/rdoc/RubyXL/OOXMLIgnored.html +14 -46
- data/rdoc/RubyXL/OOXMLObject.html +12 -19
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +39 -84
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +28 -141
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +15 -169
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +19 -103
- data/rdoc/RubyXL/OdbcOleDbProperties.html +10 -14
- data/rdoc/RubyXL/Offset.html +10 -14
- data/rdoc/RubyXL/OlapProperties.html +10 -14
- 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 +10 -14
- data/rdoc/RubyXL/PageMargins.html +10 -14
- data/rdoc/RubyXL/PageSetup.html +10 -14
- data/rdoc/RubyXL/PageSetupProperties.html +10 -14
- data/rdoc/RubyXL/Pane.html +10 -14
- data/rdoc/RubyXL/Parser.html +13 -44
- data/rdoc/RubyXL/PatternFill.html +10 -14
- data/rdoc/RubyXL/PhoneticProperties.html +10 -14
- data/rdoc/RubyXL/PhoneticRun.html +10 -14
- data/rdoc/RubyXL/PivotArea.html +10 -14
- data/rdoc/RubyXL/PivotCache.html +10 -14
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +12 -27
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +10 -22
- data/rdoc/RubyXL/PivotCaches.html +10 -14
- data/rdoc/RubyXL/PivotReference.html +10 -14
- data/rdoc/RubyXL/PivotReferences.html +10 -14
- data/rdoc/RubyXL/PivotTableFile.html +12 -27
- data/rdoc/RubyXL/PivotTableSelection.html +10 -14
- data/rdoc/RubyXL/PresetGeometry.html +10 -14
- data/rdoc/RubyXL/PrintOptions.html +10 -14
- data/rdoc/RubyXL/PrinterSettingsFile.html +10 -22
- data/rdoc/RubyXL/ProtectedRange.html +10 -14
- data/rdoc/RubyXL/ProtectedRanges.html +10 -14
- data/rdoc/RubyXL/Protection.html +10 -14
- data/rdoc/RubyXL/QueryParameter.html +10 -14
- data/rdoc/RubyXL/QueryParameters.html +10 -14
- data/rdoc/RubyXL/QueryTable.html +15 -44
- data/rdoc/RubyXL/QueryTableDeletedField.html +10 -14
- data/rdoc/RubyXL/QueryTableDeletedFields.html +10 -14
- data/rdoc/RubyXL/QueryTableField.html +10 -14
- data/rdoc/RubyXL/QueryTableFields.html +10 -14
- data/rdoc/RubyXL/QueryTableRefresh.html +10 -14
- data/rdoc/RubyXL/RID.html +10 -14
- data/rdoc/RubyXL/RawOOXML.html +14 -51
- data/rdoc/RubyXL/Reference.html +14 -192
- data/rdoc/RubyXL/Relationship.html +10 -14
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +11 -28
- data/rdoc/RubyXL/RelationshipSupport.html +14 -108
- data/rdoc/RubyXL/RevisionPointer.html +10 -14
- data/rdoc/RubyXL/RichText.html +14 -32
- data/rdoc/RubyXL/RichTextRun.html +13 -31
- data/rdoc/RubyXL/Row.html +22 -154
- data/rdoc/RubyXL/RowExt.html +10 -14
- data/rdoc/RubyXL/RunProperties.html +10 -14
- data/rdoc/RubyXL/Scenario.html +10 -14
- data/rdoc/RubyXL/Scenarios.html +10 -14
- data/rdoc/RubyXL/Selection.html +13 -31
- data/rdoc/RubyXL/ShapeGuide.html +10 -14
- data/rdoc/RubyXL/ShapeTextRectangle.html +10 -14
- data/rdoc/RubyXL/SharedStringsTable.html +14 -121
- data/rdoc/RubyXL/Sheet.html +10 -14
- data/rdoc/RubyXL/SheetCalculationProperties.html +10 -14
- data/rdoc/RubyXL/SheetData.html +15 -46
- data/rdoc/RubyXL/SheetDataExt.html +10 -14
- data/rdoc/RubyXL/SheetDataSet.html +10 -14
- data/rdoc/RubyXL/SheetName.html +10 -14
- data/rdoc/RubyXL/SheetNames.html +10 -14
- data/rdoc/RubyXL/Sheets.html +10 -14
- data/rdoc/RubyXL/SlicerCacheFile.html +10 -22
- data/rdoc/RubyXL/SlicerFile.html +10 -22
- data/rdoc/RubyXL/SmartTagProperties.html +10 -14
- data/rdoc/RubyXL/SmartTagType.html +10 -14
- data/rdoc/RubyXL/SmartTagTypes.html +10 -14
- data/rdoc/RubyXL/SmartTags.html +10 -14
- data/rdoc/RubyXL/SortCondition.html +10 -14
- data/rdoc/RubyXL/SortState.html +10 -14
- data/rdoc/RubyXL/Sqref.html +14 -46
- data/rdoc/RubyXL/Stop.html +10 -14
- data/rdoc/RubyXL/StringNode.html +10 -14
- data/rdoc/RubyXL/StringNodeW3C.html +14 -46
- data/rdoc/RubyXL/StringValue.html +10 -14
- data/rdoc/RubyXL/Stylesheet.html +14 -94
- data/rdoc/RubyXL/TableFile.html +10 -22
- data/rdoc/RubyXL/TableParts.html +10 -14
- data/rdoc/RubyXL/TableStyle.html +10 -14
- data/rdoc/RubyXL/TableStyles.html +10 -14
- data/rdoc/RubyXL/Text.html +13 -52
- data/rdoc/RubyXL/TextImportSettings.html +10 -14
- data/rdoc/RubyXL/Theme.html +14 -67
- data/rdoc/RubyXL/ThemeElements.html +10 -14
- data/rdoc/RubyXL/ThumbnailFile.html +10 -22
- data/rdoc/RubyXL/Top10.html +10 -14
- data/rdoc/RubyXL/VMLDrawingFile.html +12 -27
- data/rdoc/RubyXL/Variant.html +10 -14
- data/rdoc/RubyXL/Vector.html +13 -31
- data/rdoc/RubyXL/VectorValue.html +10 -14
- data/rdoc/RubyXL/VisualProperties.html +10 -14
- data/rdoc/RubyXL/WebPublishObject.html +10 -14
- data/rdoc/RubyXL/WebPublishObjects.html +10 -14
- data/rdoc/RubyXL/WebPublishingItem.html +10 -14
- data/rdoc/RubyXL/WebPublishingItems.html +10 -14
- data/rdoc/RubyXL/WebPublishingProperties.html +10 -14
- data/rdoc/RubyXL/WebQueryProperties.html +10 -14
- data/rdoc/RubyXL/Workbook.html +76 -465
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +11 -223
- data/rdoc/RubyXL/WorkbookProperties.html +10 -14
- data/rdoc/RubyXL/WorkbookProtection.html +10 -14
- data/rdoc/RubyXL/WorkbookRoot.html +16 -101
- data/rdoc/RubyXL/WorkbookView.html +10 -14
- data/rdoc/RubyXL/WorkbookViews.html +10 -14
- data/rdoc/RubyXL/Worksheet.html +16 -132
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +171 -987
- data/rdoc/RubyXL/WorksheetDimensions.html +10 -14
- data/rdoc/RubyXL/WorksheetFormatProperties.html +10 -14
- data/rdoc/RubyXL/WorksheetProperties.html +10 -14
- data/rdoc/RubyXL/WorksheetProtection.html +10 -14
- data/rdoc/RubyXL/WorksheetView.html +10 -14
- data/rdoc/RubyXL/WorksheetViews.html +10 -14
- data/rdoc/RubyXL/XF.html +10 -14
- data/rdoc/RubyXL.html +11 -321
- data/rdoc/created.rid +26 -26
- data/rdoc/css/rdoc.css +55 -6
- data/rdoc/index.html +13 -390
- data/rdoc/js/darkfish.js +22 -99
- data/rdoc/js/navigation.js +4 -40
- data/rdoc/js/navigation.js.gz +0 -0
- data/rdoc/js/search.js +32 -31
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/js/search_index.js.gz +0 -0
- data/rdoc/js/searcher.js +6 -6
- data/rdoc/js/searcher.js.gz +0 -0
- data/rdoc/table_of_contents.html +33 -7
- data/rubyXL.gemspec +24 -31
- data/spec/lib/cell_spec.rb +44 -2
- data/spec/lib/rgb_color_spec.rb +16 -0
- data/spec/lib/worksheet_spec.rb +301 -0
- metadata +12 -10
- data/rdoc/js/jquery.js +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 333f7f90125b86bfef6f8f87b70009a2e77cd44e70eb84fc22d9c3a820e69b5b
|
|
4
|
+
data.tar.gz: eead0bf9e502b9df52536d9f34582f2637071d8b4cb1d8902f57f79a95badbc1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 533d23c78736a6320243772d38b0a322bb071005f34448903a1f93da7ab5c4ee51f10dd47419a4bd18f192f44b1d90df0d38ce77bd16dbc7e362e02faab6c971
|
|
7
|
+
data.tar.gz: 10a36c58a4b4d74f3d6d63c58e24c4e90664487337d049bfabf36b7ddb40032538d78271faf614d246983e50de0f9502369ee434ed47e11160039e38658548f8
|
data/.circleci/config.yml
CHANGED
|
@@ -7,7 +7,7 @@ jobs:
|
|
|
7
7
|
build:
|
|
8
8
|
docker:
|
|
9
9
|
# specify the version you desire here
|
|
10
|
-
- image: circleci/ruby:2.
|
|
10
|
+
- image: circleci/ruby:2.6.6-buster
|
|
11
11
|
|
|
12
12
|
# Specify service dependencies here if necessary
|
|
13
13
|
# CircleCI maintains a library of pre-built images
|
|
@@ -29,6 +29,7 @@ jobs:
|
|
|
29
29
|
- run:
|
|
30
30
|
name: install dependencies
|
|
31
31
|
command: |
|
|
32
|
+
gem install bundler
|
|
32
33
|
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
|
33
34
|
|
|
34
35
|
- save_cache:
|
data/Gemfile
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
source "http://rubygems.org"
|
|
2
2
|
|
|
3
3
|
# Dependencies required to run this gem.
|
|
4
|
-
gem "nokogiri", ">= 1.
|
|
5
|
-
gem "rubyzip", ">= 1.
|
|
4
|
+
gem "nokogiri", ">= 1.10.8"
|
|
5
|
+
gem "rubyzip", ">= 1.3.0" , :require => 'zip'
|
|
6
6
|
|
|
7
7
|
# Development dependencies.
|
|
8
8
|
group :development, :test do
|
|
9
9
|
gem "bundler"
|
|
10
10
|
gem "rake"
|
|
11
|
-
gem "
|
|
11
|
+
gem "juwelier"
|
|
12
12
|
gem "rspec"
|
|
13
13
|
gem "simplecov"
|
|
14
14
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,77 +1,102 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
addressable (2.
|
|
5
|
-
|
|
4
|
+
addressable (2.8.0)
|
|
5
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
6
|
+
builder (3.2.4)
|
|
6
7
|
descendants_tracker (0.0.4)
|
|
7
8
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
8
|
-
diff-lcs (1.
|
|
9
|
-
docile (1.
|
|
10
|
-
faraday (
|
|
9
|
+
diff-lcs (1.4.4)
|
|
10
|
+
docile (1.4.0)
|
|
11
|
+
faraday (1.6.0)
|
|
12
|
+
faraday-em_http (~> 1.0)
|
|
13
|
+
faraday-em_synchrony (~> 1.0)
|
|
14
|
+
faraday-excon (~> 1.1)
|
|
15
|
+
faraday-httpclient (~> 1.0.1)
|
|
16
|
+
faraday-net_http (~> 1.0)
|
|
17
|
+
faraday-net_http_persistent (~> 1.1)
|
|
18
|
+
faraday-patron (~> 1.0)
|
|
19
|
+
faraday-rack (~> 1.0)
|
|
11
20
|
multipart-post (>= 1.2, < 3)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
21
|
+
ruby2_keywords (>= 0.0.4)
|
|
22
|
+
faraday-em_http (1.0.0)
|
|
23
|
+
faraday-em_synchrony (1.0.0)
|
|
24
|
+
faraday-excon (1.1.0)
|
|
25
|
+
faraday-httpclient (1.0.1)
|
|
26
|
+
faraday-net_http (1.0.1)
|
|
27
|
+
faraday-net_http_persistent (1.2.0)
|
|
28
|
+
faraday-patron (1.0.0)
|
|
29
|
+
faraday-rack (1.0.0)
|
|
30
|
+
git (1.9.1)
|
|
31
|
+
rchardet (~> 1.8)
|
|
32
|
+
github_api (0.19.0)
|
|
33
|
+
addressable (~> 2.4)
|
|
15
34
|
descendants_tracker (~> 0.0.4)
|
|
16
|
-
faraday (
|
|
17
|
-
hashie (>= 3.
|
|
18
|
-
mime-types (>= 1.16, < 3.0)
|
|
35
|
+
faraday (>= 0.8, < 2)
|
|
36
|
+
hashie (~> 3.5, >= 3.5.2)
|
|
19
37
|
oauth2 (~> 1.0)
|
|
20
38
|
hashie (3.6.0)
|
|
21
|
-
highline (2.0.
|
|
22
|
-
|
|
39
|
+
highline (2.0.3)
|
|
40
|
+
juwelier (2.4.9)
|
|
23
41
|
builder
|
|
24
42
|
bundler
|
|
25
|
-
git
|
|
26
|
-
github_api
|
|
27
|
-
highline
|
|
28
|
-
|
|
43
|
+
git
|
|
44
|
+
github_api
|
|
45
|
+
highline
|
|
46
|
+
kamelcase (~> 0)
|
|
47
|
+
nokogiri
|
|
29
48
|
psych
|
|
30
49
|
rake
|
|
31
50
|
rdoc
|
|
32
51
|
semver2
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
mini_portile2 (2.
|
|
37
|
-
multi_json (1.
|
|
52
|
+
jwt (2.2.3)
|
|
53
|
+
kamelcase (0.0.2)
|
|
54
|
+
semver2 (~> 3)
|
|
55
|
+
mini_portile2 (2.6.1)
|
|
56
|
+
multi_json (1.15.0)
|
|
38
57
|
multi_xml (0.6.0)
|
|
39
58
|
multipart-post (2.1.1)
|
|
40
|
-
nokogiri (1.
|
|
41
|
-
mini_portile2 (~> 2.
|
|
42
|
-
|
|
43
|
-
|
|
59
|
+
nokogiri (1.12.1)
|
|
60
|
+
mini_portile2 (~> 2.6.1)
|
|
61
|
+
racc (~> 1.4)
|
|
62
|
+
oauth2 (1.4.7)
|
|
63
|
+
faraday (>= 0.8, < 2.0)
|
|
44
64
|
jwt (>= 1.0, < 3.0)
|
|
45
65
|
multi_json (~> 1.3)
|
|
46
66
|
multi_xml (~> 0.5)
|
|
47
67
|
rack (>= 1.2, < 3)
|
|
48
|
-
psych (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
rspec-
|
|
58
|
-
|
|
68
|
+
psych (4.0.1)
|
|
69
|
+
public_suffix (4.0.6)
|
|
70
|
+
racc (1.5.2)
|
|
71
|
+
rack (2.2.3)
|
|
72
|
+
rake (13.0.6)
|
|
73
|
+
rchardet (1.8.0)
|
|
74
|
+
rdoc (6.3.2)
|
|
75
|
+
rspec (3.10.0)
|
|
76
|
+
rspec-core (~> 3.10.0)
|
|
77
|
+
rspec-expectations (~> 3.10.0)
|
|
78
|
+
rspec-mocks (~> 3.10.0)
|
|
79
|
+
rspec-core (3.10.1)
|
|
80
|
+
rspec-support (~> 3.10.0)
|
|
81
|
+
rspec-expectations (3.10.1)
|
|
59
82
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
60
|
-
rspec-support (~> 3.
|
|
61
|
-
rspec-mocks (3.
|
|
83
|
+
rspec-support (~> 3.10.0)
|
|
84
|
+
rspec-mocks (3.10.2)
|
|
62
85
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
63
|
-
rspec-support (~> 3.
|
|
64
|
-
rspec-support (3.
|
|
86
|
+
rspec-support (~> 3.10.0)
|
|
87
|
+
rspec-support (3.10.2)
|
|
65
88
|
rspec_junit_formatter (0.4.1)
|
|
66
89
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
67
|
-
ruby-prof (
|
|
68
|
-
|
|
90
|
+
ruby-prof (1.4.3)
|
|
91
|
+
ruby2_keywords (0.0.5)
|
|
92
|
+
rubyzip (2.3.2)
|
|
69
93
|
semver2 (3.4.2)
|
|
70
|
-
simplecov (0.
|
|
94
|
+
simplecov (0.21.2)
|
|
71
95
|
docile (~> 1.1)
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
simplecov-html (0.
|
|
96
|
+
simplecov-html (~> 0.11)
|
|
97
|
+
simplecov_json_formatter (~> 0.1)
|
|
98
|
+
simplecov-html (0.12.3)
|
|
99
|
+
simplecov_json_formatter (0.1.3)
|
|
75
100
|
thread_safe (0.3.6)
|
|
76
101
|
|
|
77
102
|
PLATFORMS
|
|
@@ -79,14 +104,14 @@ PLATFORMS
|
|
|
79
104
|
|
|
80
105
|
DEPENDENCIES
|
|
81
106
|
bundler
|
|
82
|
-
|
|
83
|
-
nokogiri (>= 1.
|
|
107
|
+
juwelier
|
|
108
|
+
nokogiri (>= 1.10.8)
|
|
84
109
|
rake
|
|
85
110
|
rspec
|
|
86
111
|
rspec_junit_formatter
|
|
87
112
|
ruby-prof
|
|
88
|
-
rubyzip (>= 1.
|
|
113
|
+
rubyzip (>= 1.3.0)
|
|
89
114
|
simplecov
|
|
90
115
|
|
|
91
116
|
BUNDLED WITH
|
|
92
|
-
|
|
117
|
+
2.2.25
|
data/LICENSE.txt
CHANGED
data/README.rdoc
CHANGED
|
@@ -39,7 +39,7 @@ If you do not care about your RAM usage, just include them all at once by adding
|
|
|
39
39
|
==== Accessing a Worksheet
|
|
40
40
|
workbook.worksheets[0] # Returns first worksheet
|
|
41
41
|
workbook[0] # Returns first worksheet
|
|
42
|
-
workbook['Sheet1'] # Finds and returns worksheet titled "Sheet1"
|
|
42
|
+
workbook['Sheet1'] # Finds and returns worksheet titled "Sheet1". Note that sheet names in Excel are limited to 31 character.
|
|
43
43
|
|
|
44
44
|
==== Accessing a Row (Array of Cells)
|
|
45
45
|
Please note that worksheet is a _sparse_ array of rows. Your code *must* expect that any row it plucks from the array may be <tt>nil</tt>.
|
|
@@ -55,6 +55,10 @@ Please note that row is a _sparse_ array of cells. Your code *must* expect that
|
|
|
55
55
|
worksheet.sheet_data[0][0] # Returns cell A1 in the worksheet
|
|
56
56
|
worksheet[0][0] # Returns cell A1 in the worksheet
|
|
57
57
|
|
|
58
|
+
cell = worksheet[0][0]
|
|
59
|
+
cell.value # Returns a properly converted value in the cell (if the file claims that the cell
|
|
60
|
+
# is holding a number, returns a respective Integer or Float, and so on).
|
|
61
|
+
|
|
58
62
|
==== Wrappers for accessing Cell properties
|
|
59
63
|
cell = workbook[0][0][0]
|
|
60
64
|
cell.is_struckthrough # Returns +true+ if the cell is struckthrough, other boolean properties have same syntax
|
|
@@ -229,6 +233,10 @@ It can also operate on +StringIO+ objects, thus eliminating the need to save the
|
|
|
229
233
|
|
|
230
234
|
RubyXL.class_variable_set(:@@suppress_warnings, true)
|
|
231
235
|
|
|
236
|
+
== Data validation (colloquially referred to as "dropdown list")
|
|
237
|
+
|
|
238
|
+
worksheet.add_validation_list("A1", [ "value1", "value2" ])
|
|
239
|
+
|
|
232
240
|
== For more information
|
|
233
241
|
Take a look at the files in spec/lib/ for rspecs on most methods
|
|
234
242
|
|
|
@@ -244,5 +252,5 @@ Take a look at the files in spec/lib/ for rspecs on most methods
|
|
|
244
252
|
|
|
245
253
|
== Copyright
|
|
246
254
|
|
|
247
|
-
Copyright (c) 2011 Vivek Bhagwat, 2013-
|
|
255
|
+
Copyright (c) 2011 Vivek Bhagwat, 2013-2021 Wesha.
|
|
248
256
|
See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
|
@@ -10,8 +10,8 @@ rescue Bundler::BundlerError => e
|
|
|
10
10
|
exit e.status_code
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
require '
|
|
14
|
-
|
|
13
|
+
require 'juwelier'
|
|
14
|
+
Juwelier::Tasks.new do |gem|
|
|
15
15
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
|
16
16
|
gem.name = "rubyXL"
|
|
17
17
|
gem.homepage = "http://github.com/gilt/rubyXL"
|
|
@@ -23,7 +23,7 @@ Jeweler::Tasks.new do |gem|
|
|
|
23
23
|
# gem.required_ruby_version = '>2.1'
|
|
24
24
|
# dependencies defined in Gemfile
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
Juwelier::RubygemsDotOrgTasks.new
|
|
27
27
|
|
|
28
28
|
require 'rake/testtask'
|
|
29
29
|
Rake::TestTask.new(:test) do |test|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.4.
|
|
1
|
+
3.4.18
|
|
@@ -19,6 +19,16 @@ module RubyXL
|
|
|
19
19
|
self.raw_value = data
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
def remove_formula
|
|
23
|
+
self.formula = nil
|
|
24
|
+
|
|
25
|
+
calculation_chain = workbook && workbook.calculation_chain
|
|
26
|
+
calculation_cells = calculation_chain && calculation_chain.cells
|
|
27
|
+
calculation_cells && calculation_cells.reject! { |c|
|
|
28
|
+
c.ref.col_range.c == self.column && c.ref.row_range.begin == self.row
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
22
32
|
def get_border(direction)
|
|
23
33
|
validate_worksheet
|
|
24
34
|
get_cell_border.get_edge_style(direction)
|
|
@@ -243,7 +253,7 @@ module RubyXL
|
|
|
243
253
|
def add_hyperlink(l)
|
|
244
254
|
worksheet.hyperlinks ||= RubyXL::Hyperlinks.new
|
|
245
255
|
worksheet.hyperlinks << RubyXL::Hyperlink.new(:ref => self.r, :location => l)
|
|
246
|
-
#
|
|
256
|
+
# define_relationship
|
|
247
257
|
# define_attribute(:location, :string)
|
|
248
258
|
# define_attribute(:tooltip, :string)
|
|
249
259
|
# define_attribute(:display, :string)
|
|
@@ -72,9 +72,11 @@ module RubyXL
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
def to_s
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
if a && a != 0 then
|
|
76
|
+
"%02x%02x%02x%02x" % [ r, g, b, a ]
|
|
77
|
+
else
|
|
78
|
+
"%02x%02x%02x" % [ r, g, b ]
|
|
79
|
+
end
|
|
78
80
|
end
|
|
79
81
|
|
|
80
82
|
end
|
|
@@ -106,6 +106,21 @@ module RubyXL
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
+
# Update merged cells for all rows below
|
|
110
|
+
if self.merged_cells then
|
|
111
|
+
merged_cells.each { |mc|
|
|
112
|
+
next if mc.ref.row_range.last < row_index
|
|
113
|
+
|
|
114
|
+
in_merged_cell = mc.ref.row_range.first < row_index
|
|
115
|
+
mc.ref = RubyXL::Reference.new(
|
|
116
|
+
mc.ref.row_range.first + (in_merged_cell ? 0 : 1),
|
|
117
|
+
mc.ref.row_range.last + 1,
|
|
118
|
+
mc.ref.col_range.first,
|
|
119
|
+
mc.ref.col_range.last,
|
|
120
|
+
)
|
|
121
|
+
}
|
|
122
|
+
end
|
|
123
|
+
|
|
109
124
|
return new_row
|
|
110
125
|
end
|
|
111
126
|
|
|
@@ -121,6 +136,23 @@ module RubyXL
|
|
|
121
136
|
row && row.cells.each{ |c| c.row -= 1 unless c.nil? }
|
|
122
137
|
}
|
|
123
138
|
|
|
139
|
+
# Update row number of merged cells
|
|
140
|
+
if self.merged_cells then
|
|
141
|
+
merged_cells.delete_if { |mc| mc.ref.row_range == (row_index..row_index) }
|
|
142
|
+
merged_cells.each { |mc|
|
|
143
|
+
next if mc.ref.row_range.last < row_index
|
|
144
|
+
|
|
145
|
+
in_merged_cell = mc.ref.row_range.first <= row_index
|
|
146
|
+
mc.ref = RubyXL::Reference.new(
|
|
147
|
+
mc.ref.row_range.first - (in_merged_cell ? 0 : 1),
|
|
148
|
+
mc.ref.row_range.last - 1,
|
|
149
|
+
mc.ref.col_range.first,
|
|
150
|
+
mc.ref.col_range.last,
|
|
151
|
+
)
|
|
152
|
+
}
|
|
153
|
+
merged_cells.delete_if { |mc| mc.ref.single_cell? }
|
|
154
|
+
end
|
|
155
|
+
|
|
124
156
|
return deleted
|
|
125
157
|
end
|
|
126
158
|
|
|
@@ -152,6 +184,21 @@ module RubyXL
|
|
|
152
184
|
|
|
153
185
|
cols.insert_column(column_index)
|
|
154
186
|
|
|
187
|
+
# Update merged cells for all rows below
|
|
188
|
+
if self.merged_cells then
|
|
189
|
+
merged_cells.each { |mc|
|
|
190
|
+
next if mc.ref.col_range.last < column_index
|
|
191
|
+
|
|
192
|
+
in_merged_cell = mc.ref.row_range.first < column_index
|
|
193
|
+
mc.ref = RubyXL::Reference.new(
|
|
194
|
+
mc.ref.row_range.first,
|
|
195
|
+
mc.ref.row_range.last,
|
|
196
|
+
mc.ref.col_range.first + (in_merged_cell ? 0 : 1),
|
|
197
|
+
mc.ref.col_range.last + 1,
|
|
198
|
+
)
|
|
199
|
+
}
|
|
200
|
+
end
|
|
201
|
+
|
|
155
202
|
# TODO: update column numbers
|
|
156
203
|
end
|
|
157
204
|
|
|
@@ -171,6 +218,24 @@ module RubyXL
|
|
|
171
218
|
}
|
|
172
219
|
|
|
173
220
|
cols.each { |range| range.delete_column(column_index) }
|
|
221
|
+
|
|
222
|
+
# Update row number of merged cells
|
|
223
|
+
return unless self.merged_cells
|
|
224
|
+
|
|
225
|
+
merged_cells.delete_if { |mc| mc.ref.col_range == (column_index..column_index) }
|
|
226
|
+
merged_cells.each { |mc|
|
|
227
|
+
next if mc.ref.col_range.last < column_index
|
|
228
|
+
|
|
229
|
+
in_merged_cell = mc.ref.col_range.first <= column_index
|
|
230
|
+
mc.ref = RubyXL::Reference.new(
|
|
231
|
+
mc.ref.row_range.first,
|
|
232
|
+
mc.ref.row_range.last,
|
|
233
|
+
mc.ref.col_range.first - (in_merged_cell ? 0 : 1),
|
|
234
|
+
mc.ref.col_range.last - 1,
|
|
235
|
+
)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
merged_cells.delete_if { |mc| mc.ref.single_cell? }
|
|
174
239
|
end
|
|
175
240
|
|
|
176
241
|
def get_row_style(row_index)
|
|
@@ -632,6 +697,18 @@ module RubyXL
|
|
|
632
697
|
# TODO: add validation to make sure ranges are not intersecting with existing ones
|
|
633
698
|
merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(start_row, end_row, start_col, end_col))
|
|
634
699
|
end
|
|
700
|
+
|
|
701
|
+
def add_validation_list(ref, list_arr)
|
|
702
|
+
# "Any double quote characters in the value should be escaped with another double quote.
|
|
703
|
+
# If the value does not contain a comma, newline or double quote, then the String value should be returned unchanged.
|
|
704
|
+
# If the value contains a comma, newline or double quote, then the String value should be returned enclosed in double quotes."
|
|
705
|
+
expr = '"' + list_arr.collect{|str| str.gsub('"', '""')}.join(',') + '"'
|
|
706
|
+
self.data_validations ||= RubyXL::DataValidations.new
|
|
707
|
+
self.data_validations <<
|
|
708
|
+
RubyXL::DataValidation.new({:sqref => RubyXL::Reference.new(ref),
|
|
709
|
+
:formula1 => RubyXL::Formula.new(:expression => expr),
|
|
710
|
+
:type => 'list'})
|
|
711
|
+
end
|
|
635
712
|
end
|
|
636
713
|
|
|
637
714
|
RubyXL::Worksheet.send(:include, RubyXL::WorksheetConvenienceMethods) # ruby 2.1 compat
|
|
@@ -34,7 +34,7 @@ module RubyXL
|
|
|
34
34
|
define_attribute(:horizontalDpi, :int, :default => 600)
|
|
35
35
|
define_attribute(:verticalDpi, :int, :default => 600)
|
|
36
36
|
define_attribute(:copies, :int, :default => 1)
|
|
37
|
-
|
|
37
|
+
define_relationship
|
|
38
38
|
define_element_name 'pageSetup'
|
|
39
39
|
end
|
|
40
40
|
|
|
@@ -11,6 +11,8 @@ module RubyXL
|
|
|
11
11
|
define_attribute(:imeMode, RubyXL::ST_DataValidationImeMode, :default => 'noControl')
|
|
12
12
|
define_attribute(:operator, RubyXL::ST_DataValidationOperator, :default => 'between')
|
|
13
13
|
define_attribute(:allowBlank, :bool, :default => false)
|
|
14
|
+
# Documentation lies. This property should have been called "HIDE dropdown",
|
|
15
|
+
# since that's what happens when it is set to true.
|
|
14
16
|
define_attribute(:showDropDown, :bool, :default => false)
|
|
15
17
|
define_attribute(:showInputMessage, :bool, :default => false)
|
|
16
18
|
define_attribute(:showErrorMessage, :bool, :default => false)
|
|
@@ -127,7 +127,7 @@ module RubyXL
|
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
def creator=(v)
|
|
130
|
-
self.dc_creator = v && RubyXL::
|
|
130
|
+
self.dc_creator = v && RubyXL::StringNode.new(:value => v)
|
|
131
131
|
end
|
|
132
132
|
|
|
133
133
|
def modifier
|
|
@@ -135,7 +135,7 @@ module RubyXL
|
|
|
135
135
|
end
|
|
136
136
|
|
|
137
137
|
def modifier=(v)
|
|
138
|
-
self.cp_last_modified_by = v && RubyXL::
|
|
138
|
+
self.cp_last_modified_by = v && RubyXL::StringNode.new(:value => v)
|
|
139
139
|
end
|
|
140
140
|
|
|
141
141
|
def created_at
|
|
@@ -61,16 +61,40 @@ module RubyXL
|
|
|
61
61
|
define_child_node(RubyXL::SheetNames)
|
|
62
62
|
define_child_node(RubyXL::DefinedNamesExt)
|
|
63
63
|
define_child_node(RubyXL::SheetDataSet)
|
|
64
|
-
|
|
64
|
+
define_relationship(:required => true)
|
|
65
65
|
define_element_name 'externalBook'
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
+
# http://www.datypic.com/sc/ooxml/e-ssml_oleItem-1.html
|
|
69
|
+
class OleItem < OOXMLObject
|
|
70
|
+
define_attribute(:name, :string, :required => true)
|
|
71
|
+
define_attribute(:icon, :bool)
|
|
72
|
+
define_attribute(:advise, :bool)
|
|
73
|
+
define_attribute(:preferPic, :bool)
|
|
74
|
+
define_element_name 'oleItem'
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# http://www.datypic.com/sc/ooxml/e-ssml_oleItems-1.html
|
|
78
|
+
class OleItems < OOXMLContainerObject
|
|
79
|
+
define_child_node(RubyXL::OleItem)
|
|
80
|
+
define_element_name 'oleItems'
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# http://www.datypic.com/sc/ooxml/t-ssml_CT_OleLink.html
|
|
84
|
+
class OleLink < OOXMLObject
|
|
85
|
+
define_child_node(RubyXL::OleItems, :collection => true)
|
|
86
|
+
define_relationship(:required => true)
|
|
87
|
+
define_attribute(:progId, :string, :required => true)
|
|
88
|
+
define_element_name 'oleLink'
|
|
89
|
+
end
|
|
90
|
+
|
|
68
91
|
class ExternalLinksFile < OOXMLTopLevelObject
|
|
69
92
|
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml'
|
|
70
93
|
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink'
|
|
71
94
|
|
|
72
95
|
include RubyXL::RelationshipSupport
|
|
73
96
|
define_child_node(RubyXL::ExternalBook)
|
|
97
|
+
define_child_node(RubyXL::OleLink)
|
|
74
98
|
|
|
75
99
|
define_element_name 'externalLink'
|
|
76
100
|
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
|
|
@@ -53,6 +53,11 @@ module RubyXL
|
|
|
53
53
|
self.send(:attr_accessor, attr_hash[:accessor]) unless attr_hash[:computed]
|
|
54
54
|
end
|
|
55
55
|
|
|
56
|
+
# Defines a `r:id` attribute
|
|
57
|
+
def define_relationship(extra_params = {})
|
|
58
|
+
define_attribute(:'r:id', :string, extra_params)
|
|
59
|
+
end
|
|
60
|
+
|
|
56
61
|
# Defines a child node of OOXML object.
|
|
57
62
|
# === Parameters
|
|
58
63
|
# * +klass+ - Class (descendant of RubyXL::OOXMLObject) of the child nodes. Child node objects will be produced by calling +parse+ method of that class.
|
|
@@ -144,7 +149,9 @@ module RubyXL
|
|
|
144
149
|
node.element_children.each { |child_node|
|
|
145
150
|
|
|
146
151
|
ns = child_node.namespace
|
|
147
|
-
prefix = known_namespaces
|
|
152
|
+
prefix = if known_namespaces.has_key?(ns.href) then known_namespaces[ns.href]
|
|
153
|
+
else ns.prefix
|
|
154
|
+
end
|
|
148
155
|
|
|
149
156
|
child_node_name = case prefix
|
|
150
157
|
when '', nil then child_node.name
|
|
@@ -270,6 +277,11 @@ module RubyXL
|
|
|
270
277
|
if xml.nil? then
|
|
271
278
|
seed_xml = Nokogiri::XML('<?xml version = "1.0" standalone ="yes"?>')
|
|
272
279
|
seed_xml.encoding = 'UTF-8'
|
|
280
|
+
|
|
281
|
+
if Nokogiri.jruby? then # Issue 188 workaround for JRuby
|
|
282
|
+
seed_xml.to_java.strict_error_checking = false
|
|
283
|
+
end
|
|
284
|
+
|
|
273
285
|
result = self.write_xml(seed_xml)
|
|
274
286
|
return result if result == ''
|
|
275
287
|
seed_xml << result
|
|
@@ -92,7 +92,13 @@ module RubyXL
|
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
def is_date?
|
|
95
|
-
return false unless
|
|
95
|
+
return false unless # Only fully numeric values can be dates
|
|
96
|
+
case raw_value
|
|
97
|
+
when Numeric then true
|
|
98
|
+
when String then raw_value =~ NUMBER_REGEXP
|
|
99
|
+
else false
|
|
100
|
+
end
|
|
101
|
+
|
|
96
102
|
num_fmt = self.number_format
|
|
97
103
|
num_fmt && num_fmt.is_date_format?
|
|
98
104
|
end
|
|
@@ -107,7 +113,8 @@ module RubyXL
|
|
|
107
113
|
when RubyXL::DataType::INLINE_STRING then is.to_s
|
|
108
114
|
when RubyXL::DataType::RAW_STRING then raw_value
|
|
109
115
|
else
|
|
110
|
-
if
|
|
116
|
+
if is then is.to_s
|
|
117
|
+
elsif is_date? then workbook.num_to_date(r.to_f)
|
|
111
118
|
elsif r.is_a?(String) && (r =~ NUMBER_REGEXP) then # Numeric
|
|
112
119
|
if $1 != '' then r.to_f
|
|
113
120
|
else r.to_i
|
|
@@ -119,8 +126,8 @@ module RubyXL
|
|
|
119
126
|
|
|
120
127
|
def inspect
|
|
121
128
|
str = "#<#{self.class}(#{row},#{column}): #{raw_value.inspect}"
|
|
122
|
-
str
|
|
123
|
-
str
|
|
129
|
+
str << " =#{self.formula.expression}" if self.formula
|
|
130
|
+
str << ", datatype=#{self.datatype.inspect}, style_index=#{self.style_index.inspect}>"
|
|
124
131
|
return str
|
|
125
132
|
end
|
|
126
133
|
|
data/lib/rubyXL/objects/text.rb
CHANGED
data/lib/rubyXL/objects/theme.rb
CHANGED
|
@@ -1164,7 +1164,7 @@ module RubyXL
|
|
|
1164
1164
|
class CT_Hyperlink < OOXMLObject
|
|
1165
1165
|
define_child_node(RubyXL::CT_EmbeddedWAVAudioFile)
|
|
1166
1166
|
define_child_node(RubyXL::AExtensionStorageArea)
|
|
1167
|
-
|
|
1167
|
+
define_relationship
|
|
1168
1168
|
define_attribute(:invalidUrl, :string, :default => '')
|
|
1169
1169
|
define_attribute(:action, :string, :default => '')
|
|
1170
1170
|
define_attribute(:tgtFrame, :string, :default => '')
|