rubyXL 3.4.14 → 3.4.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +2 -1
- data/.rubocop.yml +124 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +10 -8
- data/README.rdoc +32 -13
- data/Rakefile +26 -27
- data/VERSION +1 -1
- data/lib/rubyXL/cell.rb +2 -4
- data/lib/rubyXL/convenience_methods/cell.rb +36 -32
- data/lib/rubyXL/convenience_methods/color.rb +9 -13
- data/lib/rubyXL/convenience_methods/workbook.rb +10 -9
- data/lib/rubyXL/convenience_methods/worksheet.rb +103 -7
- 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 +2 -4
- data/lib/rubyXL/objects/column_range.rb +16 -15
- 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 +10 -13
- data/lib/rubyXL/objects/extensions.rb +0 -2
- data/lib/rubyXL/objects/external_links.rb +37 -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 +34 -32
- data/lib/rubyXL/objects/query_table.rb +7 -5
- data/lib/rubyXL/objects/reference.rb +26 -17
- data/lib/rubyXL/objects/relationships.rb +7 -12
- data/lib/rubyXL/objects/root.rb +0 -2
- data/lib/rubyXL/objects/shared_strings.rb +4 -7
- data/lib/rubyXL/objects/sheet_common.rb +1 -3
- data/lib/rubyXL/objects/sheet_data.rb +12 -14
- data/lib/rubyXL/objects/simple_types.rb +3 -1
- data/lib/rubyXL/objects/storage.rb +57 -51
- data/lib/rubyXL/objects/stylesheet.rb +9 -17
- data/lib/rubyXL/objects/text.rb +6 -8
- data/lib/rubyXL/objects/theme.rb +19 -24
- data/lib/rubyXL/objects/workbook.rb +43 -38
- data/lib/rubyXL/objects/worksheet.rb +35 -31
- data/lib/rubyXL/parser.rb +1 -3
- data/lib/rubyXL/worksheet.rb +86 -79
- data/lib/rubyXL.rb +0 -1
- data/rdoc/README_rdoc.html +139 -73
- data/rdoc/RubyXL/AExtension.html +24 -60
- data/rdoc/RubyXL/AExtensionStorageArea.html +6 -13
- data/rdoc/RubyXL/ActiveX.html +19 -46
- data/rdoc/RubyXL/ActiveXBinary.html +6 -18
- data/rdoc/RubyXL/AdjustHandleList.html +6 -13
- data/rdoc/RubyXL/Alignment.html +6 -13
- data/rdoc/RubyXL/AlternateContent.html +6 -13
- data/rdoc/RubyXL/AlternateUrls.html +99 -0
- data/rdoc/RubyXL/Authors.html +6 -13
- data/rdoc/RubyXL/AutoFilter.html +6 -13
- data/rdoc/RubyXL/AutoFilterColumn.html +6 -13
- data/rdoc/RubyXL/BinaryImageFile.html +6 -21
- data/rdoc/RubyXL/BodyProperties.html +6 -13
- data/rdoc/RubyXL/BooleanNode.html +6 -13
- data/rdoc/RubyXL/BooleanValue.html +6 -13
- data/rdoc/RubyXL/Border.html +37 -89
- data/rdoc/RubyXL/BorderEdge.html +23 -53
- data/rdoc/RubyXL/Borders.html +16 -35
- data/rdoc/RubyXL/Break.html +6 -13
- data/rdoc/RubyXL/BreakList.html +6 -13
- data/rdoc/RubyXL/CT_AdjPoint2D.html +6 -13
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +6 -13
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +6 -13
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +6 -13
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +6 -13
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +6 -13
- data/rdoc/RubyXL/CT_Backdrop.html +6 -13
- data/rdoc/RubyXL/CT_Bevel.html +6 -13
- data/rdoc/RubyXL/CT_BiLevelEffect.html +6 -13
- data/rdoc/RubyXL/CT_BlendEffect.html +6 -13
- data/rdoc/RubyXL/CT_Blip.html +6 -13
- data/rdoc/RubyXL/CT_BlipFillProperties.html +6 -13
- data/rdoc/RubyXL/CT_BlurEffect.html +6 -13
- data/rdoc/RubyXL/CT_Camera.html +6 -13
- data/rdoc/RubyXL/CT_Color.html +6 -13
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +6 -13
- data/rdoc/RubyXL/CT_ColorMapping.html +6 -13
- data/rdoc/RubyXL/CT_ColorScheme.html +6 -13
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +6 -13
- data/rdoc/RubyXL/CT_ConnectionSite.html +6 -13
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +6 -13
- data/rdoc/RubyXL/CT_DashStop.html +6 -13
- data/rdoc/RubyXL/CT_DashStopList.html +6 -13
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +6 -13
- data/rdoc/RubyXL/CT_DuotoneEffect.html +6 -13
- data/rdoc/RubyXL/CT_EffectContainer.html +6 -13
- data/rdoc/RubyXL/CT_EffectList.html +6 -13
- data/rdoc/RubyXL/CT_EffectReference.html +6 -13
- data/rdoc/RubyXL/CT_EffectStyleItem.html +6 -13
- data/rdoc/RubyXL/CT_EffectStyleList.html +6 -13
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +6 -13
- data/rdoc/RubyXL/CT_FillEffect.html +6 -13
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +6 -13
- data/rdoc/RubyXL/CT_FillStyleList.html +6 -13
- data/rdoc/RubyXL/CT_FlatText.html +6 -13
- data/rdoc/RubyXL/CT_FontCollection.html +6 -13
- data/rdoc/RubyXL/CT_FontReference.html +6 -13
- data/rdoc/RubyXL/CT_GeomGuideList.html +6 -13
- data/rdoc/RubyXL/CT_GlowEffect.html +6 -13
- data/rdoc/RubyXL/CT_GradientFillProperties.html +6 -13
- data/rdoc/RubyXL/CT_GradientStop.html +6 -13
- data/rdoc/RubyXL/CT_GradientStopList.html +6 -13
- data/rdoc/RubyXL/CT_HSLEffect.html +6 -13
- data/rdoc/RubyXL/CT_HslColor.html +6 -13
- data/rdoc/RubyXL/CT_Hyperlink.html +6 -13
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +6 -13
- data/rdoc/RubyXL/CT_LightRig.html +6 -13
- data/rdoc/RubyXL/CT_LineEndProperties.html +6 -13
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +6 -13
- data/rdoc/RubyXL/CT_LineProperties.html +6 -13
- data/rdoc/RubyXL/CT_LineStyleList.html +6 -13
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +6 -13
- data/rdoc/RubyXL/CT_LuminanceEffect.html +6 -13
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +6 -13
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +6 -13
- data/rdoc/RubyXL/CT_Path2D.html +6 -13
- data/rdoc/RubyXL/CT_Path2DArcTo.html +6 -13
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +6 -13
- data/rdoc/RubyXL/CT_Path2DList.html +6 -13
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +6 -13
- data/rdoc/RubyXL/CT_Path2DTo.html +6 -13
- data/rdoc/RubyXL/CT_PathShadeProperties.html +6 -13
- data/rdoc/RubyXL/CT_PatternFillProperties.html +6 -13
- data/rdoc/RubyXL/CT_Point3D.html +6 -13
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +6 -13
- data/rdoc/RubyXL/CT_PresetColor.html +6 -13
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +6 -13
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +6 -13
- data/rdoc/RubyXL/CT_PresetTextShape.html +6 -13
- data/rdoc/RubyXL/CT_ReflectionEffect.html +6 -13
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +6 -13
- data/rdoc/RubyXL/CT_RelativeRect.html +6 -13
- data/rdoc/RubyXL/CT_SRgbColor.html +6 -13
- data/rdoc/RubyXL/CT_ScRgbColor.html +6 -13
- data/rdoc/RubyXL/CT_Scene3D.html +6 -13
- data/rdoc/RubyXL/CT_SchemeColor.html +6 -13
- data/rdoc/RubyXL/CT_Shape3D.html +6 -13
- data/rdoc/RubyXL/CT_ShapeStyle.html +6 -13
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +6 -13
- data/rdoc/RubyXL/CT_SphereCoords.html +6 -13
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +6 -13
- data/rdoc/RubyXL/CT_StyleMatrix.html +6 -13
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +6 -13
- data/rdoc/RubyXL/CT_SupplementalFont.html +6 -13
- data/rdoc/RubyXL/CT_SystemColor.html +6 -13
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +6 -13
- data/rdoc/RubyXL/CT_TextBlipBullet.html +6 -13
- data/rdoc/RubyXL/CT_TextCharBullet.html +6 -13
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +6 -13
- data/rdoc/RubyXL/CT_TextFont.html +6 -13
- data/rdoc/RubyXL/CT_TextListStyle.html +6 -13
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +6 -13
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +6 -13
- data/rdoc/RubyXL/CT_TextSpacing.html +6 -13
- data/rdoc/RubyXL/CT_TextTabStop.html +6 -13
- data/rdoc/RubyXL/CT_TextTabStopList.html +6 -13
- data/rdoc/RubyXL/CT_TileInfoProperties.html +6 -13
- data/rdoc/RubyXL/CT_TintEffect.html +6 -13
- data/rdoc/RubyXL/CT_Transform2D.html +6 -13
- data/rdoc/RubyXL/CT_TransformEffect.html +6 -13
- data/rdoc/RubyXL/CT_Vector3D.html +6 -13
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +6 -13
- data/rdoc/RubyXL/CalculationChain.html +15 -42
- data/rdoc/RubyXL/CalculationChainCell.html +6 -13
- data/rdoc/RubyXL/CalculationProperties.html +6 -13
- data/rdoc/RubyXL/Cell.html +116 -290
- data/rdoc/RubyXL/CellConvenienceMethods.html +318 -641
- data/rdoc/RubyXL/CellExt.html +6 -13
- data/rdoc/RubyXL/CellSmartTag.html +6 -13
- data/rdoc/RubyXL/CellSmartTagProperty.html +6 -13
- data/rdoc/RubyXL/CellSmartTags.html +6 -13
- data/rdoc/RubyXL/CellStyle.html +6 -13
- data/rdoc/RubyXL/CellStyleXFs.html +16 -35
- data/rdoc/RubyXL/CellStyles.html +16 -35
- data/rdoc/RubyXL/CellValue.html +16 -35
- data/rdoc/RubyXL/CellWatch.html +6 -13
- data/rdoc/RubyXL/CellWatches.html +6 -13
- data/rdoc/RubyXL/CellXFs.html +18 -40
- data/rdoc/RubyXL/ChartColorsFile.html +6 -21
- data/rdoc/RubyXL/ChartFile.html +18 -48
- data/rdoc/RubyXL/ChartStyleFile.html +6 -21
- data/rdoc/RubyXL/ChartUserShapesFile.html +6 -21
- data/rdoc/RubyXL/Chartsheet.html +18 -65
- data/rdoc/RubyXL/ChartsheetPageSetup.html +6 -13
- data/rdoc/RubyXL/ChartsheetProperties.html +6 -13
- data/rdoc/RubyXL/ChartsheetProtection.html +6 -13
- data/rdoc/RubyXL/ChartsheetView.html +6 -13
- data/rdoc/RubyXL/ChartsheetViews.html +6 -13
- data/rdoc/RubyXL/Color.html +17 -41
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +25 -69
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +36 -92
- data/rdoc/RubyXL/ColorConvenienceClasses.html +4 -10
- data/rdoc/RubyXL/ColorConvenienceMethods.html +14 -32
- data/rdoc/RubyXL/ColorFilter.html +6 -13
- data/rdoc/RubyXL/ColorScale.html +6 -13
- data/rdoc/RubyXL/ColorSet.html +6 -13
- data/rdoc/RubyXL/Colors.html +6 -13
- data/rdoc/RubyXL/ColumnRange.html +66 -81
- data/rdoc/RubyXL/ColumnRanges.html +43 -95
- data/rdoc/RubyXL/Comment.html +6 -13
- data/rdoc/RubyXL/CommentList.html +6 -13
- data/rdoc/RubyXL/CommentsFile.html +16 -48
- data/rdoc/RubyXL/ConditionalFormatValue.html +6 -13
- data/rdoc/RubyXL/ConditionalFormatting.html +6 -13
- data/rdoc/RubyXL/ConditionalFormattingRule.html +6 -13
- data/rdoc/RubyXL/Connection.html +6 -13
- data/rdoc/RubyXL/ConnectionTable.html +6 -13
- data/rdoc/RubyXL/ConnectionTables.html +6 -13
- data/rdoc/RubyXL/ConnectionTextField.html +6 -13
- data/rdoc/RubyXL/ConnectionTextFields.html +6 -13
- data/rdoc/RubyXL/Connections.html +15 -42
- data/rdoc/RubyXL/ContentTypeDefault.html +6 -13
- data/rdoc/RubyXL/ContentTypeOverride.html +6 -13
- data/rdoc/RubyXL/ContentTypes.html +25 -63
- data/rdoc/RubyXL/ControlPropertiesFile.html +8 -18
- data/rdoc/RubyXL/CorePropertiesFile.html +72 -192
- data/rdoc/RubyXL/CustomColor.html +6 -13
- data/rdoc/RubyXL/CustomColorList.html +6 -13
- data/rdoc/RubyXL/CustomFilter.html +6 -13
- data/rdoc/RubyXL/CustomFilters.html +6 -13
- data/rdoc/RubyXL/CustomGeometry.html +6 -13
- data/rdoc/RubyXL/CustomProperties.html +6 -13
- data/rdoc/RubyXL/CustomPropertiesFile.html +6 -21
- data/rdoc/RubyXL/CustomProperty.html +6 -13
- data/rdoc/RubyXL/CustomPropertyFile.html +6 -21
- data/rdoc/RubyXL/CustomSheetView.html +6 -13
- data/rdoc/RubyXL/CustomSheetViews.html +6 -13
- data/rdoc/RubyXL/CustomWorkbookView.html +6 -13
- data/rdoc/RubyXL/CustomWorkbookViews.html +6 -13
- data/rdoc/RubyXL/CustomXMLFile.html +6 -18
- data/rdoc/RubyXL/DXF.html +6 -13
- data/rdoc/RubyXL/DXFs.html +6 -13
- data/rdoc/RubyXL/DataBar.html +6 -13
- data/rdoc/RubyXL/DataConsolidate.html +6 -13
- data/rdoc/RubyXL/DataConsolidationReference.html +6 -13
- data/rdoc/RubyXL/DataConsolidationReferences.html +6 -13
- data/rdoc/RubyXL/DataType.html +4 -33
- data/rdoc/RubyXL/DataValidation.html +6 -13
- data/rdoc/RubyXL/DataValidations.html +6 -13
- data/rdoc/RubyXL/DateGroupItem.html +6 -13
- data/rdoc/RubyXL/DefinedName.html +6 -13
- data/rdoc/RubyXL/DefinedNameExt.html +6 -13
- data/rdoc/RubyXL/DefinedNames.html +6 -13
- data/rdoc/RubyXL/DefinedNamesExt.html +6 -13
- data/rdoc/RubyXL/DocumentPropertiesFile.html +23 -65
- data/rdoc/RubyXL/DrawingFile.html +18 -48
- data/rdoc/RubyXL/DynamicFilter.html +6 -13
- data/rdoc/RubyXL/EmbeddedControl.html +6 -13
- data/rdoc/RubyXL/EmbeddedControls.html +6 -13
- data/rdoc/RubyXL/Extension.html +6 -13
- data/rdoc/RubyXL/ExtensionStorageArea.html +6 -13
- data/rdoc/RubyXL/Extents.html +6 -13
- data/rdoc/RubyXL/ExternalBook.html +6 -13
- data/rdoc/RubyXL/ExternalLinksFile.html +18 -48
- data/rdoc/RubyXL/ExternalReference.html +6 -13
- data/rdoc/RubyXL/ExternalReferences.html +6 -13
- data/rdoc/RubyXL/ExtraColorSchemeList.html +6 -13
- data/rdoc/RubyXL/FieldItem.html +6 -13
- data/rdoc/RubyXL/FileRecoveryProperties.html +6 -13
- data/rdoc/RubyXL/FileSharing.html +6 -13
- data/rdoc/RubyXL/FileVersion.html +6 -13
- data/rdoc/RubyXL/Fill.html +16 -35
- data/rdoc/RubyXL/Fills.html +16 -35
- data/rdoc/RubyXL/FilterContainer.html +6 -13
- data/rdoc/RubyXL/FloatNode.html +6 -13
- data/rdoc/RubyXL/FloatValue.html +6 -13
- data/rdoc/RubyXL/Font.html +18 -42
- data/rdoc/RubyXL/FontConvenienceMethods.html +92 -253
- data/rdoc/RubyXL/FontScheme.html +6 -13
- data/rdoc/RubyXL/Fonts.html +16 -35
- data/rdoc/RubyXL/Formula.html +6 -13
- data/rdoc/RubyXL/FunctionGroup.html +6 -13
- data/rdoc/RubyXL/FunctionGroups.html +6 -13
- data/rdoc/RubyXL/GenericStorageObject.html +32 -90
- data/rdoc/RubyXL/GradientFill.html +6 -13
- data/rdoc/RubyXL/HeaderFooterSettings.html +6 -13
- data/rdoc/RubyXL/Hyperlink.html +6 -13
- data/rdoc/RubyXL/HyperlinkRelFile.html +6 -18
- data/rdoc/RubyXL/Hyperlinks.html +6 -13
- data/rdoc/RubyXL/IconFilter.html +6 -13
- data/rdoc/RubyXL/IconSet.html +6 -13
- data/rdoc/RubyXL/IgnoredError.html +6 -13
- data/rdoc/RubyXL/IgnoredErrors.html +6 -13
- data/rdoc/RubyXL/IndexedColors.html +6 -13
- data/rdoc/RubyXL/InputCells.html +6 -13
- data/rdoc/RubyXL/IntegerNode.html +6 -13
- data/rdoc/RubyXL/IntegerValue.html +6 -13
- data/rdoc/RubyXL/LegacyCell.html +14 -32
- data/rdoc/RubyXL/LegacyWorksheet.html +64 -116
- data/rdoc/RubyXL/MRUColors.html +6 -13
- data/rdoc/RubyXL/MacrosFile.html +6 -21
- data/rdoc/RubyXL/MergedCell.html +6 -13
- data/rdoc/RubyXL/MergedCells.html +6 -13
- data/rdoc/RubyXL/NumFmt.html +6 -13
- data/rdoc/RubyXL/NumberFormat.html +17 -36
- data/rdoc/RubyXL/NumberFormats.html +16 -40
- data/rdoc/RubyXL/OLEObject.html +6 -13
- data/rdoc/RubyXL/OLEObjectFile.html +6 -21
- data/rdoc/RubyXL/OLEObjects.html +6 -13
- data/rdoc/RubyXL/OLESize.html +6 -13
- data/rdoc/RubyXL/OOXMLContainerObject.html +57 -140
- data/rdoc/RubyXL/OOXMLIgnored.html +24 -55
- data/rdoc/RubyXL/OOXMLObject.html +9 -19
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +80 -115
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +79 -185
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +86 -223
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +46 -123
- data/rdoc/RubyXL/OdbcOleDbProperties.html +6 -13
- data/rdoc/RubyXL/Offset.html +6 -13
- data/rdoc/RubyXL/OlapProperties.html +6 -13
- 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 +6 -13
- data/rdoc/RubyXL/PageMargins.html +6 -13
- data/rdoc/RubyXL/PageSetup.html +6 -13
- data/rdoc/RubyXL/PageSetupProperties.html +6 -13
- data/rdoc/RubyXL/Pane.html +6 -13
- data/rdoc/RubyXL/Parser.html +24 -54
- data/rdoc/RubyXL/PatternFill.html +6 -13
- data/rdoc/RubyXL/PersonMetadata.html +108 -0
- data/rdoc/RubyXL/PhoneticProperties.html +6 -13
- data/rdoc/RubyXL/PhoneticRun.html +6 -13
- data/rdoc/RubyXL/PivotArea.html +6 -13
- data/rdoc/RubyXL/PivotCache.html +6 -13
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +8 -26
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +6 -21
- data/rdoc/RubyXL/PivotCaches.html +6 -13
- data/rdoc/RubyXL/PivotReference.html +6 -13
- data/rdoc/RubyXL/PivotReferences.html +6 -13
- data/rdoc/RubyXL/PivotTableFile.html +8 -26
- data/rdoc/RubyXL/PivotTableSelection.html +6 -13
- data/rdoc/RubyXL/PresetGeometry.html +6 -13
- data/rdoc/RubyXL/PrintOptions.html +6 -13
- data/rdoc/RubyXL/PrinterSettingsFile.html +6 -21
- data/rdoc/RubyXL/ProtectedRange.html +6 -13
- data/rdoc/RubyXL/ProtectedRanges.html +6 -13
- data/rdoc/RubyXL/Protection.html +6 -13
- data/rdoc/RubyXL/QueryParameter.html +6 -13
- data/rdoc/RubyXL/QueryParameters.html +6 -13
- data/rdoc/RubyXL/QueryTable.html +18 -48
- data/rdoc/RubyXL/QueryTableDeletedField.html +6 -13
- data/rdoc/RubyXL/QueryTableDeletedFields.html +6 -13
- data/rdoc/RubyXL/QueryTableField.html +6 -13
- data/rdoc/RubyXL/QueryTableFields.html +6 -13
- data/rdoc/RubyXL/QueryTableRefresh.html +6 -13
- data/rdoc/RubyXL/RID.html +6 -13
- data/rdoc/RubyXL/RawOOXML.html +24 -60
- data/rdoc/RubyXL/Reference.html +137 -263
- data/rdoc/RubyXL/Relationship.html +6 -13
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +14 -32
- data/rdoc/RubyXL/RelationshipSupport.html +52 -137
- data/rdoc/RubyXL/RevisionPointer.html +6 -13
- data/rdoc/RubyXL/RichText.html +19 -37
- data/rdoc/RubyXL/RichTextRun.html +16 -35
- data/rdoc/RubyXL/Row.html +63 -180
- data/rdoc/RubyXL/RowExt.html +6 -13
- data/rdoc/RubyXL/RunProperties.html +6 -13
- data/rdoc/RubyXL/Scenario.html +6 -13
- data/rdoc/RubyXL/Scenarios.html +6 -13
- data/rdoc/RubyXL/Selection.html +16 -35
- data/rdoc/RubyXL/ShapeGuide.html +6 -13
- data/rdoc/RubyXL/ShapeTextRectangle.html +6 -13
- data/rdoc/RubyXL/SharedStringsTable.html +60 -156
- data/rdoc/RubyXL/Sheet.html +6 -13
- data/rdoc/RubyXL/SheetCalculationProperties.html +6 -13
- data/rdoc/RubyXL/SheetData.html +21 -51
- data/rdoc/RubyXL/SheetDataExt.html +6 -13
- data/rdoc/RubyXL/SheetDataSet.html +6 -13
- data/rdoc/RubyXL/SheetMetadata.html +108 -0
- data/rdoc/RubyXL/SheetName.html +6 -13
- data/rdoc/RubyXL/SheetNames.html +6 -13
- data/rdoc/RubyXL/Sheets.html +6 -13
- data/rdoc/RubyXL/SlicerCacheFile.html +6 -21
- data/rdoc/RubyXL/SlicerFile.html +6 -21
- data/rdoc/RubyXL/SmartTagProperties.html +6 -13
- data/rdoc/RubyXL/SmartTagType.html +6 -13
- data/rdoc/RubyXL/SmartTagTypes.html +6 -13
- data/rdoc/RubyXL/SmartTags.html +6 -13
- data/rdoc/RubyXL/SortCondition.html +6 -13
- data/rdoc/RubyXL/SortState.html +6 -13
- data/rdoc/RubyXL/Sqref.html +25 -56
- data/rdoc/RubyXL/Stop.html +6 -13
- data/rdoc/RubyXL/StringNode.html +6 -13
- data/rdoc/RubyXL/StringNodeW3C.html +24 -55
- data/rdoc/RubyXL/StringValue.html +6 -13
- data/rdoc/RubyXL/Stylesheet.html +45 -118
- data/rdoc/RubyXL/TableFile.html +6 -21
- data/rdoc/RubyXL/TableParts.html +6 -13
- data/rdoc/RubyXL/TableStyle.html +6 -13
- data/rdoc/RubyXL/TableStyles.html +6 -13
- data/rdoc/RubyXL/Text.html +25 -63
- data/rdoc/RubyXL/TextImportSettings.html +6 -13
- data/rdoc/RubyXL/Theme.html +46 -96
- data/rdoc/RubyXL/ThemeElements.html +6 -13
- data/rdoc/RubyXL/ThumbnailFile.html +6 -21
- data/rdoc/RubyXL/Top10.html +6 -13
- data/rdoc/RubyXL/VMLDrawingFile.html +9 -27
- data/rdoc/RubyXL/Variant.html +6 -13
- data/rdoc/RubyXL/Vector.html +16 -35
- data/rdoc/RubyXL/VectorValue.html +6 -13
- data/rdoc/RubyXL/VisualProperties.html +6 -13
- data/rdoc/RubyXL/WebPublishObject.html +6 -13
- data/rdoc/RubyXL/WebPublishObjects.html +6 -13
- data/rdoc/RubyXL/WebPublishingItem.html +6 -13
- data/rdoc/RubyXL/WebPublishingItems.html +6 -13
- data/rdoc/RubyXL/WebPublishingProperties.html +6 -13
- data/rdoc/RubyXL/WebQueryProperties.html +6 -13
- data/rdoc/RubyXL/Workbook.html +222 -583
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +170 -309
- data/rdoc/RubyXL/WorkbookProperties.html +6 -13
- data/rdoc/RubyXL/WorkbookProtection.html +6 -13
- data/rdoc/RubyXL/WorkbookRoot.html +47 -125
- data/rdoc/RubyXL/WorkbookView.html +6 -13
- data/rdoc/RubyXL/WorkbookViews.html +6 -13
- data/rdoc/RubyXL/Worksheet.html +79 -160
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +605 -1269
- data/rdoc/RubyXL/WorksheetDimensions.html +6 -13
- data/rdoc/RubyXL/WorksheetFormatProperties.html +6 -13
- data/rdoc/RubyXL/WorksheetProperties.html +6 -13
- data/rdoc/RubyXL/WorksheetProtection.html +6 -13
- data/rdoc/RubyXL/WorksheetView.html +6 -13
- data/rdoc/RubyXL/WorksheetViews.html +6 -13
- data/rdoc/RubyXL/XF.html +6 -13
- data/rdoc/RubyXL.html +15 -324
- data/rdoc/created.rid +44 -44
- data/rdoc/css/rdoc.css +76 -8
- data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/rdoc/index.html +397 -769
- data/rdoc/js/darkfish.js +14 -1
- data/rdoc/js/navigation.js +8 -8
- data/rdoc/js/navigation.js.gz +0 -0
- data/rdoc/js/search.js +4 -4
- 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 +68 -5
- data/rubyXL.gemspec +28 -29
- data/spec/lib/cell_spec.rb +67 -9
- data/spec/lib/color_spec.rb +8 -1
- data/spec/lib/parser_spec.rb +28 -28
- data/spec/lib/reference_spec.rb +41 -5
- data/spec/lib/rgb_color_spec.rb +16 -3
- data/spec/lib/stylesheet_spec.rb +10 -11
- data/spec/lib/text_spec.rb +4 -6
- data/spec/lib/workbook_spec.rb +20 -8
- data/spec/lib/worksheet_spec.rb +815 -460
- data/spec/spec_helper.rb +2 -0
- data/test/test_parse_write.rb +3 -3
- metadata +26 -6
- data/Gemfile.lock +0 -92
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,105 @@
|
|
|
1
1
|
module RubyXL
|
|
2
|
-
module LegacyWorksheet
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
module LegacyWorksheet
|
|
3
|
+
TEXT_LENGTH_LIMIT_IN_CELL = 32767 # 2 ** 15 - 1
|
|
4
|
+
|
|
5
|
+
include Enumerable
|
|
6
|
+
|
|
7
|
+
def initialize(params = {})
|
|
8
|
+
super
|
|
9
|
+
self.workbook = params[:workbook]
|
|
10
|
+
self.sheet_name = params[:sheet_name]
|
|
11
|
+
self.sheet_id = params[:sheet_id]
|
|
12
|
+
self.sheet_data = RubyXL::SheetData.new
|
|
13
|
+
self.cols = RubyXL::ColumnRanges.new
|
|
14
|
+
@comments = [] # Do not optimize! These are arrays, so they will share the pointer!
|
|
15
|
+
@printer_settings = []
|
|
16
|
+
@generic_storage = []
|
|
17
|
+
end
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
# allows for easier access to sheet_data
|
|
20
|
+
def [](row = 0)
|
|
21
|
+
sheet_data[row]
|
|
22
|
+
end
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
def each
|
|
25
|
+
sheet_data.rows.each { |row| yield(row) }
|
|
26
|
+
end
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
def add_row(row_index = 0, params = {})
|
|
29
|
+
new_row = RubyXL::Row.new(params)
|
|
30
|
+
new_row.worksheet = self
|
|
31
|
+
sheet_data.rows[row_index] = new_row
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true)
|
|
35
|
+
validate_workbook
|
|
36
|
+
validate_nonnegative(row_index)
|
|
37
|
+
validate_nonnegative(column_index)
|
|
38
|
+
row = sheet_data.rows[row_index] || add_row(row_index)
|
|
39
|
+
|
|
40
|
+
c = row.cells[column_index]
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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)
|
|
48
|
-
c.raw_value = data
|
|
49
|
-
else
|
|
50
|
-
case data
|
|
51
|
-
when Numeric then c.raw_value = data
|
|
52
|
-
when String then
|
|
42
|
+
if overwrite || c.nil?
|
|
43
|
+
c = RubyXL::Cell.new
|
|
44
|
+
c.worksheet = self
|
|
45
|
+
c.row = row_index
|
|
46
|
+
c.column = column_index
|
|
47
|
+
|
|
48
|
+
if formula then
|
|
49
|
+
c.formula = RubyXL::Formula.new(:expression => formula)
|
|
53
50
|
c.raw_value = data
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
c.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
51
|
+
else
|
|
52
|
+
case data
|
|
53
|
+
when Numeric then c.raw_value = data
|
|
54
|
+
when String then
|
|
55
|
+
if data.length > TEXT_LENGTH_LIMIT_IN_CELL
|
|
56
|
+
raise ArgumentError, "The maximum length of cell contents (text) is #{TEXT_LENGTH_LIMIT_IN_CELL} characters"
|
|
57
|
+
end
|
|
58
|
+
c.raw_value = data
|
|
59
|
+
c.datatype = RubyXL::DataType::RAW_STRING
|
|
60
|
+
when RubyXL::RichText then
|
|
61
|
+
if data.to_s.length > TEXT_LENGTH_LIMIT_IN_CELL
|
|
62
|
+
raise ArgumentError, "The maximum length of cell contents (text) is #{TEXT_LENGTH_LIMIT_IN_CELL} characters"
|
|
63
|
+
end
|
|
64
|
+
c.is = data
|
|
65
|
+
c.datatype = RubyXL::DataType::INLINE_STRING
|
|
66
|
+
when Time, Date, DateTime then
|
|
67
|
+
c.raw_value = workbook.date_to_num(data)
|
|
68
|
+
when NilClass then nil
|
|
69
|
+
end
|
|
61
70
|
end
|
|
71
|
+
|
|
72
|
+
range = cols&.locate_range(column_index)
|
|
73
|
+
c.style_index = row.style_index || range&.style_index || 0
|
|
74
|
+
row.cells[column_index] = c
|
|
62
75
|
end
|
|
63
76
|
|
|
64
|
-
|
|
65
|
-
c.style_index = row.style_index || (range && range.style_index) || 0
|
|
66
|
-
row.cells[column_index] = c
|
|
77
|
+
c
|
|
67
78
|
end
|
|
68
79
|
|
|
69
|
-
|
|
70
|
-
end
|
|
80
|
+
private
|
|
71
81
|
|
|
72
|
-
|
|
82
|
+
# validates Workbook, ensures that this worksheet is in @workbook
|
|
83
|
+
def validate_workbook
|
|
84
|
+
unless @workbook.nil? || @workbook.worksheets.nil?
|
|
85
|
+
return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
|
|
86
|
+
end
|
|
73
87
|
|
|
74
|
-
|
|
75
|
-
def validate_workbook()
|
|
76
|
-
unless @workbook.nil? || @workbook.worksheets.nil?
|
|
77
|
-
return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
|
|
88
|
+
raise "This worksheet #{self} is not in workbook #{@workbook}"
|
|
78
89
|
end
|
|
79
90
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
def ensure_cell_exists(row_index, column_index = 0)
|
|
86
|
-
validate_nonnegative(row_index)
|
|
87
|
-
validate_nonnegative(column_index)
|
|
91
|
+
# Ensures that storage space for a cell with +row_index+ and +column_index+
|
|
92
|
+
# exists in +sheet_data+ arrays, growing them up if necessary.
|
|
93
|
+
def ensure_cell_exists(row_index, column_index = 0)
|
|
94
|
+
validate_nonnegative(row_index)
|
|
95
|
+
validate_nonnegative(column_index)
|
|
88
96
|
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
sheet_data.rows[row_index] || add_row(row_index)
|
|
98
|
+
end
|
|
91
99
|
|
|
92
|
-
|
|
93
|
-
|
|
100
|
+
def validate_nonnegative(row_or_col)
|
|
101
|
+
raise 'Row and Column arguments must be nonnegative' if row_or_col < 0
|
|
102
|
+
end
|
|
103
|
+
private :validate_nonnegative
|
|
94
104
|
end
|
|
95
|
-
private :validate_nonnegative
|
|
96
|
-
|
|
97
|
-
end #end class
|
|
98
105
|
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.33</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">
|
|
@@ -42,7 +41,7 @@
|
|
|
42
41
|
<div id="search-field-wrapper">
|
|
43
42
|
<input id="search-field" role="combobox" aria-label="Search"
|
|
44
43
|
aria-autocomplete="list" aria-controls="search-results"
|
|
45
|
-
type="text" name="search" placeholder="Search" spellcheck="false"
|
|
44
|
+
type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
|
|
46
45
|
title="Type to search, Up and Down to navigate, Enter to load">
|
|
47
46
|
</div>
|
|
48
47
|
|
|
@@ -58,60 +57,112 @@
|
|
|
58
57
|
<div class="nav-section">
|
|
59
58
|
<h3>Table of Contents</h3>
|
|
60
59
|
|
|
60
|
+
|
|
61
|
+
|
|
61
62
|
<ul class="link-list" role="directory">
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
63
|
+
<li>
|
|
64
|
+
<details open>
|
|
65
|
+
<summary> <a href="#label-rubyXL">rubyXL</a>
|
|
66
|
+
</summary>
|
|
67
|
+
<ul class="link-list" role="directory">
|
|
68
|
+
<li> <a href="#label-To+Install-3A">To Install:</a>
|
|
69
|
+
<li>
|
|
70
|
+
<details open>
|
|
71
|
+
<summary> <a href="#label-To+Use-3A">To Use:</a>
|
|
72
|
+
</summary>
|
|
73
|
+
<ul class="link-list" role="directory">
|
|
74
|
+
<li> <a href="#label-Convenience+methods">Convenience methods</a>
|
|
75
|
+
<li> <a href="#label-Parsing+an+existing+workbook">Parsing an existing workbook</a>
|
|
76
|
+
<li> <a href="#label-Creating+a+new+Workbook">Creating a new Workbook</a>
|
|
77
|
+
<li>
|
|
78
|
+
<details open>
|
|
79
|
+
<summary> <a href="#label-Accessing">Accessing</a>
|
|
80
|
+
</summary>
|
|
81
|
+
<ul class="link-list" role="directory">
|
|
82
|
+
<li> <a href="#label-Accessing+a+Worksheet">Accessing a Worksheet</a>
|
|
83
|
+
<li> <a href="#label-Accessing+a+Row+-28Array+of+Cells-29">Accessing a Row (Array of Cells)</a>
|
|
84
|
+
<li> <a href="#label-Accessing+a+Cell+object">Accessing a Cell object</a>
|
|
85
|
+
<li> <a href="#label-Wrappers+for+accessing+Cell+properties">Wrappers for accessing Cell properties</a>
|
|
86
|
+
<li> <a href="#label-Wrappers+for+accessing+Row+properties+">Wrappers for accessing Row properties </a>
|
|
87
|
+
<li> <a href="#label-Accessing+column+properties">Accessing column properties</a>
|
|
88
|
+
|
|
89
|
+
</ul>
|
|
90
|
+
</details>
|
|
91
|
+
</li>
|
|
92
|
+
<li>
|
|
93
|
+
<details open>
|
|
94
|
+
<summary> <a href="#label-Modifying">Modifying</a>
|
|
95
|
+
</summary>
|
|
96
|
+
<ul class="link-list" role="directory">
|
|
97
|
+
<li> <a href="#label-Adding+Worksheets">Adding Worksheets</a>
|
|
98
|
+
<li> <a href="#label-Renaming+Worksheets">Renaming Worksheets</a>
|
|
99
|
+
<li> <a href="#label-Adding+Cells">Adding Cells</a>
|
|
100
|
+
<li> <a href="#label-Changing+Cells">Changing Cells</a>
|
|
101
|
+
<li> <a href="#label-Changing+Fonts">Changing Fonts</a>
|
|
102
|
+
<li> <a href="#label-Changing+Fills+++++">Changing Fills </a>
|
|
103
|
+
<li> <a href="#label-Changing+Borders">Changing Borders</a>
|
|
104
|
+
<li>
|
|
105
|
+
<details open>
|
|
106
|
+
<summary> <a href="#label-Changing+Alignment">Changing Alignment</a>
|
|
107
|
+
</summary>
|
|
108
|
+
<ul class="link-list" role="directory">
|
|
109
|
+
<li> <a href="#label-Horizontal">Horizontal</a>
|
|
110
|
+
<li> <a href="#label-Vertical">Vertical</a>
|
|
111
|
+
<li> <a href="#label-Rotation">Rotation</a>
|
|
112
|
+
|
|
113
|
+
</ul>
|
|
114
|
+
</details>
|
|
115
|
+
</li>
|
|
116
|
+
<li> <a href="#label-Changing+Row+Height">Changing Row Height</a>
|
|
117
|
+
<li> <a href="#label-Changing+Column+Width">Changing Column Width</a>
|
|
118
|
+
<li> <a href="#label-Merging+Cells">Merging Cells</a>
|
|
119
|
+
<li> <a href="#label-Insert+Row">Insert Row</a>
|
|
120
|
+
<li> <a href="#label-Insert+Column">Insert Column</a>
|
|
121
|
+
<li> <a href="#label-Delete+Row">Delete Row</a>
|
|
122
|
+
<li> <a href="#label-Delete+Column">Delete Column</a>
|
|
123
|
+
<li> <a href="#label-Insert+Cell">Insert Cell</a>
|
|
124
|
+
<li> <a href="#label-Delete+Cell">Delete Cell</a>
|
|
125
|
+
<li> <a href="#label-Modifying+Cell+Format">Modifying Cell Format</a>
|
|
126
|
+
<li> <a href="#label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell</a>
|
|
127
|
+
|
|
128
|
+
</ul>
|
|
129
|
+
</details>
|
|
130
|
+
</li>
|
|
131
|
+
|
|
132
|
+
</ul>
|
|
133
|
+
</details>
|
|
134
|
+
</li>
|
|
135
|
+
<li> <a href="#label-I-2FO">I/O</a>
|
|
136
|
+
<li>
|
|
137
|
+
<details open>
|
|
138
|
+
<summary> <a href="#label-Miscellaneous">Miscellaneous</a>
|
|
139
|
+
</summary>
|
|
140
|
+
<ul class="link-list" role="directory">
|
|
141
|
+
<li> <a href="#label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files</a>
|
|
142
|
+
|
|
143
|
+
</ul>
|
|
144
|
+
</details>
|
|
145
|
+
</li>
|
|
146
|
+
<li> <a href="#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)</a>
|
|
147
|
+
<li> <a href="#label-For+more+information">For more information</a>
|
|
148
|
+
<li> <a href="#label-Contributing+to+rubyXL">Contributing to rubyXL</a>
|
|
149
|
+
<li> <a href="#label-Copyright">Copyright</a>
|
|
150
|
+
|
|
151
|
+
</ul>
|
|
152
|
+
</details>
|
|
153
|
+
</li>
|
|
154
|
+
|
|
103
155
|
</ul>
|
|
104
156
|
</div>
|
|
105
157
|
|
|
106
158
|
|
|
107
159
|
<div id="project-metadata">
|
|
108
|
-
|
|
160
|
+
|
|
161
|
+
<div id="fileindex-section" class="nav-section">
|
|
109
162
|
<h3>Pages</h3>
|
|
110
163
|
|
|
111
164
|
<ul class="link-list">
|
|
112
|
-
|
|
113
165
|
<li><a href="./README_rdoc.html">README</a>
|
|
114
|
-
|
|
115
166
|
</ul>
|
|
116
167
|
</div>
|
|
117
168
|
|
|
@@ -122,7 +173,7 @@
|
|
|
122
173
|
|
|
123
174
|
<h1 id="label-rubyXL">rubyXL<span><a href="#label-rubyXL">¶</a> <a href="#top">↑</a></span></h1>
|
|
124
175
|
|
|
125
|
-
<p><a href="http://badge.fury.io/rb/rubyXL"><img src="https://badge.fury.io/rb/rubyXL.svg"
|
|
176
|
+
<p><a href="http://badge.fury.io/rb/rubyXL"><img src="https://badge.fury.io/rb/rubyXL.svg"></a> <a href="https://codeclimate.com/github/weshatheleopard/rubyXL"><img src="https://codeclimate.com/github/weshatheleopard/rubyXL.png"></a> <a href="https://circleci.com/gh/weshatheleopard/rubyXL"><img src="https://circleci.com/gh/weshatheleopard/rubyXL.svg?style=svg"></a></p>
|
|
126
177
|
|
|
127
178
|
<p>This gem supports operating on <code>xlsx</code> files (Open XML format). While it is capable of properly parsing the entire OOXML structure, its current main emphasis is on reading files produced by MS Excel, making minor modifications to them and saving them to be opened again, while preserving as much of the structure as possible.</p>
|
|
128
179
|
|
|
@@ -189,6 +240,15 @@
|
|
|
189
240
|
<pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
|
|
190
241
|
<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
242
|
<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>
|
|
243
|
+
|
|
244
|
+
<span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
|
|
245
|
+
<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>
|
|
246
|
+
<span class="ruby-comment"># is holding a number, returns a respective Integer or Float, and so on).</span>
|
|
247
|
+
</pre>
|
|
248
|
+
|
|
249
|
+
<p>Or, if you prefer Excel-style references (single-cell only!)</p>
|
|
250
|
+
|
|
251
|
+
<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
252
|
</pre>
|
|
193
253
|
|
|
194
254
|
<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 +354,30 @@
|
|
|
294
354
|
|
|
295
355
|
<h5 id="label-Horizontal">Horizontal<span><a href="#label-Horizontal">¶</a> <a href="#top">↑</a></span></h5>
|
|
296
356
|
|
|
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>
|
|
357
|
+
<pre class="ruby"><span class="ruby-comment"># Possible alignments: center, distributed, justify, left, right</span>
|
|
358
|
+
<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
359
|
<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
360
|
<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
361
|
</pre>
|
|
303
362
|
|
|
304
363
|
<h5 id="label-Vertical">Vertical<span><a href="#label-Vertical">¶</a> <a href="#top">↑</a></span></h5>
|
|
305
364
|
|
|
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>
|
|
365
|
+
<pre class="ruby"><span class="ruby-comment"># Possible alignments: bottom, center, distributed, top</span>
|
|
366
|
+
<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
367
|
<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
368
|
<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
369
|
</pre>
|
|
312
370
|
|
|
313
371
|
<h5 id="label-Rotation">Rotation<span><a href="#label-Rotation">¶</a> <a href="#top">↑</a></span></h5>
|
|
314
372
|
|
|
315
|
-
<pre class="ruby"><span class="ruby-
|
|
373
|
+
<pre class="ruby"><span class="ruby-comment"># Possible values:</span>
|
|
374
|
+
<span class="ruby-comment"># * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</span>
|
|
375
|
+
<span class="ruby-comment"># * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</span>
|
|
376
|
+
<span class="ruby-comment"># * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</span>
|
|
377
|
+
<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>
|
|
378
|
+
<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
379
|
</pre>
|
|
317
380
|
|
|
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
381
|
<h4 id="label-Changing+Row+Height">Changing Row Height<span><a href="#label-Changing+Row+Height">¶</a> <a href="#top">↑</a></span></h4>
|
|
330
382
|
|
|
331
383
|
<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>
|
|
@@ -338,8 +390,9 @@
|
|
|
338
390
|
|
|
339
391
|
<h4 id="label-Merging+Cells">Merging Cells<span><a href="#label-Merging+Cells">¶</a> <a href="#top">↑</a></span></h4>
|
|
340
392
|
|
|
341
|
-
<pre
|
|
342
|
-
|
|
393
|
+
<pre>worksheet.merge_cells(0, 1, 2, 3) # Merges B1:D3
|
|
394
|
+
worksheet.merge_cells('A2:C4') # Merges A2:C4
|
|
395
|
+
worksheet.merge_cells(row_from: 0, row_to: 1, col_from 2:, col_to: 3) # Merges C1:D2</pre>
|
|
343
396
|
|
|
344
397
|
<h4 id="label-Insert+Row">Insert Row<span><a href="#label-Insert+Row">¶</a> <a href="#top">↑</a></span></h4>
|
|
345
398
|
|
|
@@ -404,9 +457,16 @@
|
|
|
404
457
|
<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
458
|
<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
459
|
<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>
|
|
460
|
+
<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
461
|
<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
462
|
</pre>
|
|
409
463
|
|
|
464
|
+
<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>
|
|
465
|
+
|
|
466
|
+
<pre class="ruby"><span class="ruby-identifier">cell</span>.<span class="ruby-identifier">add_hyperlink</span>(<span class="ruby-string">'http://example.com'</span>)
|
|
467
|
+
<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>)
|
|
468
|
+
</pre>
|
|
469
|
+
|
|
410
470
|
<h2 id="label-I-2FO">I/O<span><a href="#label-I-2FO">¶</a> <a href="#top">↑</a></span></h2>
|
|
411
471
|
|
|
412
472
|
<p>By default, the gem operates with files on the local filesystem:</p>
|
|
@@ -432,15 +492,20 @@
|
|
|
432
492
|
<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
493
|
</pre>
|
|
434
494
|
|
|
495
|
+
<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>
|
|
496
|
+
|
|
497
|
+
<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> ])
|
|
498
|
+
</pre>
|
|
499
|
+
|
|
435
500
|
<h2 id="label-For+more+information">For more information<span><a href="#label-For+more+information">¶</a> <a href="#top">↑</a></span></h2>
|
|
436
501
|
|
|
437
502
|
<p>Take a look at the files in spec/lib/ for rspecs on most methods</p>
|
|
438
503
|
|
|
439
504
|
<h2 id="label-Contributing+to+rubyXL">Contributing to rubyXL<span><a href="#label-Contributing+to+rubyXL">¶</a> <a href="#top">↑</a></span></h2>
|
|
440
505
|
<ul><li>
|
|
441
|
-
<p>Check out the latest master to make sure the feature hasn
|
|
506
|
+
<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
507
|
</li><li>
|
|
443
|
-
<p>Check out the issue tracker to make sure someone already hasn
|
|
508
|
+
<p>Check out the issue tracker to make sure someone already hasn’t requested it and/or contributed it</p>
|
|
444
509
|
</li><li>
|
|
445
510
|
<p>Fork the project</p>
|
|
446
511
|
</li><li>
|
|
@@ -448,21 +513,22 @@
|
|
|
448
513
|
</li><li>
|
|
449
514
|
<p>Commit and push until you are happy with your contribution</p>
|
|
450
515
|
</li><li>
|
|
451
|
-
<p>Make sure to add tests for it. This is important so I don
|
|
516
|
+
<p>Make sure to add tests for it. This is important so I don’t break it in a future version unintentionally.</p>
|
|
452
517
|
</li><li>
|
|
453
518
|
<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
519
|
</li></ul>
|
|
455
520
|
|
|
456
521
|
<h2 id="label-Copyright">Copyright<span><a href="#label-Copyright">¶</a> <a href="#top">↑</a></span></h2>
|
|
457
522
|
|
|
458
|
-
<p>Copyright © 2011 Vivek Bhagwat, 2013-
|
|
523
|
+
<p>Copyright © 2011 Vivek Bhagwat, 2013-2022 Wesha. See LICENSE.txt for further details.</p>
|
|
524
|
+
|
|
459
525
|
</main>
|
|
460
526
|
|
|
461
527
|
|
|
462
528
|
|
|
463
529
|
<footer id="validator-badges" role="contentinfo">
|
|
464
530
|
<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.
|
|
531
|
+
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.6.3.1.
|
|
466
532
|
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
|
467
533
|
</footer>
|
|
468
534
|
|