rubyXL 3.4.5 → 3.4.18
Sign up to get free protection for your applications and to get access to all the features.
- 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 => '')
|