rubyXL 3.4.12 → 3.4.25
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 +8 -8
- data/Gemfile.lock +82 -50
- data/README.rdoc +26 -9
- data/Rakefile +26 -27
- data/VERSION +1 -1
- data/lib/rubyXL/cell.rb +2 -4
- data/lib/rubyXL/convenience_methods/cell.rb +35 -31
- data/lib/rubyXL/convenience_methods/color.rb +6 -8
- data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
- data/lib/rubyXL/convenience_methods/worksheet.rb +77 -1
- data/lib/rubyXL/objects/border.rb +0 -3
- data/lib/rubyXL/objects/calculation_chain.rb +2 -2
- data/lib/rubyXL/objects/cell_style.rb +1 -3
- data/lib/rubyXL/objects/chartsheet.rb +6 -10
- data/lib/rubyXL/objects/color.rb +1 -3
- data/lib/rubyXL/objects/column_range.rb +0 -3
- data/lib/rubyXL/objects/comments.rb +1 -4
- data/lib/rubyXL/objects/connection.rb +11 -11
- data/lib/rubyXL/objects/container_nodes.rb +1 -5
- data/lib/rubyXL/objects/content_types.rb +3 -6
- data/lib/rubyXL/objects/data_validation.rb +2 -2
- data/lib/rubyXL/objects/document_properties.rb +9 -13
- data/lib/rubyXL/objects/extensions.rb +0 -2
- data/lib/rubyXL/objects/external_links.rb +29 -7
- data/lib/rubyXL/objects/fill.rb +2 -5
- data/lib/rubyXL/objects/filters.rb +5 -7
- data/lib/rubyXL/objects/font.rb +2 -4
- data/lib/rubyXL/objects/formula.rb +3 -5
- data/lib/rubyXL/objects/ooxml_object.rb +18 -18
- data/lib/rubyXL/objects/query_table.rb +3 -3
- data/lib/rubyXL/objects/reference.rb +6 -8
- data/lib/rubyXL/objects/relationships.rb +6 -11
- data/lib/rubyXL/objects/root.rb +0 -2
- data/lib/rubyXL/objects/shared_strings.rb +3 -6
- data/lib/rubyXL/objects/sheet_common.rb +1 -3
- data/lib/rubyXL/objects/sheet_data.rb +6 -8
- data/lib/rubyXL/objects/simple_types.rb +3 -1
- data/lib/rubyXL/objects/storage.rb +51 -50
- data/lib/rubyXL/objects/stylesheet.rb +8 -15
- data/lib/rubyXL/objects/text.rb +5 -7
- data/lib/rubyXL/objects/theme.rb +5 -8
- data/lib/rubyXL/objects/workbook.rb +35 -31
- data/lib/rubyXL/objects/worksheet.rb +33 -29
- data/lib/rubyXL/parser.rb +1 -3
- data/lib/rubyXL/worksheet.rb +83 -84
- data/lib/rubyXL.rb +0 -1
- data/rdoc/README_rdoc.html +42 -28
- data/rdoc/RubyXL/AExtension.html +9 -49
- data/rdoc/RubyXL/AExtensionStorageArea.html +5 -12
- data/rdoc/RubyXL/ActiveX.html +12 -41
- data/rdoc/RubyXL/ActiveXBinary.html +5 -17
- data/rdoc/RubyXL/AdjustHandleList.html +5 -12
- data/rdoc/RubyXL/Alignment.html +5 -12
- data/rdoc/RubyXL/AlternateContent.html +5 -12
- data/rdoc/RubyXL/Authors.html +5 -12
- data/rdoc/RubyXL/AutoFilter.html +5 -12
- data/rdoc/RubyXL/AutoFilterColumn.html +5 -12
- data/rdoc/RubyXL/BinaryImageFile.html +5 -20
- data/rdoc/RubyXL/BodyProperties.html +5 -12
- data/rdoc/RubyXL/BooleanNode.html +5 -12
- data/rdoc/RubyXL/BooleanValue.html +5 -12
- data/rdoc/RubyXL/Border.html +12 -72
- data/rdoc/RubyXL/BorderEdge.html +10 -44
- data/rdoc/RubyXL/Borders.html +9 -30
- data/rdoc/RubyXL/Break.html +5 -12
- data/rdoc/RubyXL/BreakList.html +5 -12
- data/rdoc/RubyXL/CT_AdjPoint2D.html +5 -12
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +5 -12
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +5 -12
- data/rdoc/RubyXL/CT_Backdrop.html +5 -12
- data/rdoc/RubyXL/CT_Bevel.html +5 -12
- data/rdoc/RubyXL/CT_BiLevelEffect.html +5 -12
- data/rdoc/RubyXL/CT_BlendEffect.html +5 -12
- data/rdoc/RubyXL/CT_Blip.html +5 -12
- data/rdoc/RubyXL/CT_BlipFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_BlurEffect.html +5 -12
- data/rdoc/RubyXL/CT_Camera.html +5 -12
- data/rdoc/RubyXL/CT_Color.html +5 -12
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +5 -12
- data/rdoc/RubyXL/CT_ColorMapping.html +5 -12
- data/rdoc/RubyXL/CT_ColorScheme.html +5 -12
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +5 -12
- data/rdoc/RubyXL/CT_ConnectionSite.html +5 -12
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +5 -12
- data/rdoc/RubyXL/CT_DashStop.html +5 -12
- data/rdoc/RubyXL/CT_DashStopList.html +5 -12
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +5 -12
- data/rdoc/RubyXL/CT_DuotoneEffect.html +5 -12
- data/rdoc/RubyXL/CT_EffectContainer.html +5 -12
- data/rdoc/RubyXL/CT_EffectList.html +5 -12
- data/rdoc/RubyXL/CT_EffectReference.html +5 -12
- data/rdoc/RubyXL/CT_EffectStyleItem.html +5 -12
- data/rdoc/RubyXL/CT_EffectStyleList.html +5 -12
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +5 -12
- data/rdoc/RubyXL/CT_FillEffect.html +5 -12
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +5 -12
- data/rdoc/RubyXL/CT_FillStyleList.html +5 -12
- data/rdoc/RubyXL/CT_FlatText.html +5 -12
- data/rdoc/RubyXL/CT_FontCollection.html +5 -12
- data/rdoc/RubyXL/CT_FontReference.html +5 -12
- data/rdoc/RubyXL/CT_GeomGuideList.html +5 -12
- data/rdoc/RubyXL/CT_GlowEffect.html +5 -12
- data/rdoc/RubyXL/CT_GradientFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_GradientStop.html +5 -12
- data/rdoc/RubyXL/CT_GradientStopList.html +5 -12
- data/rdoc/RubyXL/CT_HSLEffect.html +5 -12
- data/rdoc/RubyXL/CT_HslColor.html +5 -12
- data/rdoc/RubyXL/CT_Hyperlink.html +5 -12
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_LightRig.html +5 -12
- data/rdoc/RubyXL/CT_LineEndProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineProperties.html +5 -12
- data/rdoc/RubyXL/CT_LineStyleList.html +5 -12
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +5 -12
- data/rdoc/RubyXL/CT_LuminanceEffect.html +5 -12
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +5 -12
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_Path2D.html +5 -12
- data/rdoc/RubyXL/CT_Path2DArcTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DList.html +5 -12
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +5 -12
- data/rdoc/RubyXL/CT_Path2DTo.html +5 -12
- data/rdoc/RubyXL/CT_PathShadeProperties.html +5 -12
- data/rdoc/RubyXL/CT_PatternFillProperties.html +5 -12
- data/rdoc/RubyXL/CT_Point3D.html +5 -12
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +5 -12
- data/rdoc/RubyXL/CT_PresetColor.html +5 -12
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +5 -12
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +5 -12
- data/rdoc/RubyXL/CT_PresetTextShape.html +5 -12
- data/rdoc/RubyXL/CT_ReflectionEffect.html +5 -12
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +5 -12
- data/rdoc/RubyXL/CT_RelativeRect.html +5 -12
- data/rdoc/RubyXL/CT_SRgbColor.html +5 -12
- data/rdoc/RubyXL/CT_ScRgbColor.html +5 -12
- data/rdoc/RubyXL/CT_Scene3D.html +5 -12
- data/rdoc/RubyXL/CT_SchemeColor.html +5 -12
- data/rdoc/RubyXL/CT_Shape3D.html +5 -12
- data/rdoc/RubyXL/CT_ShapeStyle.html +5 -12
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +5 -12
- data/rdoc/RubyXL/CT_SphereCoords.html +5 -12
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +5 -12
- data/rdoc/RubyXL/CT_StyleMatrix.html +5 -12
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +5 -12
- data/rdoc/RubyXL/CT_SupplementalFont.html +5 -12
- data/rdoc/RubyXL/CT_SystemColor.html +5 -12
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextBlipBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextCharBullet.html +5 -12
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +5 -12
- data/rdoc/RubyXL/CT_TextFont.html +5 -12
- data/rdoc/RubyXL/CT_TextListStyle.html +5 -12
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +5 -12
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +5 -12
- data/rdoc/RubyXL/CT_TextSpacing.html +5 -12
- data/rdoc/RubyXL/CT_TextTabStop.html +5 -12
- data/rdoc/RubyXL/CT_TextTabStopList.html +5 -12
- data/rdoc/RubyXL/CT_TileInfoProperties.html +5 -12
- data/rdoc/RubyXL/CT_TintEffect.html +5 -12
- data/rdoc/RubyXL/CT_Transform2D.html +5 -12
- data/rdoc/RubyXL/CT_TransformEffect.html +5 -12
- data/rdoc/RubyXL/CT_Vector3D.html +5 -12
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +5 -12
- data/rdoc/RubyXL/CalculationChain.html +8 -37
- data/rdoc/RubyXL/CalculationChainCell.html +5 -12
- data/rdoc/RubyXL/CalculationProperties.html +5 -12
- data/rdoc/RubyXL/Cell.html +26 -228
- data/rdoc/RubyXL/CellConvenienceMethods.html +108 -503
- data/rdoc/RubyXL/CellExt.html +5 -12
- data/rdoc/RubyXL/CellSmartTag.html +5 -12
- data/rdoc/RubyXL/CellSmartTagProperty.html +5 -12
- data/rdoc/RubyXL/CellSmartTags.html +5 -12
- data/rdoc/RubyXL/CellStyle.html +5 -12
- data/rdoc/RubyXL/CellStyleXFs.html +9 -30
- data/rdoc/RubyXL/CellStyles.html +9 -30
- data/rdoc/RubyXL/CellValue.html +9 -30
- data/rdoc/RubyXL/CellWatch.html +5 -12
- data/rdoc/RubyXL/CellWatches.html +5 -12
- data/rdoc/RubyXL/CellXFs.html +10 -33
- data/rdoc/RubyXL/ChartColorsFile.html +5 -20
- data/rdoc/RubyXL/ChartFile.html +11 -43
- data/rdoc/RubyXL/ChartStyleFile.html +5 -20
- data/rdoc/RubyXL/ChartUserShapesFile.html +5 -20
- data/rdoc/RubyXL/Chartsheet.html +11 -60
- data/rdoc/RubyXL/ChartsheetPageSetup.html +5 -12
- data/rdoc/RubyXL/ChartsheetProperties.html +5 -12
- data/rdoc/RubyXL/ChartsheetProtection.html +5 -12
- data/rdoc/RubyXL/ChartsheetView.html +5 -12
- data/rdoc/RubyXL/ChartsheetViews.html +5 -12
- data/rdoc/RubyXL/Color.html +10 -36
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +10 -58
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +18 -78
- data/rdoc/RubyXL/ColorConvenienceClasses.html +3 -9
- data/rdoc/RubyXL/ColorConvenienceMethods.html +7 -27
- data/rdoc/RubyXL/ColorFilter.html +5 -12
- data/rdoc/RubyXL/ColorScale.html +5 -12
- data/rdoc/RubyXL/ColorSet.html +5 -12
- data/rdoc/RubyXL/Colors.html +5 -12
- data/rdoc/RubyXL/ColumnRange.html +11 -63
- data/rdoc/RubyXL/ColumnRanges.html +12 -72
- data/rdoc/RubyXL/Comment.html +5 -12
- data/rdoc/RubyXL/CommentList.html +5 -12
- data/rdoc/RubyXL/CommentsFile.html +9 -43
- data/rdoc/RubyXL/ConditionalFormatValue.html +5 -12
- data/rdoc/RubyXL/ConditionalFormatting.html +5 -12
- data/rdoc/RubyXL/ConditionalFormattingRule.html +5 -12
- data/rdoc/RubyXL/Connection.html +5 -12
- data/rdoc/RubyXL/ConnectionTable.html +5 -12
- data/rdoc/RubyXL/ConnectionTables.html +5 -12
- data/rdoc/RubyXL/ConnectionTextField.html +5 -12
- data/rdoc/RubyXL/ConnectionTextFields.html +5 -12
- data/rdoc/RubyXL/Connections.html +8 -37
- data/rdoc/RubyXL/ContentTypeDefault.html +5 -12
- data/rdoc/RubyXL/ContentTypeOverride.html +5 -12
- data/rdoc/RubyXL/ContentTypes.html +12 -54
- data/rdoc/RubyXL/ControlPropertiesFile.html +7 -17
- data/rdoc/RubyXL/CorePropertiesFile.html +17 -155
- data/rdoc/RubyXL/CustomColor.html +5 -12
- data/rdoc/RubyXL/CustomColorList.html +5 -12
- data/rdoc/RubyXL/CustomFilter.html +5 -12
- data/rdoc/RubyXL/CustomFilters.html +5 -12
- data/rdoc/RubyXL/CustomGeometry.html +5 -12
- data/rdoc/RubyXL/CustomProperties.html +5 -12
- data/rdoc/RubyXL/CustomPropertiesFile.html +5 -20
- data/rdoc/RubyXL/CustomProperty.html +5 -12
- data/rdoc/RubyXL/CustomPropertyFile.html +5 -20
- data/rdoc/RubyXL/CustomSheetView.html +5 -12
- data/rdoc/RubyXL/CustomSheetViews.html +5 -12
- data/rdoc/RubyXL/CustomWorkbookView.html +5 -12
- data/rdoc/RubyXL/CustomWorkbookViews.html +5 -12
- data/rdoc/RubyXL/CustomXMLFile.html +5 -17
- data/rdoc/RubyXL/DXF.html +5 -12
- data/rdoc/RubyXL/DXFs.html +5 -12
- data/rdoc/RubyXL/DataBar.html +5 -12
- data/rdoc/RubyXL/DataConsolidate.html +5 -12
- data/rdoc/RubyXL/DataConsolidationReference.html +5 -12
- data/rdoc/RubyXL/DataConsolidationReferences.html +5 -12
- data/rdoc/RubyXL/DataType.html +3 -32
- data/rdoc/RubyXL/DataValidation.html +5 -12
- data/rdoc/RubyXL/DataValidations.html +5 -12
- data/rdoc/RubyXL/DateGroupItem.html +5 -12
- data/rdoc/RubyXL/DefinedName.html +5 -12
- data/rdoc/RubyXL/DefinedNameExt.html +5 -12
- data/rdoc/RubyXL/DefinedNames.html +5 -12
- data/rdoc/RubyXL/DefinedNamesExt.html +5 -12
- data/rdoc/RubyXL/DocumentPropertiesFile.html +10 -57
- data/rdoc/RubyXL/DrawingFile.html +11 -43
- data/rdoc/RubyXL/DynamicFilter.html +5 -12
- data/rdoc/RubyXL/EmbeddedControl.html +5 -12
- data/rdoc/RubyXL/EmbeddedControls.html +5 -12
- data/rdoc/RubyXL/Extension.html +5 -12
- data/rdoc/RubyXL/ExtensionStorageArea.html +5 -12
- data/rdoc/RubyXL/Extents.html +5 -12
- data/rdoc/RubyXL/ExternalBook.html +5 -12
- data/rdoc/RubyXL/ExternalLinksFile.html +11 -43
- data/rdoc/RubyXL/ExternalReference.html +5 -12
- data/rdoc/RubyXL/ExternalReferences.html +5 -12
- data/rdoc/RubyXL/ExtraColorSchemeList.html +5 -12
- data/rdoc/RubyXL/FieldItem.html +5 -12
- data/rdoc/RubyXL/FileRecoveryProperties.html +5 -12
- data/rdoc/RubyXL/FileSharing.html +5 -12
- data/rdoc/RubyXL/FileVersion.html +5 -12
- data/rdoc/RubyXL/Fill.html +9 -30
- data/rdoc/RubyXL/Fills.html +9 -30
- data/rdoc/RubyXL/FilterContainer.html +5 -12
- data/rdoc/RubyXL/FloatNode.html +5 -12
- data/rdoc/RubyXL/FloatValue.html +5 -12
- data/rdoc/RubyXL/Font.html +11 -37
- data/rdoc/RubyXL/FontConvenienceMethods.html +7 -196
- data/rdoc/RubyXL/FontScheme.html +5 -12
- data/rdoc/RubyXL/Fonts.html +9 -30
- data/rdoc/RubyXL/Formula.html +5 -12
- data/rdoc/RubyXL/FunctionGroup.html +5 -12
- data/rdoc/RubyXL/FunctionGroups.html +5 -12
- data/rdoc/RubyXL/GenericStorageObject.html +12 -76
- data/rdoc/RubyXL/GradientFill.html +5 -12
- data/rdoc/RubyXL/HeaderFooterSettings.html +5 -12
- data/rdoc/RubyXL/Hyperlink.html +5 -12
- data/rdoc/RubyXL/HyperlinkRelFile.html +5 -17
- data/rdoc/RubyXL/Hyperlinks.html +5 -12
- data/rdoc/RubyXL/IconFilter.html +5 -12
- data/rdoc/RubyXL/IconSet.html +5 -12
- data/rdoc/RubyXL/IgnoredError.html +5 -12
- data/rdoc/RubyXL/IgnoredErrors.html +5 -12
- data/rdoc/RubyXL/IndexedColors.html +5 -12
- data/rdoc/RubyXL/InputCells.html +5 -12
- data/rdoc/RubyXL/IntegerNode.html +5 -12
- data/rdoc/RubyXL/IntegerValue.html +5 -12
- data/rdoc/RubyXL/LegacyCell.html +7 -27
- data/rdoc/RubyXL/LegacyWorksheet.html +11 -88
- data/rdoc/RubyXL/MRUColors.html +5 -12
- data/rdoc/RubyXL/MacrosFile.html +5 -20
- data/rdoc/RubyXL/MergedCell.html +5 -12
- data/rdoc/RubyXL/MergedCells.html +5 -12
- data/rdoc/RubyXL/NumFmt.html +5 -12
- data/rdoc/RubyXL/NumberFormat.html +10 -31
- data/rdoc/RubyXL/NumberFormats.html +9 -35
- data/rdoc/RubyXL/OLEObject.html +5 -12
- data/rdoc/RubyXL/OLEObjectFile.html +5 -20
- data/rdoc/RubyXL/OLEObjects.html +5 -12
- data/rdoc/RubyXL/OLESize.html +5 -12
- data/rdoc/RubyXL/OOXMLContainerObject.html +19 -114
- data/rdoc/RubyXL/OOXMLIgnored.html +11 -46
- data/rdoc/RubyXL/OOXMLObject.html +8 -18
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +42 -92
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +23 -144
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +24 -181
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +15 -102
- data/rdoc/RubyXL/OdbcOleDbProperties.html +5 -12
- data/rdoc/RubyXL/Offset.html +5 -12
- data/rdoc/RubyXL/OlapProperties.html +5 -12
- data/rdoc/RubyXL/OleItem.html +99 -0
- data/rdoc/RubyXL/OleItems.html +99 -0
- data/rdoc/RubyXL/OleLink.html +99 -0
- data/rdoc/RubyXL/OutlineProperties.html +5 -12
- data/rdoc/RubyXL/PageMargins.html +5 -12
- data/rdoc/RubyXL/PageSetup.html +5 -12
- data/rdoc/RubyXL/PageSetupProperties.html +5 -12
- data/rdoc/RubyXL/Pane.html +5 -12
- data/rdoc/RubyXL/Parser.html +11 -45
- data/rdoc/RubyXL/PatternFill.html +5 -12
- data/rdoc/RubyXL/PhoneticProperties.html +5 -12
- data/rdoc/RubyXL/PhoneticRun.html +5 -12
- data/rdoc/RubyXL/PivotArea.html +5 -12
- data/rdoc/RubyXL/PivotCache.html +5 -12
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +7 -25
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +5 -20
- data/rdoc/RubyXL/PivotCaches.html +5 -12
- data/rdoc/RubyXL/PivotReference.html +5 -12
- data/rdoc/RubyXL/PivotReferences.html +5 -12
- data/rdoc/RubyXL/PivotTableFile.html +7 -25
- data/rdoc/RubyXL/PivotTableSelection.html +5 -12
- data/rdoc/RubyXL/PresetGeometry.html +5 -12
- data/rdoc/RubyXL/PrintOptions.html +5 -12
- data/rdoc/RubyXL/PrinterSettingsFile.html +5 -20
- data/rdoc/RubyXL/ProtectedRange.html +5 -12
- data/rdoc/RubyXL/ProtectedRanges.html +5 -12
- data/rdoc/RubyXL/Protection.html +5 -12
- data/rdoc/RubyXL/QueryParameter.html +5 -12
- data/rdoc/RubyXL/QueryParameters.html +5 -12
- data/rdoc/RubyXL/QueryTable.html +10 -42
- data/rdoc/RubyXL/QueryTableDeletedField.html +5 -12
- data/rdoc/RubyXL/QueryTableDeletedFields.html +5 -12
- data/rdoc/RubyXL/QueryTableField.html +5 -12
- data/rdoc/RubyXL/QueryTableFields.html +5 -12
- data/rdoc/RubyXL/QueryTableRefresh.html +5 -12
- data/rdoc/RubyXL/RID.html +5 -12
- data/rdoc/RubyXL/RawOOXML.html +11 -51
- data/rdoc/RubyXL/Reference.html +42 -204
- data/rdoc/RubyXL/Relationship.html +5 -12
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +7 -27
- data/rdoc/RubyXL/RelationshipSupport.html +15 -112
- data/rdoc/RubyXL/RevisionPointer.html +5 -12
- data/rdoc/RubyXL/RichText.html +11 -31
- data/rdoc/RubyXL/RichTextRun.html +9 -30
- data/rdoc/RubyXL/Row.html +8 -143
- data/rdoc/RubyXL/RowExt.html +5 -12
- data/rdoc/RubyXL/RunProperties.html +5 -12
- data/rdoc/RubyXL/Scenario.html +5 -12
- data/rdoc/RubyXL/Scenarios.html +5 -12
- data/rdoc/RubyXL/Selection.html +9 -30
- data/rdoc/RubyXL/ShapeGuide.html +5 -12
- data/rdoc/RubyXL/ShapeTextRectangle.html +5 -12
- data/rdoc/RubyXL/SharedStringsTable.html +16 -126
- data/rdoc/RubyXL/Sheet.html +5 -12
- data/rdoc/RubyXL/SheetCalculationProperties.html +5 -12
- data/rdoc/RubyXL/SheetData.html +8 -42
- data/rdoc/RubyXL/SheetDataExt.html +5 -12
- data/rdoc/RubyXL/SheetDataSet.html +5 -12
- data/rdoc/RubyXL/SheetMetadata.html +108 -0
- data/rdoc/RubyXL/SheetName.html +5 -12
- data/rdoc/RubyXL/SheetNames.html +5 -12
- data/rdoc/RubyXL/Sheets.html +5 -12
- data/rdoc/RubyXL/SlicerCacheFile.html +5 -20
- data/rdoc/RubyXL/SlicerFile.html +5 -20
- data/rdoc/RubyXL/SmartTagProperties.html +5 -12
- data/rdoc/RubyXL/SmartTagType.html +5 -12
- data/rdoc/RubyXL/SmartTagTypes.html +5 -12
- data/rdoc/RubyXL/SmartTags.html +5 -12
- data/rdoc/RubyXL/SortCondition.html +5 -12
- data/rdoc/RubyXL/SortState.html +5 -12
- data/rdoc/RubyXL/Sqref.html +11 -46
- data/rdoc/RubyXL/Stop.html +5 -12
- data/rdoc/RubyXL/StringNode.html +5 -12
- data/rdoc/RubyXL/StringNodeW3C.html +11 -46
- data/rdoc/RubyXL/StringValue.html +5 -12
- data/rdoc/RubyXL/Stylesheet.html +14 -97
- data/rdoc/RubyXL/TableFile.html +5 -20
- data/rdoc/RubyXL/TableParts.html +5 -12
- data/rdoc/RubyXL/TableStyle.html +5 -12
- data/rdoc/RubyXL/TableStyles.html +5 -12
- data/rdoc/RubyXL/Text.html +12 -54
- data/rdoc/RubyXL/TextImportSettings.html +5 -12
- data/rdoc/RubyXL/Theme.html +12 -68
- data/rdoc/RubyXL/ThemeElements.html +5 -12
- data/rdoc/RubyXL/ThumbnailFile.html +5 -20
- data/rdoc/RubyXL/Top10.html +5 -12
- data/rdoc/RubyXL/VMLDrawingFile.html +8 -26
- data/rdoc/RubyXL/Variant.html +5 -12
- data/rdoc/RubyXL/Vector.html +9 -30
- data/rdoc/RubyXL/VectorValue.html +5 -12
- data/rdoc/RubyXL/VisualProperties.html +5 -12
- data/rdoc/RubyXL/WebPublishObject.html +5 -12
- data/rdoc/RubyXL/WebPublishObjects.html +5 -12
- data/rdoc/RubyXL/WebPublishingItem.html +5 -12
- data/rdoc/RubyXL/WebPublishingItems.html +5 -12
- data/rdoc/RubyXL/WebPublishingProperties.html +5 -12
- data/rdoc/RubyXL/WebQueryProperties.html +5 -12
- data/rdoc/RubyXL/Workbook.html +45 -462
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +68 -239
- data/rdoc/RubyXL/WorkbookProperties.html +5 -12
- data/rdoc/RubyXL/WorkbookProtection.html +5 -12
- data/rdoc/RubyXL/WorkbookRoot.html +16 -104
- data/rdoc/RubyXL/WorkbookView.html +5 -12
- data/rdoc/RubyXL/WorkbookViews.html +5 -12
- data/rdoc/RubyXL/Worksheet.html +40 -135
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +170 -989
- data/rdoc/RubyXL/WorksheetDimensions.html +5 -12
- data/rdoc/RubyXL/WorksheetFormatProperties.html +5 -12
- data/rdoc/RubyXL/WorksheetProperties.html +5 -12
- data/rdoc/RubyXL/WorksheetProtection.html +5 -12
- data/rdoc/RubyXL/WorksheetView.html +5 -12
- data/rdoc/RubyXL/WorksheetViews.html +5 -12
- data/rdoc/RubyXL/XF.html +5 -12
- data/rdoc/RubyXL.html +8 -319
- data/rdoc/created.rid +44 -44
- data/rdoc/css/rdoc.css +21 -1
- data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/rdoc/index.html +9 -388
- data/rdoc/js/navigation.js.gz +0 -0
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/js/search_index.js.gz +0 -0
- data/rdoc/js/searcher.js.gz +0 -0
- data/rdoc/table_of_contents.html +57 -5
- data/rubyXL.gemspec +24 -30
- data/spec/lib/cell_spec.rb +38 -6
- data/spec/lib/color_spec.rb +1 -1
- data/spec/lib/parser_spec.rb +24 -27
- data/spec/lib/reference_spec.rb +9 -3
- data/spec/lib/rgb_color_spec.rb +27 -0
- data/spec/lib/stylesheet_spec.rb +8 -11
- data/spec/lib/text_spec.rb +1 -5
- data/spec/lib/workbook_spec.rb +14 -4
- data/spec/lib/worksheet_spec.rb +790 -447
- data/spec/spec_helper.rb +2 -0
- data/test/test_parse_write.rb +3 -3
- metadata +11 -8
- data/test/output/test.xlsx +0 -0
@@ -15,7 +15,6 @@ require 'rubyXL/objects/query_table'
|
|
15
15
|
require 'rubyXL/worksheet'
|
16
16
|
|
17
17
|
module RubyXL
|
18
|
-
|
19
18
|
# Eventually, the entire code for Worksheet will be moved here. One small step at a time!
|
20
19
|
|
21
20
|
# http://www.datypic.com/sc/ooxml/e-ssml_outlinePr-1.html
|
@@ -58,7 +57,7 @@ module RubyXL
|
|
58
57
|
end
|
59
58
|
|
60
59
|
class WorksheetFormatProperties < OOXMLObject
|
61
|
-
define_attribute(:baseColWidth, :int,
|
60
|
+
define_attribute(:baseColWidth, :int, :default => 8)
|
62
61
|
define_attribute(:defaultColWidth, :double)
|
63
62
|
define_attribute(:defaultRowHeight, :double, :required => true)
|
64
63
|
define_attribute(:customHeight, :bool, :default => false)
|
@@ -83,12 +82,12 @@ module RubyXL
|
|
83
82
|
define_attribute(:blackAndWhite, :bool, :default => false)
|
84
83
|
define_attribute(:draft, :bool, :default => false)
|
85
84
|
define_attribute(:cellComments, RubyXL::ST_CellComments, :default => 'none')
|
86
|
-
define_attribute(:useFirstPageNumber, :bool,
|
85
|
+
define_attribute(:useFirstPageNumber, :bool, :default => false)
|
87
86
|
define_attribute(:errors, RubyXL::ST_PrintError, :default => 'displayed')
|
88
87
|
define_attribute(:horizontalDpi, :int, :default => 600)
|
89
88
|
define_attribute(:verticalDpi, :int, :default => 600)
|
90
89
|
define_attribute(:copies, :int, :default => 1)
|
91
|
-
|
90
|
+
define_relationship
|
92
91
|
define_element_name 'pageSetup'
|
93
92
|
end
|
94
93
|
|
@@ -166,7 +165,7 @@ module RubyXL
|
|
166
165
|
class ConditionalFormatValue < OOXMLObject
|
167
166
|
define_attribute(:type, RubyXL::ST_CfvoType, :required => true)
|
168
167
|
define_attribute(:val, :string)
|
169
|
-
define_attribute(:gte, :bool,
|
168
|
+
define_attribute(:gte, :bool, :default => true)
|
170
169
|
define_child_node(RubyXL::ExtensionStorageArea)
|
171
170
|
define_element_name 'cfvo'
|
172
171
|
end
|
@@ -212,7 +211,7 @@ module RubyXL
|
|
212
211
|
define_attribute(:timePeriod, RubyXL::ST_TimePeriod)
|
213
212
|
define_attribute(:rank, :int)
|
214
213
|
define_attribute(:stdDev, :int)
|
215
|
-
define_attribute(:equalAverage, :bool,
|
214
|
+
define_attribute(:equalAverage, :bool, :default => false)
|
216
215
|
define_child_node(RubyXL::Formula, :collection => true, :node_name => :formula, :accessor => :formulas)
|
217
216
|
define_child_node(RubyXL::ColorScale)
|
218
217
|
define_child_node(RubyXL::DataBar)
|
@@ -301,8 +300,8 @@ module RubyXL
|
|
301
300
|
|
302
301
|
# http://www.datypic.com/sc/ooxml/e-ssml_hyperlink-1.html
|
303
302
|
class Hyperlink < OOXMLObject
|
304
|
-
define_attribute(:ref,
|
305
|
-
|
303
|
+
define_attribute(:ref, :ref, :required => true)
|
304
|
+
define_relationship
|
306
305
|
define_attribute(:location, :string)
|
307
306
|
define_attribute(:tooltip, :string)
|
308
307
|
define_attribute(:display, :string)
|
@@ -323,7 +322,7 @@ module RubyXL
|
|
323
322
|
define_attribute(:oleUpdate, RubyXL::ST_OleUpdate)
|
324
323
|
define_attribute(:autoLoad, :bool, :default => false)
|
325
324
|
define_attribute(:shapeId, :int, :required => true)
|
326
|
-
|
325
|
+
define_relationship
|
327
326
|
define_element_name 'oleObject'
|
328
327
|
end
|
329
328
|
|
@@ -339,7 +338,7 @@ module RubyXL
|
|
339
338
|
define_attribute(:ref, :ref)
|
340
339
|
define_attribute(:name, :string)
|
341
340
|
define_attribute(:sheet, :string)
|
342
|
-
|
341
|
+
define_relationship
|
343
342
|
define_element_name 'dataRef'
|
344
343
|
end
|
345
344
|
|
@@ -408,9 +407,9 @@ module RubyXL
|
|
408
407
|
define_attribute(:hiddenRows, :bool, :default => false)
|
409
408
|
define_attribute(:hiddenColumns, :bool, :default => false)
|
410
409
|
define_attribute(:state, RubyXL::ST_Visibility, :default => 'visible')
|
411
|
-
define_attribute(:filterUnique, :bool,
|
410
|
+
define_attribute(:filterUnique, :bool, :default => false)
|
412
411
|
define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
|
413
|
-
define_attribute(:showRuler, :bool,
|
412
|
+
define_attribute(:showRuler, :bool, :default => true)
|
414
413
|
define_attribute(:topLeftCell, :ref)
|
415
414
|
define_child_node(RubyXL::Pane)
|
416
415
|
define_child_node(RubyXL::Selection)
|
@@ -433,9 +432,9 @@ module RubyXL
|
|
433
432
|
|
434
433
|
# http://www.datypic.com/sc/ooxml/e-ssml_control-1.html
|
435
434
|
class EmbeddedControl < OOXMLObject
|
436
|
-
define_attribute(:shapeId, :int,
|
437
|
-
|
438
|
-
define_attribute(:name,
|
435
|
+
define_attribute(:shapeId, :int, :required => true)
|
436
|
+
define_relationship(:required => true)
|
437
|
+
define_attribute(:name, :string)
|
439
438
|
define_element_name 'control'
|
440
439
|
end
|
441
440
|
|
@@ -489,8 +488,8 @@ module RubyXL
|
|
489
488
|
|
490
489
|
# http://www.datypic.com/sc/ooxml/e-ssml_customPr-1.html
|
491
490
|
class CustomProperty < OOXMLObject
|
492
|
-
define_attribute(:name,
|
493
|
-
|
491
|
+
define_attribute(:name, :string, :required => true)
|
492
|
+
define_relationship(:required => true)
|
494
493
|
define_element_name 'customPr'
|
495
494
|
end
|
496
495
|
|
@@ -546,7 +545,7 @@ module RubyXL
|
|
546
545
|
define_attribute(:cacheIndex, :bool, :default => false)
|
547
546
|
define_attribute(:outline, :bool, :default => true)
|
548
547
|
define_attribute(:offset, :ref)
|
549
|
-
define_attribute(:collapsedLevelsAreSubtotals, :bool,
|
548
|
+
define_attribute(:collapsedLevelsAreSubtotals, :bool, :default => false)
|
550
549
|
define_attribute(:axis, RubyXL::ST_Axis)
|
551
550
|
define_attribute(:fieldPosition, :int, :default => 0)
|
552
551
|
define_child_node(RubyXL::PivotReferences)
|
@@ -572,7 +571,7 @@ module RubyXL
|
|
572
571
|
define_attribute(:previousRow, :uint, :default => 0)
|
573
572
|
define_attribute(:previousCol, :uint, :default => 0)
|
574
573
|
define_attribute(:click, :uint, :default => 0)
|
575
|
-
|
574
|
+
define_relationship
|
576
575
|
define_child_node(RubyXL::PivotArea)
|
577
576
|
define_element_name 'pivotSelection'
|
578
577
|
end
|
@@ -597,10 +596,10 @@ module RubyXL
|
|
597
596
|
define_attribute(:zoomScaleNormal, :uint, :default => 0)
|
598
597
|
define_attribute(:zoomScaleSheetLayoutView, :uint, :default => 0)
|
599
598
|
define_attribute(:zoomScalePageLayoutView, :uint, :default => 0)
|
600
|
-
define_attribute(:workbookViewId, :uint, :required => true, :default => 0
|
599
|
+
define_attribute(:workbookViewId, :uint, :required => true, :default => 0)
|
601
600
|
define_child_node(RubyXL::Pane)
|
602
601
|
define_child_node(RubyXL::Selection, :collection => true, :accessor => :selections)
|
603
|
-
define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections
|
602
|
+
define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections)
|
604
603
|
define_child_node(RubyXL::ExtensionStorageArea)
|
605
604
|
define_element_name 'sheetView'
|
606
605
|
end
|
@@ -614,8 +613,8 @@ module RubyXL
|
|
614
613
|
|
615
614
|
# http://www.datypic.com/sc/ooxml/e-ssml_worksheet.html
|
616
615
|
class Worksheet < OOXMLTopLevelObject
|
617
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
|
618
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
|
616
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'.freeze
|
617
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'.freeze
|
619
618
|
|
620
619
|
include RubyXL::RelationshipSupport
|
621
620
|
|
@@ -651,7 +650,7 @@ module RubyXL
|
|
651
650
|
define_child_node(RubyXL::SortState)
|
652
651
|
define_child_node(RubyXL::DataConsolidate)
|
653
652
|
define_child_node(RubyXL::CustomSheetViews)
|
654
|
-
define_child_node(RubyXL::MergedCells,
|
653
|
+
define_child_node(RubyXL::MergedCells, :accessor => :merged_cells)
|
655
654
|
define_child_node(RubyXL::PhoneticProperties)
|
656
655
|
define_child_node(RubyXL::ConditionalFormatting, :collection => [0..-1])
|
657
656
|
define_child_node(RubyXL::DataValidations)
|
@@ -677,11 +676,11 @@ module RubyXL
|
|
677
676
|
define_child_node(RubyXL::ExtensionStorageArea)
|
678
677
|
define_child_node(RubyXL::AlternateContent)
|
679
678
|
define_element_name 'worksheet'
|
680
|
-
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main'
|
679
|
+
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
|
681
680
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
|
682
|
-
'http://schemas.openxmlformats.org/markup-compatibility/2006'
|
683
|
-
'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'
|
684
|
-
'urn:schemas-microsoft-com:mac:vml'
|
681
|
+
'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
|
682
|
+
'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
|
683
|
+
'urn:schemas-microsoft-com:mac:vml' => 'mv')
|
685
684
|
|
686
685
|
attr_accessor :workbook, :state, :sheet_name, :sheet_id, :rels
|
687
686
|
|
@@ -752,7 +751,12 @@ module RubyXL
|
|
752
751
|
workbook.stylesheet.cell_xfs[get_row_style(row)]
|
753
752
|
end
|
754
753
|
|
754
|
+
def cell_at(ref)
|
755
|
+
reference = RubyXL::Reference.new(ref)
|
756
|
+
raise "Invalid reference: #{ref}" unless reference.valid? && reference.single_cell?
|
757
|
+
sheet_data&.rows&.[](reference.first_row)&.cells&.[](reference.first_col)
|
758
|
+
end
|
759
|
+
|
755
760
|
include LegacyWorksheet
|
756
761
|
end
|
757
|
-
|
758
762
|
end
|
data/lib/rubyXL/parser.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module RubyXL
|
2
2
|
class Parser
|
3
|
-
|
4
3
|
# Parse <tt>.xslx</tt> file by reading it from local disk.
|
5
4
|
def self.parse(src_file_path)
|
6
5
|
begin
|
@@ -18,12 +17,11 @@ module RubyXL
|
|
18
17
|
def self.parse_buffer(buffer)
|
19
18
|
root = nil # Zip::File.open_buffer somehow fails to return the value from the block :(
|
20
19
|
begin
|
21
|
-
::Zip::File.open_buffer(buffer) { |zip_file| root = RubyXL::WorkbookRoot.parse_zip_file(zip_file)
|
20
|
+
::Zip::File.open_buffer(buffer) { |zip_file| root = RubyXL::WorkbookRoot.parse_zip_file(zip_file) }
|
22
21
|
root.workbook
|
23
22
|
rescue ::Zip::Error => e
|
24
23
|
raise e, "XLSX file format error: #{e}", e.backtrace
|
25
24
|
end
|
26
25
|
end
|
27
|
-
|
28
26
|
end
|
29
27
|
end
|
data/lib/rubyXL/worksheet.rb
CHANGED
@@ -1,98 +1,97 @@
|
|
1
1
|
module RubyXL
|
2
|
-
module LegacyWorksheet
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
c.raw_value = data
|
49
|
-
else
|
50
|
-
case data
|
51
|
-
when Numeric then c.raw_value = data
|
52
|
-
when String then
|
2
|
+
module LegacyWorksheet
|
3
|
+
include Enumerable
|
4
|
+
|
5
|
+
def initialize(params = {})
|
6
|
+
super
|
7
|
+
self.workbook = params[:workbook]
|
8
|
+
self.sheet_name = params[:sheet_name]
|
9
|
+
self.sheet_id = params[:sheet_id]
|
10
|
+
self.sheet_data = RubyXL::SheetData.new
|
11
|
+
self.cols = RubyXL::ColumnRanges.new
|
12
|
+
@comments = [] # Do not optimize! These are arrays, so they will share the pointer!
|
13
|
+
@printer_settings = []
|
14
|
+
@generic_storage = []
|
15
|
+
end
|
16
|
+
|
17
|
+
# allows for easier access to sheet_data
|
18
|
+
def [](row = 0)
|
19
|
+
sheet_data[row]
|
20
|
+
end
|
21
|
+
|
22
|
+
def each
|
23
|
+
sheet_data.rows.each { |row| yield(row) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def add_row(row_index = 0, params = {})
|
27
|
+
new_row = RubyXL::Row.new(params)
|
28
|
+
new_row.worksheet = self
|
29
|
+
sheet_data.rows[row_index] = new_row
|
30
|
+
end
|
31
|
+
|
32
|
+
def add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true)
|
33
|
+
validate_workbook
|
34
|
+
validate_nonnegative(row_index)
|
35
|
+
validate_nonnegative(column_index)
|
36
|
+
row = sheet_data.rows[row_index] || add_row(row_index)
|
37
|
+
|
38
|
+
c = row.cells[column_index]
|
39
|
+
|
40
|
+
if overwrite || c.nil?
|
41
|
+
c = RubyXL::Cell.new
|
42
|
+
c.worksheet = self
|
43
|
+
c.row = row_index
|
44
|
+
c.column = column_index
|
45
|
+
|
46
|
+
if formula then
|
47
|
+
c.formula = RubyXL::Formula.new(:expression => formula)
|
53
48
|
c.raw_value = data
|
54
|
-
|
55
|
-
|
56
|
-
c.
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
else
|
50
|
+
case data
|
51
|
+
when Numeric then c.raw_value = data
|
52
|
+
when String then
|
53
|
+
c.raw_value = data
|
54
|
+
c.datatype = RubyXL::DataType::RAW_STRING
|
55
|
+
when RubyXL::RichText then
|
56
|
+
c.is = data
|
57
|
+
c.datatype = RubyXL::DataType::INLINE_STRING
|
58
|
+
when Time, Date, DateTime then
|
59
|
+
c.raw_value = workbook.date_to_num(data)
|
60
|
+
when NilClass then nil
|
61
|
+
end
|
61
62
|
end
|
63
|
+
|
64
|
+
range = cols && cols.locate_range(column_index)
|
65
|
+
c.style_index = row.style_index || (range && range.style_index) || 0
|
66
|
+
row.cells[column_index] = c
|
62
67
|
end
|
63
68
|
|
64
|
-
|
65
|
-
c.style_index = row.style_index || (range && range.style_index) || 0
|
66
|
-
row.cells[column_index] = c
|
69
|
+
c
|
67
70
|
end
|
68
71
|
|
69
|
-
|
70
|
-
end
|
72
|
+
private
|
71
73
|
|
72
|
-
|
74
|
+
# validates Workbook, ensures that this worksheet is in @workbook
|
75
|
+
def validate_workbook
|
76
|
+
unless @workbook.nil? || @workbook.worksheets.nil?
|
77
|
+
return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
|
78
|
+
end
|
73
79
|
|
74
|
-
|
75
|
-
def validate_workbook()
|
76
|
-
unless @workbook.nil? || @workbook.worksheets.nil?
|
77
|
-
return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
|
80
|
+
raise "This worksheet #{self} is not in workbook #{@workbook}"
|
78
81
|
end
|
79
82
|
|
80
|
-
|
81
|
-
|
83
|
+
# Ensures that storage space for a cell with +row_index+ and +column_index+
|
84
|
+
# exists in +sheet_data+ arrays, growing them up if necessary.
|
85
|
+
def ensure_cell_exists(row_index, column_index = 0)
|
86
|
+
validate_nonnegative(row_index)
|
87
|
+
validate_nonnegative(column_index)
|
82
88
|
|
83
|
-
|
84
|
-
|
85
|
-
def ensure_cell_exists(row_index, column_index = 0)
|
86
|
-
validate_nonnegative(row_index)
|
87
|
-
validate_nonnegative(column_index)
|
88
|
-
|
89
|
-
sheet_data.rows[row_index] || add_row(row_index)
|
90
|
-
end
|
91
|
-
|
92
|
-
def validate_nonnegative(row_or_col)
|
93
|
-
raise 'Row and Column arguments must be nonnegative' if row_or_col < 0
|
94
|
-
end
|
95
|
-
private :validate_nonnegative
|
89
|
+
sheet_data.rows[row_index] || add_row(row_index)
|
90
|
+
end
|
96
91
|
|
97
|
-
|
92
|
+
def validate_nonnegative(row_or_col)
|
93
|
+
raise 'Row and Column arguments must be nonnegative' if row_or_col < 0
|
94
|
+
end
|
95
|
+
private :validate_nonnegative
|
96
|
+
end # end class
|
98
97
|
end
|
data/lib/rubyXL.rb
CHANGED
data/rdoc/README_rdoc.html
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
<head>
|
5
5
|
<meta charset="UTF-8">
|
6
6
|
|
7
|
-
<title>README - rubyXL 3.4.
|
7
|
+
<title>README - rubyXL 3.4.25</title>
|
8
8
|
|
9
9
|
<script type="text/javascript">
|
10
10
|
var rdoc_rel_prefix = "./";
|
@@ -21,7 +21,6 @@
|
|
21
21
|
<link href="./css/rdoc.css" rel="stylesheet">
|
22
22
|
|
23
23
|
|
24
|
-
|
25
24
|
<body id="top" role="document" class="file">
|
26
25
|
<nav role="navigation">
|
27
26
|
<div id="project-navigation">
|
@@ -94,9 +93,11 @@
|
|
94
93
|
<li><a href="#label-Insert+Cell">Insert Cell</a>
|
95
94
|
<li><a href="#label-Delete+Cell">Delete Cell</a>
|
96
95
|
<li><a href="#label-Modifying+Cell+Format">Modifying Cell Format</a>
|
96
|
+
<li><a href="#label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell</a>
|
97
97
|
<li><a href="#label-I-2FO">I/O</a>
|
98
98
|
<li><a href="#label-Miscellaneous">Miscellaneous</a>
|
99
99
|
<li><a href="#label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files</a>
|
100
|
+
<li><a href="#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)</a>
|
100
101
|
<li><a href="#label-For+more+information">For more information</a>
|
101
102
|
<li><a href="#label-Contributing+to+rubyXL">Contributing to rubyXL</a>
|
102
103
|
<li><a href="#label-Copyright">Copyright</a>
|
@@ -105,13 +106,12 @@
|
|
105
106
|
|
106
107
|
|
107
108
|
<div id="project-metadata">
|
108
|
-
|
109
|
+
|
110
|
+
<div id="fileindex-section" class="nav-section">
|
109
111
|
<h3>Pages</h3>
|
110
112
|
|
111
113
|
<ul class="link-list">
|
112
|
-
|
113
114
|
<li><a href="./README_rdoc.html">README</a>
|
114
|
-
|
115
115
|
</ul>
|
116
116
|
</div>
|
117
117
|
|
@@ -189,6 +189,15 @@
|
|
189
189
|
<pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
|
190
190
|
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns cell A1 in the worksheet</span>
|
191
191
|
<span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns cell A1 in the worksheet</span>
|
192
|
+
|
193
|
+
<span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
|
194
|
+
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">value</span> <span class="ruby-comment"># Returns a properly converted value in the cell (if the file claims that the cell</span>
|
195
|
+
<span class="ruby-comment"># is holding a number, returns a respective Integer or Float, and so on).</span>
|
196
|
+
</pre>
|
197
|
+
|
198
|
+
<p>Or, if you prefer Excel-style references (single-cell only!)</p>
|
199
|
+
|
200
|
+
<pre class="ruby"><span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">cell_at</span>(<span class="ruby-string">'B11'</span>)
|
192
201
|
</pre>
|
193
202
|
|
194
203
|
<h4 id="label-Wrappers+for+accessing+Cell+properties">Wrappers for accessing Cell properties<span><a href="#label-Wrappers+for+accessing+Cell+properties">¶</a> <a href="#top">↑</a></span></h4>
|
@@ -294,38 +303,30 @@
|
|
294
303
|
|
295
304
|
<h5 id="label-Horizontal">Horizontal<span><a href="#label-Horizontal">¶</a> <a href="#top">↑</a></span></h5>
|
296
305
|
|
297
|
-
<
|
298
|
-
|
299
|
-
<pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_horizontal_alignment</span>(<span class="ruby-string">'center'</span>) <span class="ruby-comment"># Sets A1 to be centered</span>
|
306
|
+
<pre class="ruby"><span class="ruby-comment"># Possible alignments: center, distributed, justify, left, right</span>
|
307
|
+
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_horizontal_alignment</span>(<span class="ruby-string">'center'</span>) <span class="ruby-comment"># Sets A1 to be centered</span>
|
300
308
|
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_horizontal_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">'justify'</span>) <span class="ruby-comment"># Sets first row to be justified</span>
|
301
309
|
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_horizontal_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">'right'</span>) <span class="ruby-comment"># Sets first column to be right-aligned</span>
|
302
310
|
</pre>
|
303
311
|
|
304
312
|
<h5 id="label-Vertical">Vertical<span><a href="#label-Vertical">¶</a> <a href="#top">↑</a></span></h5>
|
305
313
|
|
306
|
-
<
|
307
|
-
|
308
|
-
<pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_vertical_alignment</span>(<span class="ruby-string">'bottom'</span>) <span class="ruby-comment"># Sets A1 to be bottom aligned</span>
|
314
|
+
<pre class="ruby"><span class="ruby-comment"># Possible alignments: bottom, center, distributed, top</span>
|
315
|
+
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_vertical_alignment</span>(<span class="ruby-string">'bottom'</span>) <span class="ruby-comment"># Sets A1 to be bottom aligned</span>
|
309
316
|
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_vertical_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">'distributed'</span>) <span class="ruby-comment"># Sets first row to be distributed vertically</span>
|
310
317
|
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_vertical_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">'top'</span>) <span class="ruby-comment"># Sets first column to be top aligned</span>
|
311
318
|
</pre>
|
312
319
|
|
313
320
|
<h5 id="label-Rotation">Rotation<span><a href="#label-Rotation">¶</a> <a href="#top">↑</a></span></h5>
|
314
321
|
|
315
|
-
<pre class="ruby"><span class="ruby-
|
322
|
+
<pre class="ruby"><span class="ruby-comment"># Possible values:</span>
|
323
|
+
<span class="ruby-comment"># * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</span>
|
324
|
+
<span class="ruby-comment"># * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</span>
|
325
|
+
<span class="ruby-comment"># * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</span>
|
326
|
+
<span class="ruby-comment"># * 255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.</span>
|
327
|
+
<span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_text_rotation</span>(<span class="ruby-value">90</span>) <span class="ruby-comment"># Sets A1 to be rotated by 90 degrees</span>
|
316
328
|
</pre>
|
317
329
|
|
318
|
-
<p>Values:</p>
|
319
|
-
<ul><li>
|
320
|
-
<p>0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</p>
|
321
|
-
</li><li>
|
322
|
-
<p>91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</p>
|
323
|
-
</li><li>
|
324
|
-
<p>180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</p>
|
325
|
-
</li><li>
|
326
|
-
<p>255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.</p>
|
327
|
-
</li></ul>
|
328
|
-
|
329
330
|
<h4 id="label-Changing+Row+Height">Changing Row Height<span><a href="#label-Changing+Row+Height">¶</a> <a href="#top">↑</a></span></h4>
|
330
331
|
|
331
332
|
<pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_height</span>(<span class="ruby-value">0</span>, <span class="ruby-value">30</span>) <span class="ruby-comment"># Sets first row height to 30</span>
|
@@ -404,9 +405,16 @@
|
|
404
405
|
<pre class="ruby"><span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
|
405
406
|
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">set_number_format</span> <span class="ruby-string">'0.0000%'</span> <span class="ruby-comment"># For formats, see https://support.office.com/en-us/article/5026bbd6-04bc-48cd-bf33-80f18b4eae68</span>
|
406
407
|
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_text_wrap</span>(<span class="ruby-keyword">true</span>) <span class="ruby-comment"># Makes the text in the cell to wrap.</span>
|
408
|
+
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_shrink_to_fit</span>(<span class="ruby-keyword">true</span>) <span class="ruby-comment"># Makes the text in the cell to shrink to fit.</span>
|
407
409
|
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_text_indent</span>(<span class="ruby-value">1</span>) <span class="ruby-comment"># Indents the text in the cell by 1 level</span>
|
408
410
|
</pre>
|
409
411
|
|
412
|
+
<h4 id="label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell<span><a href="#label-Add+hyperlink+to+a+Cell">¶</a> <a href="#top">↑</a></span></h4>
|
413
|
+
|
414
|
+
<pre class="ruby"><span class="ruby-identifier">cell</span>.<span class="ruby-identifier">add_hyperlink</span>(<span class="ruby-string">'http://example.com'</span>)
|
415
|
+
<span class="ruby-identifier">cell</span>.<span class="ruby-identifier">add_hyperlink</span>(<span class="ruby-string">'http://example.com'</span>, <span class="ruby-string">'Some tooltip text'</span>)
|
416
|
+
</pre>
|
417
|
+
|
410
418
|
<h2 id="label-I-2FO">I/O<span><a href="#label-I-2FO">¶</a> <a href="#top">↑</a></span></h2>
|
411
419
|
|
412
420
|
<p>By default, the gem operates with files on the local filesystem:</p>
|
@@ -432,15 +440,20 @@
|
|
432
440
|
<pre class="ruby"><span class="ruby-constant">RubyXL</span>.<span class="ruby-identifier">class_variable_set</span>(<span class="ruby-value">:@@suppress_warnings</span>, <span class="ruby-keyword">true</span>)
|
433
441
|
</pre>
|
434
442
|
|
443
|
+
<h2 id="label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)<span><a href="#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">¶</a> <a href="#top">↑</a></span></h2>
|
444
|
+
|
445
|
+
<pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">add_validation_list</span>(<span class="ruby-string">"A1"</span>, [ <span class="ruby-string">"value1"</span>, <span class="ruby-string">"value2"</span> ])
|
446
|
+
</pre>
|
447
|
+
|
435
448
|
<h2 id="label-For+more+information">For more information<span><a href="#label-For+more+information">¶</a> <a href="#top">↑</a></span></h2>
|
436
449
|
|
437
450
|
<p>Take a look at the files in spec/lib/ for rspecs on most methods</p>
|
438
451
|
|
439
452
|
<h2 id="label-Contributing+to+rubyXL">Contributing to rubyXL<span><a href="#label-Contributing+to+rubyXL">¶</a> <a href="#top">↑</a></span></h2>
|
440
453
|
<ul><li>
|
441
|
-
<p>Check out the latest master to make sure the feature hasn
|
454
|
+
<p>Check out the latest master to make sure the feature hasn’t been implemented or the bug hasn’t been fixed yet</p>
|
442
455
|
</li><li>
|
443
|
-
<p>Check out the issue tracker to make sure someone already hasn
|
456
|
+
<p>Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it</p>
|
444
457
|
</li><li>
|
445
458
|
<p>Fork the project</p>
|
446
459
|
</li><li>
|
@@ -448,21 +461,22 @@
|
|
448
461
|
</li><li>
|
449
462
|
<p>Commit and push until you are happy with your contribution</p>
|
450
463
|
</li><li>
|
451
|
-
<p>Make sure to add tests for it. This is important so I don
|
464
|
+
<p>Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.</p>
|
452
465
|
</li><li>
|
453
466
|
<p>Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.</p>
|
454
467
|
</li></ul>
|
455
468
|
|
456
469
|
<h2 id="label-Copyright">Copyright<span><a href="#label-Copyright">¶</a> <a href="#top">↑</a></span></h2>
|
457
470
|
|
458
|
-
<p>Copyright © 2011 Vivek Bhagwat, 2013-
|
471
|
+
<p>Copyright © 2011 Vivek Bhagwat, 2013-2022 Wesha. See LICENSE.txt for further details.</p>
|
472
|
+
|
459
473
|
</main>
|
460
474
|
|
461
475
|
|
462
476
|
|
463
477
|
<footer id="validator-badges" role="contentinfo">
|
464
478
|
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
465
|
-
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.
|
479
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.
|
466
480
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
467
481
|
</footer>
|
468
482
|
|