rubyXL 3.3.14 → 3.3.15
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/rubyXL/convenience_methods.rb +160 -4
- data/lib/rubyXL/objects/ooxml_object.rb +2 -1
- data/lib/rubyXL/objects/root.rb +1 -1
- data/lib/rubyXL/objects/storage.rb +2 -1
- data/lib/rubyXL/objects/worksheet.rb +5 -5
- data/lib/rubyXL/worksheet.rb +1 -160
- data/rdoc/README_rdoc.html +1 -1
- data/rdoc/RubyXL.html +1 -1
- data/rdoc/RubyXL/AExtension.html +1 -1
- data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/AdjustHandleList.html +1 -1
- data/rdoc/RubyXL/Alignment.html +1 -1
- data/rdoc/RubyXL/AlternateContent.html +1 -1
- data/rdoc/RubyXL/Authors.html +1 -1
- data/rdoc/RubyXL/AutoFilter.html +1 -1
- data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
- data/rdoc/RubyXL/BinaryImageFile.html +1 -1
- data/rdoc/RubyXL/BodyProperties.html +1 -1
- data/rdoc/RubyXL/BooleanNode.html +1 -1
- data/rdoc/RubyXL/BooleanValue.html +1 -1
- data/rdoc/RubyXL/Border.html +1 -1
- data/rdoc/RubyXL/BorderEdge.html +1 -1
- data/rdoc/RubyXL/Borders.html +1 -1
- data/rdoc/RubyXL/Break.html +1 -1
- data/rdoc/RubyXL/BreakList.html +1 -1
- data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
- data/rdoc/RubyXL/CT_Backdrop.html +1 -1
- data/rdoc/RubyXL/CT_Bevel.html +1 -1
- data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
- data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
- data/rdoc/RubyXL/CT_Blip.html +1 -1
- data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
- data/rdoc/RubyXL/CT_Camera.html +1 -1
- data/rdoc/RubyXL/CT_Color.html +1 -1
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
- data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
- data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
- data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
- data/rdoc/RubyXL/CT_DashStop.html +1 -1
- data/rdoc/RubyXL/CT_DashStopList.html +1 -1
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
- data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
- data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
- data/rdoc/RubyXL/CT_EffectList.html +1 -1
- data/rdoc/RubyXL/CT_EffectReference.html +1 -1
- data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
- data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
- data/rdoc/RubyXL/CT_FillEffect.html +1 -1
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
- data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
- data/rdoc/RubyXL/CT_FlatText.html +1 -1
- data/rdoc/RubyXL/CT_FontCollection.html +1 -1
- data/rdoc/RubyXL/CT_FontReference.html +1 -1
- data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
- data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
- data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_GradientStop.html +1 -1
- data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
- data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
- data/rdoc/RubyXL/CT_HslColor.html +1 -1
- data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_LightRig.html +1 -1
- data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
- data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_Path2D.html +1 -1
- data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DList.html +1 -1
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
- data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
- data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_Point3D.html +1 -1
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
- data/rdoc/RubyXL/CT_PresetColor.html +1 -1
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
- data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
- data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
- data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
- data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
- data/rdoc/RubyXL/CT_Scene3D.html +1 -1
- data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
- data/rdoc/RubyXL/CT_Shape3D.html +1 -1
- data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
- data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
- data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
- data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
- data/rdoc/RubyXL/CT_SystemColor.html +1 -1
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
- data/rdoc/RubyXL/CT_TextFont.html +1 -1
- data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
- data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
- data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
- data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
- data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
- data/rdoc/RubyXL/CT_TintEffect.html +1 -1
- data/rdoc/RubyXL/CT_Transform2D.html +1 -1
- data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
- data/rdoc/RubyXL/CT_Vector3D.html +1 -1
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
- data/rdoc/RubyXL/CalculationChain.html +1 -1
- data/rdoc/RubyXL/CalculationChainCell.html +1 -1
- data/rdoc/RubyXL/CalculationProperties.html +1 -1
- data/rdoc/RubyXL/Cell.html +1 -1
- data/rdoc/RubyXL/CellConvenienceMethods.html +28 -28
- data/rdoc/RubyXL/CellExt.html +1 -1
- data/rdoc/RubyXL/CellSmartTag.html +1 -1
- data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
- data/rdoc/RubyXL/CellSmartTags.html +1 -1
- data/rdoc/RubyXL/CellStyle.html +1 -1
- data/rdoc/RubyXL/CellStyleXFs.html +1 -1
- data/rdoc/RubyXL/CellStyles.html +1 -1
- data/rdoc/RubyXL/CellValue.html +1 -1
- data/rdoc/RubyXL/CellWatch.html +1 -1
- data/rdoc/RubyXL/CellWatches.html +1 -1
- data/rdoc/RubyXL/CellXFs.html +1 -1
- data/rdoc/RubyXL/ChartColorsFile.html +1 -1
- data/rdoc/RubyXL/ChartFile.html +2 -2
- data/rdoc/RubyXL/ChartStyleFile.html +1 -1
- data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
- data/rdoc/RubyXL/Chartsheet.html +1 -1
- data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
- data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
- data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
- data/rdoc/RubyXL/ChartsheetView.html +1 -1
- data/rdoc/RubyXL/ChartsheetViews.html +1 -1
- data/rdoc/RubyXL/Color.html +1 -1
- data/rdoc/RubyXL/ColorFilter.html +1 -1
- data/rdoc/RubyXL/ColorScale.html +1 -1
- data/rdoc/RubyXL/ColorSet.html +1 -1
- data/rdoc/RubyXL/Colors.html +1 -1
- data/rdoc/RubyXL/ColumnRange.html +1 -1
- data/rdoc/RubyXL/ColumnRanges.html +1 -1
- data/rdoc/RubyXL/Comment.html +1 -1
- data/rdoc/RubyXL/CommentList.html +1 -1
- data/rdoc/RubyXL/CommentsFile.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
- data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
- data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
- data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
- data/rdoc/RubyXL/ContentTypes.html +1 -1
- data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
- data/rdoc/RubyXL/CorePropertiesFile.html +1 -1
- data/rdoc/RubyXL/CustomColor.html +1 -1
- data/rdoc/RubyXL/CustomColorList.html +1 -1
- data/rdoc/RubyXL/CustomFilter.html +1 -1
- data/rdoc/RubyXL/CustomFilters.html +1 -1
- data/rdoc/RubyXL/CustomGeometry.html +1 -1
- data/rdoc/RubyXL/CustomProperties.html +1 -1
- data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
- data/rdoc/RubyXL/CustomProperty.html +1 -1
- data/rdoc/RubyXL/CustomSheetView.html +1 -1
- data/rdoc/RubyXL/CustomSheetViews.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
- data/rdoc/RubyXL/CustomXMLFile.html +1 -1
- data/rdoc/RubyXL/DXF.html +1 -1
- data/rdoc/RubyXL/DXFs.html +1 -1
- data/rdoc/RubyXL/DataBar.html +1 -1
- data/rdoc/RubyXL/DataConsolidate.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
- data/rdoc/RubyXL/DataType.html +1 -1
- data/rdoc/RubyXL/DataValidation.html +1 -1
- data/rdoc/RubyXL/DataValidations.html +1 -1
- data/rdoc/RubyXL/DateGroupItem.html +1 -1
- data/rdoc/RubyXL/DefinedName.html +1 -1
- data/rdoc/RubyXL/DefinedNameExt.html +1 -1
- data/rdoc/RubyXL/DefinedNames.html +1 -1
- data/rdoc/RubyXL/DefinedNamesExt.html +1 -1
- data/rdoc/RubyXL/DocumentPropertiesFile.html +1 -1
- data/rdoc/RubyXL/DrawingFile.html +2 -2
- data/rdoc/RubyXL/DynamicFilter.html +1 -1
- data/rdoc/RubyXL/EmbeddedControl.html +1 -1
- data/rdoc/RubyXL/EmbeddedControls.html +1 -1
- data/rdoc/RubyXL/Extension.html +1 -1
- data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/Extents.html +1 -1
- data/rdoc/RubyXL/ExternalBook.html +1 -1
- data/rdoc/RubyXL/ExternalLinksFile.html +1 -1
- data/rdoc/RubyXL/ExternalReference.html +1 -1
- data/rdoc/RubyXL/ExternalReferences.html +1 -1
- data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
- data/rdoc/RubyXL/FieldItem.html +1 -1
- data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
- data/rdoc/RubyXL/FileSharing.html +1 -1
- data/rdoc/RubyXL/FileVersion.html +1 -1
- data/rdoc/RubyXL/Fill.html +1 -1
- data/rdoc/RubyXL/Fills.html +1 -1
- data/rdoc/RubyXL/FilterContainer.html +1 -1
- data/rdoc/RubyXL/FloatNode.html +1 -1
- data/rdoc/RubyXL/FloatValue.html +1 -1
- data/rdoc/RubyXL/Font.html +1 -1
- data/rdoc/RubyXL/FontScheme.html +1 -1
- data/rdoc/RubyXL/Fonts.html +1 -1
- data/rdoc/RubyXL/Formula.html +1 -1
- data/rdoc/RubyXL/FunctionGroup.html +1 -1
- data/rdoc/RubyXL/FunctionGroups.html +1 -1
- data/rdoc/RubyXL/GenericStorageObject.html +3 -2
- data/rdoc/RubyXL/GradientFill.html +1 -1
- data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
- data/rdoc/RubyXL/Hyperlink.html +1 -1
- data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
- data/rdoc/RubyXL/Hyperlinks.html +1 -1
- data/rdoc/RubyXL/IconFilter.html +1 -1
- data/rdoc/RubyXL/IconSet.html +1 -1
- data/rdoc/RubyXL/IgnoredError.html +1 -1
- data/rdoc/RubyXL/IgnoredErrors.html +1 -1
- data/rdoc/RubyXL/IndexedColors.html +1 -1
- data/rdoc/RubyXL/InputCells.html +1 -1
- data/rdoc/RubyXL/IntegerNode.html +1 -1
- data/rdoc/RubyXL/IntegerValue.html +1 -1
- data/rdoc/RubyXL/LegacyCell.html +1 -1
- data/rdoc/RubyXL/LegacyWorksheet.html +1 -266
- data/rdoc/RubyXL/MRUColors.html +1 -1
- data/rdoc/RubyXL/MacrosFile.html +1 -1
- data/rdoc/RubyXL/MergedCell.html +1 -1
- data/rdoc/RubyXL/MergedCells.html +1 -1
- data/rdoc/RubyXL/NumFmt.html +1 -1
- data/rdoc/RubyXL/NumberFormat.html +1 -1
- data/rdoc/RubyXL/NumberFormats.html +1 -1
- data/rdoc/RubyXL/OLEObject.html +1 -1
- data/rdoc/RubyXL/OLEObjectFile.html +1 -1
- data/rdoc/RubyXL/OLEObjects.html +1 -1
- data/rdoc/RubyXL/OLESize.html +1 -1
- data/rdoc/RubyXL/OOXMLContainerObject.html +1 -1
- data/rdoc/RubyXL/OOXMLObject.html +1 -1
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +1 -1
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +1 -1
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +1 -1
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +4 -3
- data/rdoc/RubyXL/Offset.html +1 -1
- data/rdoc/RubyXL/OutlineProperties.html +1 -1
- data/rdoc/RubyXL/PageMargins.html +1 -1
- data/rdoc/RubyXL/PageSetup.html +1 -1
- data/rdoc/RubyXL/PageSetupProperties.html +1 -1
- data/rdoc/RubyXL/Pane.html +1 -1
- data/rdoc/RubyXL/Parser.html +1 -1
- data/rdoc/RubyXL/PatternFill.html +1 -1
- data/rdoc/RubyXL/PhoneticProperties.html +1 -1
- data/rdoc/RubyXL/PhoneticRun.html +1 -1
- data/rdoc/RubyXL/PivotArea.html +1 -1
- data/rdoc/RubyXL/PivotCache.html +1 -1
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +1 -1
- data/rdoc/RubyXL/PivotCaches.html +1 -1
- data/rdoc/RubyXL/PivotReference.html +1 -1
- data/rdoc/RubyXL/PivotReferences.html +1 -1
- data/rdoc/RubyXL/PivotTableFile.html +1 -1
- data/rdoc/RubyXL/PivotTableSelection.html +1 -1
- data/rdoc/RubyXL/PresetGeometry.html +1 -1
- data/rdoc/RubyXL/PrintOptions.html +1 -1
- data/rdoc/RubyXL/PrinterSettingsFile.html +1 -1
- data/rdoc/RubyXL/ProtectedRange.html +1 -1
- data/rdoc/RubyXL/ProtectedRanges.html +1 -1
- data/rdoc/RubyXL/Protection.html +1 -1
- data/rdoc/RubyXL/RID.html +1 -1
- data/rdoc/RubyXL/RawOOXML.html +1 -1
- data/rdoc/RubyXL/Reference.html +1 -1
- data/rdoc/RubyXL/Relationship.html +1 -1
- data/rdoc/RubyXL/RelationshipSupport.html +1 -1
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +1 -1
- data/rdoc/RubyXL/RichText.html +1 -1
- data/rdoc/RubyXL/RichTextRun.html +1 -1
- data/rdoc/RubyXL/Row.html +1 -1
- data/rdoc/RubyXL/RowExt.html +1 -1
- data/rdoc/RubyXL/RunProperties.html +1 -1
- data/rdoc/RubyXL/Scenario.html +1 -1
- data/rdoc/RubyXL/Scenarios.html +1 -1
- data/rdoc/RubyXL/Selection.html +1 -1
- data/rdoc/RubyXL/ShapeGuide.html +1 -1
- data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
- data/rdoc/RubyXL/SharedStringsTable.html +1 -1
- data/rdoc/RubyXL/Sheet.html +1 -1
- data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
- data/rdoc/RubyXL/SheetData.html +1 -1
- data/rdoc/RubyXL/SheetDataExt.html +1 -1
- data/rdoc/RubyXL/SheetDataSet.html +1 -1
- data/rdoc/RubyXL/SheetName.html +1 -1
- data/rdoc/RubyXL/SheetNames.html +1 -1
- data/rdoc/RubyXL/Sheets.html +1 -1
- data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
- data/rdoc/RubyXL/SlicerFile.html +1 -1
- data/rdoc/RubyXL/SmartTagProperties.html +1 -1
- data/rdoc/RubyXL/SmartTagType.html +1 -1
- data/rdoc/RubyXL/SmartTagTypes.html +1 -1
- data/rdoc/RubyXL/SmartTags.html +1 -1
- data/rdoc/RubyXL/SortCondition.html +1 -1
- data/rdoc/RubyXL/SortState.html +1 -1
- data/rdoc/RubyXL/Sqref.html +1 -1
- data/rdoc/RubyXL/Stop.html +1 -1
- data/rdoc/RubyXL/StringNode.html +1 -1
- data/rdoc/RubyXL/StringNodeW3C.html +1 -1
- data/rdoc/RubyXL/StringValue.html +1 -1
- data/rdoc/RubyXL/Stylesheet.html +1 -1
- data/rdoc/RubyXL/TableFile.html +1 -1
- data/rdoc/RubyXL/TableParts.html +1 -1
- data/rdoc/RubyXL/TableStyle.html +1 -1
- data/rdoc/RubyXL/TableStyles.html +1 -1
- data/rdoc/RubyXL/Text.html +1 -1
- data/rdoc/RubyXL/Theme.html +1 -1
- data/rdoc/RubyXL/ThemeElements.html +1 -1
- data/rdoc/RubyXL/ThumbnailFile.html +1 -1
- data/rdoc/RubyXL/Top10.html +1 -1
- data/rdoc/RubyXL/VMLDrawingFile.html +1 -1
- data/rdoc/RubyXL/Variant.html +1 -1
- data/rdoc/RubyXL/Vector.html +1 -1
- data/rdoc/RubyXL/VectorValue.html +1 -1
- data/rdoc/RubyXL/VisualProperties.html +1 -1
- data/rdoc/RubyXL/WebPublishObject.html +1 -1
- data/rdoc/RubyXL/WebPublishObjects.html +1 -1
- data/rdoc/RubyXL/WebPublishingItem.html +1 -1
- data/rdoc/RubyXL/WebPublishingItems.html +1 -1
- data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
- data/rdoc/RubyXL/Workbook.html +1 -1
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +1 -1
- data/rdoc/RubyXL/WorkbookProperties.html +1 -1
- data/rdoc/RubyXL/WorkbookProtection.html +1 -1
- data/rdoc/RubyXL/WorkbookRoot.html +2 -2
- data/rdoc/RubyXL/WorkbookView.html +1 -1
- data/rdoc/RubyXL/WorkbookViews.html +1 -1
- data/rdoc/RubyXL/Worksheet.html +1 -1
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +591 -58
- data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
- data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProtection.html +1 -1
- data/rdoc/RubyXL/WorksheetView.html +1 -1
- data/rdoc/RubyXL/WorksheetViews.html +1 -1
- data/rdoc/RubyXL/XF.html +1 -1
- data/rdoc/created.rid +8 -8
- data/rdoc/index.html +2 -2
- 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 +188 -153
- data/rubyXL.gemspec +2 -2
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.3.
|
1
|
+
3.3.15
|
@@ -183,6 +183,13 @@ module RubyXL
|
|
183
183
|
|
184
184
|
|
185
185
|
module WorksheetConvenienceMethods
|
186
|
+
NAME = 0
|
187
|
+
SIZE = 1
|
188
|
+
COLOR = 2
|
189
|
+
ITALICS = 3
|
190
|
+
BOLD = 4
|
191
|
+
UNDERLINE = 5
|
192
|
+
STRIKETHROUGH = 6
|
186
193
|
|
187
194
|
def insert_cell(row = 0, col = 0, data = nil, formula = nil, shift = nil)
|
188
195
|
validate_workbook
|
@@ -232,6 +239,109 @@ module RubyXL
|
|
232
239
|
return old_cell
|
233
240
|
end
|
234
241
|
|
242
|
+
# Inserts row at row_index, pushes down, copies style from the row above (that's what Excel 2013 does!)
|
243
|
+
# NOTE: use of this method will break formulas which reference cells which are being "pushed down"
|
244
|
+
def insert_row(row_index = 0)
|
245
|
+
validate_workbook
|
246
|
+
ensure_cell_exists(row_index)
|
247
|
+
|
248
|
+
old_row = new_cells = nil
|
249
|
+
|
250
|
+
if row_index > 0 then
|
251
|
+
old_row = sheet_data.rows[row_index - 1]
|
252
|
+
if old_row then
|
253
|
+
new_cells = old_row.cells.collect { |c|
|
254
|
+
if c.nil? then nil
|
255
|
+
else nc = RubyXL::Cell.new(:style_index => c.style_index)
|
256
|
+
nc.worksheet = self
|
257
|
+
nc
|
258
|
+
end
|
259
|
+
}
|
260
|
+
end
|
261
|
+
end
|
262
|
+
|
263
|
+
row0 = sheet_data.rows[0]
|
264
|
+
new_cells ||= Array.new((row0 && row0.cells.size) || 0)
|
265
|
+
|
266
|
+
sheet_data.rows.insert(row_index, nil)
|
267
|
+
new_row = add_row(row_index, :cells => new_cells, :style_index => old_row && old_row.style_index)
|
268
|
+
|
269
|
+
# Update row values for all rows below
|
270
|
+
row_index.upto(sheet_data.rows.size - 1) { |i|
|
271
|
+
row = sheet_data.rows[i]
|
272
|
+
next if row.nil?
|
273
|
+
row.cells.each { |c| c.row = i unless c.nil? }
|
274
|
+
}
|
275
|
+
|
276
|
+
return new_row
|
277
|
+
end
|
278
|
+
|
279
|
+
def delete_row(row_index=0)
|
280
|
+
validate_workbook
|
281
|
+
validate_nonnegative(row_index)
|
282
|
+
|
283
|
+
deleted = sheet_data.rows.delete_at(row_index)
|
284
|
+
|
285
|
+
# Update row number of each cell
|
286
|
+
row_index.upto(sheet_data.size - 1) { |index|
|
287
|
+
row = sheet_data[index]
|
288
|
+
row && row.cells.each{ |c| c.row -= 1 unless c.nil? }
|
289
|
+
}
|
290
|
+
|
291
|
+
return deleted
|
292
|
+
end
|
293
|
+
|
294
|
+
# Inserts column at +column_index+, pushes everything right, takes styles from column to left
|
295
|
+
# NOTE: use of this method will break formulas which reference cells which are being "pushed right"
|
296
|
+
def insert_column(column_index = 0)
|
297
|
+
validate_workbook
|
298
|
+
ensure_cell_exists(0, column_index)
|
299
|
+
|
300
|
+
old_range = cols.get_range(column_index)
|
301
|
+
|
302
|
+
#go through each cell in column
|
303
|
+
sheet_data.rows.each_with_index { |row, row_index|
|
304
|
+
old_cell = row[column_index]
|
305
|
+
c = nil
|
306
|
+
|
307
|
+
if old_cell && old_cell.style_index != 0 &&
|
308
|
+
old_range && old_range.style_index != old_cell.style_index then
|
309
|
+
|
310
|
+
c = RubyXL::Cell.new(:style_index => old_cell.style_index, :worksheet => self,
|
311
|
+
:row => row_index, :column => column_index,
|
312
|
+
:datatype => RubyXL::DataType::SHARED_STRING)
|
313
|
+
end
|
314
|
+
|
315
|
+
row.insert_cell_shift_right(c, column_index)
|
316
|
+
}
|
317
|
+
|
318
|
+
cols.insert_column(column_index)
|
319
|
+
|
320
|
+
# TODO: update column numbers
|
321
|
+
end
|
322
|
+
|
323
|
+
def delete_column(column_index = 0)
|
324
|
+
validate_workbook
|
325
|
+
validate_nonnegative(column_index)
|
326
|
+
|
327
|
+
#delete column
|
328
|
+
sheet_data.rows.each { |row| row.cells.delete_at(column_index) }
|
329
|
+
|
330
|
+
# Change column numbers for cells to the right of the deleted column
|
331
|
+
sheet_data.rows.each_with_index { |row, row_index|
|
332
|
+
row.cells.each_with_index { |c, column_index|
|
333
|
+
c.column = column_index if c.is_a?(Cell)
|
334
|
+
}
|
335
|
+
}
|
336
|
+
|
337
|
+
cols.each { |range| range.delete_column(column_index) }
|
338
|
+
end
|
339
|
+
|
340
|
+
def get_row_style(row_index)
|
341
|
+
row = sheet_data.rows[row_index]
|
342
|
+
(row && row.style_index) || 0
|
343
|
+
end
|
344
|
+
|
235
345
|
def get_row_fill(row = 0)
|
236
346
|
(row = sheet_data.rows[row]) && row.get_fill_color
|
237
347
|
end
|
@@ -275,15 +385,17 @@ module RubyXL
|
|
275
385
|
|
276
386
|
def get_row_border(row, border_direction)
|
277
387
|
validate_workbook
|
278
|
-
validate_nonnegative(row)
|
279
388
|
|
280
389
|
border = @workbook.borders[get_row_xf(row).border_id]
|
281
390
|
border && border.get_edge_style(border_direction)
|
282
391
|
end
|
283
392
|
|
393
|
+
def row_font(row)
|
394
|
+
(row = sheet_data.rows[row]) && row.get_font
|
395
|
+
end
|
396
|
+
|
284
397
|
def get_row_alignment(row, is_horizontal)
|
285
398
|
validate_workbook
|
286
|
-
validate_nonnegative(row)
|
287
399
|
|
288
400
|
xf_obj = get_row_xf(row)
|
289
401
|
return nil if xf_obj.alignment.nil?
|
@@ -303,6 +415,12 @@ module RubyXL
|
|
303
415
|
return get_row_alignment(row, false)
|
304
416
|
end
|
305
417
|
|
418
|
+
def get_cols_style_index(column_index)
|
419
|
+
validate_nonnegative(column_index)
|
420
|
+
range = cols.locate_range(column_index)
|
421
|
+
(range && range.style_index) || 0
|
422
|
+
end
|
423
|
+
|
306
424
|
def get_column_font_name(col = 0)
|
307
425
|
font = column_font(col)
|
308
426
|
font && font.get_name
|
@@ -355,6 +473,12 @@ module RubyXL
|
|
355
473
|
(width - (5.0 / RubyXL::Font::MAX_DIGIT_WIDTH)).round
|
356
474
|
end
|
357
475
|
|
476
|
+
# Helper method to get the style index for a column
|
477
|
+
def get_col_style(column_index)
|
478
|
+
range = cols.locate_range(column_index)
|
479
|
+
(range && range.style_index) || 0
|
480
|
+
end
|
481
|
+
|
358
482
|
def get_column_fill(col=0)
|
359
483
|
validate_workbook
|
360
484
|
validate_nonnegative(col)
|
@@ -364,16 +488,20 @@ module RubyXL
|
|
364
488
|
|
365
489
|
def get_column_border(col, border_direction)
|
366
490
|
validate_workbook
|
367
|
-
validate_nonnegative(col)
|
368
491
|
|
369
492
|
xf = @workbook.cell_xfs[get_cols_style_index(col)]
|
370
493
|
border = @workbook.borders[xf.border_id]
|
371
494
|
border && border.get_edge_style(border_direction)
|
372
495
|
end
|
373
496
|
|
497
|
+
def column_font(col)
|
498
|
+
validate_workbook
|
499
|
+
|
500
|
+
@workbook.fonts[@workbook.cell_xfs[get_cols_style_index(col)].font_id]
|
501
|
+
end
|
502
|
+
|
374
503
|
def get_column_alignment(col, type)
|
375
504
|
validate_workbook
|
376
|
-
validate_nonnegative(col)
|
377
505
|
|
378
506
|
xf = @workbook.cell_xfs[get_cols_style_index(col)]
|
379
507
|
xf.alignment && xf.alignment.send(type)
|
@@ -411,6 +539,19 @@ module RubyXL
|
|
411
539
|
sheet_data[row_index].cells.each { |c| c.change_fill(rgb) unless c.nil? }
|
412
540
|
end
|
413
541
|
|
542
|
+
# Helper method to update the row styles array
|
543
|
+
# change_type - NAME or SIZE or COLOR etc
|
544
|
+
# main method to change font, called from each separate font mutator method
|
545
|
+
def change_row_font(row_index, change_type, arg, font)
|
546
|
+
validate_workbook
|
547
|
+
ensure_cell_exists(row_index)
|
548
|
+
|
549
|
+
xf = workbook.register_new_font(font, get_row_xf(row_index))
|
550
|
+
row = sheet_data[row_index]
|
551
|
+
row.style_index = workbook.register_new_xf(xf)
|
552
|
+
row.cells.each { |c| c.font_switch(change_type, arg) unless c.nil? }
|
553
|
+
end
|
554
|
+
|
414
555
|
def change_row_font_name(row = 0, font_name = 'Verdana')
|
415
556
|
ensure_cell_exists(row)
|
416
557
|
font = row_font(row).dup
|
@@ -470,6 +611,21 @@ module RubyXL
|
|
470
611
|
c.custom_height = true
|
471
612
|
end
|
472
613
|
|
614
|
+
# Helper method to update the fonts and cell styles array
|
615
|
+
# main method to change font, called from each separate font mutator method
|
616
|
+
def change_column_font(column_index, change_type, arg, font, xf)
|
617
|
+
validate_workbook
|
618
|
+
ensure_cell_exists(0, column_index)
|
619
|
+
|
620
|
+
xf = workbook.register_new_font(font, xf)
|
621
|
+
cols.get_range(column_index).style_index = workbook.register_new_xf(xf)
|
622
|
+
|
623
|
+
sheet_data.rows.each { |row|
|
624
|
+
c = row && row[column_index]
|
625
|
+
c.font_switch(change_type, arg) unless c.nil?
|
626
|
+
}
|
627
|
+
end
|
628
|
+
|
473
629
|
def change_column_font_name(column_index = 0, font_name = 'Verdana')
|
474
630
|
xf = get_col_xf(column_index)
|
475
631
|
font = @workbook.fonts[xf.font_id].dup
|
@@ -443,9 +443,10 @@ module RubyXL
|
|
443
443
|
# * +zipfile+ - ::Zip::File to which the resulting XNMML should be added.
|
444
444
|
def add_to_zip(zip_stream)
|
445
445
|
xml_string = write_xml
|
446
|
-
return if xml_string.empty?
|
446
|
+
return false if xml_string.empty?
|
447
447
|
zip_stream.put_next_entry(RubyXL::from_root(self.xlsx_path))
|
448
448
|
zip_stream.write(xml_string)
|
449
|
+
true
|
449
450
|
end
|
450
451
|
|
451
452
|
def file_index
|
data/lib/rubyXL/objects/root.rb
CHANGED
@@ -46,7 +46,7 @@ module RubyXL
|
|
46
46
|
|
47
47
|
self.rels_hash.keys.sort_by{ |c| c::SAVE_ORDER }.each { |klass|
|
48
48
|
puts "<-- DEBUG: saving related #{klass} files" if @@debug
|
49
|
-
self.rels_hash[klass].
|
49
|
+
self.rels_hash[klass].select! { |obj|
|
50
50
|
puts "<-- DEBUG: > #{obj.xlsx_path}" if @@debug
|
51
51
|
obj.add_to_zip(zipstream)
|
52
52
|
}
|
@@ -189,11 +189,11 @@ module RubyXL
|
|
189
189
|
|
190
190
|
# http://www.schemacentral.com/sc/ooxml/e-ssml_iconSet-1.html
|
191
191
|
class IconSet < OOXMLObject
|
192
|
-
define_attribute(:
|
193
|
-
define_attribute(:showValue, :bool,
|
194
|
-
define_attribute(:percent, :bool,
|
195
|
-
define_attribute(:reverse, :bool,
|
196
|
-
define_child_node(RubyXL::ConditionalFormatValue, :collection =>
|
192
|
+
define_attribute(:iconSet, RubyXL::ST_IconSetType, :default => '3TrafficLights1')
|
193
|
+
define_attribute(:showValue, :bool, :default => true)
|
194
|
+
define_attribute(:percent, :bool, :default => true)
|
195
|
+
define_attribute(:reverse, :bool, :default => false)
|
196
|
+
define_child_node(RubyXL::ConditionalFormatValue, :collection => [2..-1], :accessor => :cfvo)
|
197
197
|
define_element_name 'iconSet'
|
198
198
|
end
|
199
199
|
|
data/lib/rubyXL/worksheet.rb
CHANGED
@@ -107,124 +107,8 @@ module LegacyWorksheet
|
|
107
107
|
c
|
108
108
|
end
|
109
109
|
|
110
|
-
def delete_row(row_index=0)
|
111
|
-
validate_workbook
|
112
|
-
validate_nonnegative(row_index)
|
113
|
-
|
114
|
-
deleted = sheet_data.rows.delete_at(row_index)
|
115
|
-
|
116
|
-
# Change cell row numbers
|
117
|
-
row_index.upto(sheet_data.size - 1) { |index|
|
118
|
-
sheet_data[index].cells.each{ |c| c.row -= 1 unless c.nil? }
|
119
|
-
}
|
120
|
-
|
121
|
-
return deleted
|
122
|
-
end
|
123
|
-
|
124
|
-
# Inserts row at row_index, pushes down, copies style from the row above (that's what Excel 2013 does!)
|
125
|
-
# NOTE: use of this method will break formulas which reference cells which are being "pushed down"
|
126
|
-
def insert_row(row_index = 0)
|
127
|
-
validate_workbook
|
128
|
-
ensure_cell_exists(row_index)
|
129
|
-
|
130
|
-
old_row = new_cells = nil
|
131
|
-
|
132
|
-
if row_index > 0 then
|
133
|
-
old_row = sheet_data.rows[row_index - 1]
|
134
|
-
if old_row then
|
135
|
-
new_cells = old_row.cells.collect { |c|
|
136
|
-
if c.nil? then nil
|
137
|
-
else nc = RubyXL::Cell.new(:style_index => c.style_index)
|
138
|
-
nc.worksheet = self
|
139
|
-
nc
|
140
|
-
end
|
141
|
-
}
|
142
|
-
end
|
143
|
-
end
|
144
|
-
|
145
|
-
row0 = sheet_data.rows[0]
|
146
|
-
new_cells ||= Array.new((row0 && row0.cells.size) || 0)
|
147
|
-
|
148
|
-
sheet_data.rows.insert(row_index, nil)
|
149
|
-
new_row = add_row(row_index, :cells => new_cells, :style_index => old_row && old_row.style_index)
|
150
|
-
|
151
|
-
# Update row values for all rows below
|
152
|
-
row_index.upto(sheet_data.rows.size - 1) { |i|
|
153
|
-
row = sheet_data.rows[i]
|
154
|
-
next if row.nil?
|
155
|
-
row.cells.each { |c| c.row = i unless c.nil? }
|
156
|
-
}
|
157
|
-
|
158
|
-
return new_row
|
159
|
-
end
|
160
|
-
|
161
|
-
def delete_column(column_index = 0)
|
162
|
-
validate_workbook
|
163
|
-
validate_nonnegative(column_index)
|
164
|
-
|
165
|
-
#delete column
|
166
|
-
sheet_data.rows.each { |row| row.cells.delete_at(column_index) }
|
167
|
-
|
168
|
-
# Change column numbers for cells to the right of the deleted column
|
169
|
-
sheet_data.rows.each_with_index { |row, row_index|
|
170
|
-
row.cells.each_with_index { |c, column_index|
|
171
|
-
c.column = column_index if c.is_a?(Cell)
|
172
|
-
}
|
173
|
-
}
|
174
|
-
|
175
|
-
cols.each { |range| range.delete_column(column_index) }
|
176
|
-
end
|
177
|
-
|
178
|
-
# Inserts column at +column_index+, pushes everything right, takes styles from column to left
|
179
|
-
# NOTE: use of this method will break formulas which reference cells which are being "pushed right"
|
180
|
-
def insert_column(column_index = 0)
|
181
|
-
validate_workbook
|
182
|
-
ensure_cell_exists(0, column_index)
|
183
|
-
|
184
|
-
old_range = cols.get_range(column_index)
|
185
|
-
|
186
|
-
#go through each cell in column
|
187
|
-
sheet_data.rows.each_with_index { |row, row_index|
|
188
|
-
old_cell = row[column_index]
|
189
|
-
c = nil
|
190
|
-
|
191
|
-
if old_cell && old_cell.style_index != 0 &&
|
192
|
-
old_range && old_range.style_index != old_cell.style_index then
|
193
|
-
|
194
|
-
c = RubyXL::Cell.new(:style_index => old_cell.style_index, :worksheet => self,
|
195
|
-
:row => row_index, :column => column_index,
|
196
|
-
:datatype => RubyXL::DataType::SHARED_STRING)
|
197
|
-
end
|
198
|
-
|
199
|
-
row.insert_cell_shift_right(c, column_index)
|
200
|
-
}
|
201
|
-
|
202
|
-
cols.insert_column(column_index)
|
203
|
-
|
204
|
-
# TODO: update column numbers
|
205
|
-
end
|
206
|
-
|
207
110
|
private
|
208
111
|
|
209
|
-
NAME = 0
|
210
|
-
SIZE = 1
|
211
|
-
COLOR = 2
|
212
|
-
ITALICS = 3
|
213
|
-
BOLD = 4
|
214
|
-
UNDERLINE = 5
|
215
|
-
STRIKETHROUGH = 6
|
216
|
-
|
217
|
-
def row_font(row)
|
218
|
-
(row = sheet_data.rows[row]) && row.get_font
|
219
|
-
end
|
220
|
-
|
221
|
-
def column_font(col)
|
222
|
-
validate_workbook
|
223
|
-
validate_nonnegative(col)
|
224
|
-
|
225
|
-
@workbook.fonts[@workbook.cell_xfs[get_cols_style_index(col)].font_id]
|
226
|
-
end
|
227
|
-
|
228
112
|
#validates Workbook, ensures that this worksheet is in @workbook
|
229
113
|
def validate_workbook()
|
230
114
|
unless @workbook.nil? || @workbook.worksheets.nil?
|
@@ -234,39 +118,6 @@ module LegacyWorksheet
|
|
234
118
|
raise "This worksheet #{self} is not in workbook #{@workbook}"
|
235
119
|
end
|
236
120
|
|
237
|
-
def get_cols_style_index(column_index)
|
238
|
-
range = cols.locate_range(column_index)
|
239
|
-
(range && range.style_index) || 0
|
240
|
-
end
|
241
|
-
|
242
|
-
# Helper method to update the row styles array
|
243
|
-
# change_type - NAME or SIZE or COLOR etc
|
244
|
-
# main method to change font, called from each separate font mutator method
|
245
|
-
def change_row_font(row_index, change_type, arg, font)
|
246
|
-
validate_workbook
|
247
|
-
ensure_cell_exists(row_index)
|
248
|
-
|
249
|
-
xf = workbook.register_new_font(font, get_row_xf(row_index))
|
250
|
-
row = sheet_data[row_index]
|
251
|
-
row.style_index = workbook.register_new_xf(xf)
|
252
|
-
row.cells.each { |c| c.font_switch(change_type, arg) unless c.nil? }
|
253
|
-
end
|
254
|
-
|
255
|
-
# Helper method to update the fonts and cell styles array
|
256
|
-
# main method to change font, called from each separate font mutator method
|
257
|
-
def change_column_font(column_index, change_type, arg, font, xf)
|
258
|
-
validate_workbook
|
259
|
-
ensure_cell_exists(0, column_index)
|
260
|
-
|
261
|
-
xf = workbook.register_new_font(font, xf)
|
262
|
-
cols.get_range(column_index).style_index = workbook.register_new_xf(xf)
|
263
|
-
|
264
|
-
sheet_data.rows.each { |row|
|
265
|
-
c = row && row[column_index]
|
266
|
-
c.font_switch(change_type, arg) unless c.nil?
|
267
|
-
}
|
268
|
-
end
|
269
|
-
|
270
121
|
# Ensures that cell with +row_index+ and +column_index+ exists in
|
271
122
|
# +sheet_data+ arrays, growing them up if necessary.
|
272
123
|
def ensure_cell_exists(row_index, column_index = 0)
|
@@ -276,22 +127,12 @@ module LegacyWorksheet
|
|
276
127
|
row = sheet_data.rows[row_index] || add_row(row_index)
|
277
128
|
end
|
278
129
|
|
279
|
-
# Helper method to get the style index for a column
|
280
|
-
def get_col_style(column_index)
|
281
|
-
range = cols.locate_range(column_index)
|
282
|
-
(range && range.style_index) || 0
|
283
|
-
end
|
284
|
-
|
285
|
-
def get_row_style(row_index)
|
286
|
-
row = sheet_data.rows[row_index]
|
287
|
-
(row && row.style_index) || 0
|
288
|
-
end
|
289
|
-
|
290
130
|
def get_col_xf(column_index)
|
291
131
|
@workbook.cell_xfs[get_col_style(column_index)]
|
292
132
|
end
|
293
133
|
|
294
134
|
def get_row_xf(row)
|
135
|
+
validate_nonnegative(row)
|
295
136
|
@workbook.cell_xfs[get_row_style(row)]
|
296
137
|
end
|
297
138
|
|