rubyXL 3.4.18 → 3.4.25
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/Gemfile +8 -8
- data/Gemfile.lock +37 -30
- data/README.rdoc +18 -9
- data/Rakefile +24 -25
- 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 +3 -7
- data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
- data/lib/rubyXL/convenience_methods/worksheet.rb +3 -4
- 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 +5 -9
- 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 +0 -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 +4 -6
- 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 +13 -18
- data/lib/rubyXL/objects/query_table.rb +3 -3
- data/lib/rubyXL/objects/reference.rb +6 -8
- data/lib/rubyXL/objects/relationships.rb +5 -10
- 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 +4 -7
- data/lib/rubyXL/objects/simple_types.rb +3 -1
- data/lib/rubyXL/objects/storage.rb +51 -51
- data/lib/rubyXL/objects/stylesheet.rb +8 -15
- data/lib/rubyXL/objects/text.rb +5 -7
- data/lib/rubyXL/objects/theme.rb +4 -7
- data/lib/rubyXL/objects/workbook.rb +25 -27
- data/lib/rubyXL/objects/worksheet.rb +26 -22
- 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 +29 -24
- data/rdoc/RubyXL/AExtension.html +2 -2
- data/rdoc/RubyXL/AExtensionStorageArea.html +2 -2
- data/rdoc/RubyXL/ActiveX.html +4 -4
- data/rdoc/RubyXL/ActiveXBinary.html +2 -2
- data/rdoc/RubyXL/AdjustHandleList.html +2 -2
- data/rdoc/RubyXL/Alignment.html +2 -2
- data/rdoc/RubyXL/AlternateContent.html +2 -2
- data/rdoc/RubyXL/Authors.html +2 -2
- data/rdoc/RubyXL/AutoFilter.html +2 -2
- data/rdoc/RubyXL/AutoFilterColumn.html +2 -2
- data/rdoc/RubyXL/BinaryImageFile.html +2 -2
- data/rdoc/RubyXL/BodyProperties.html +2 -2
- data/rdoc/RubyXL/BooleanNode.html +2 -2
- data/rdoc/RubyXL/BooleanValue.html +2 -2
- data/rdoc/RubyXL/Border.html +6 -6
- data/rdoc/RubyXL/BorderEdge.html +4 -4
- data/rdoc/RubyXL/Borders.html +3 -3
- data/rdoc/RubyXL/Break.html +2 -2
- data/rdoc/RubyXL/BreakList.html +2 -2
- data/rdoc/RubyXL/CT_AdjPoint2D.html +2 -2
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +2 -2
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +2 -2
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +2 -2
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +2 -2
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +2 -2
- data/rdoc/RubyXL/CT_Backdrop.html +2 -2
- data/rdoc/RubyXL/CT_Bevel.html +2 -2
- data/rdoc/RubyXL/CT_BiLevelEffect.html +2 -2
- data/rdoc/RubyXL/CT_BlendEffect.html +2 -2
- data/rdoc/RubyXL/CT_Blip.html +2 -2
- data/rdoc/RubyXL/CT_BlipFillProperties.html +2 -2
- data/rdoc/RubyXL/CT_BlurEffect.html +2 -2
- data/rdoc/RubyXL/CT_Camera.html +2 -2
- data/rdoc/RubyXL/CT_Color.html +2 -2
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +2 -2
- data/rdoc/RubyXL/CT_ColorMapping.html +2 -2
- data/rdoc/RubyXL/CT_ColorScheme.html +2 -2
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +2 -2
- data/rdoc/RubyXL/CT_ConnectionSite.html +2 -2
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +2 -2
- data/rdoc/RubyXL/CT_DashStop.html +2 -2
- data/rdoc/RubyXL/CT_DashStopList.html +2 -2
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +2 -2
- data/rdoc/RubyXL/CT_DuotoneEffect.html +2 -2
- data/rdoc/RubyXL/CT_EffectContainer.html +2 -2
- data/rdoc/RubyXL/CT_EffectList.html +2 -2
- data/rdoc/RubyXL/CT_EffectReference.html +2 -2
- data/rdoc/RubyXL/CT_EffectStyleItem.html +2 -2
- data/rdoc/RubyXL/CT_EffectStyleList.html +2 -2
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +2 -2
- data/rdoc/RubyXL/CT_FillEffect.html +2 -2
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +2 -2
- data/rdoc/RubyXL/CT_FillStyleList.html +2 -2
- data/rdoc/RubyXL/CT_FlatText.html +2 -2
- data/rdoc/RubyXL/CT_FontCollection.html +2 -2
- data/rdoc/RubyXL/CT_FontReference.html +2 -2
- data/rdoc/RubyXL/CT_GeomGuideList.html +2 -2
- data/rdoc/RubyXL/CT_GlowEffect.html +2 -2
- data/rdoc/RubyXL/CT_GradientFillProperties.html +2 -2
- data/rdoc/RubyXL/CT_GradientStop.html +2 -2
- data/rdoc/RubyXL/CT_GradientStopList.html +2 -2
- data/rdoc/RubyXL/CT_HSLEffect.html +2 -2
- data/rdoc/RubyXL/CT_HslColor.html +2 -2
- data/rdoc/RubyXL/CT_Hyperlink.html +2 -2
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +2 -2
- data/rdoc/RubyXL/CT_LightRig.html +2 -2
- data/rdoc/RubyXL/CT_LineEndProperties.html +2 -2
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +2 -2
- data/rdoc/RubyXL/CT_LineProperties.html +2 -2
- data/rdoc/RubyXL/CT_LineStyleList.html +2 -2
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +2 -2
- data/rdoc/RubyXL/CT_LuminanceEffect.html +2 -2
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +2 -2
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +2 -2
- data/rdoc/RubyXL/CT_Path2D.html +2 -2
- data/rdoc/RubyXL/CT_Path2DArcTo.html +2 -2
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +2 -2
- data/rdoc/RubyXL/CT_Path2DList.html +2 -2
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +2 -2
- data/rdoc/RubyXL/CT_Path2DTo.html +2 -2
- data/rdoc/RubyXL/CT_PathShadeProperties.html +2 -2
- data/rdoc/RubyXL/CT_PatternFillProperties.html +2 -2
- data/rdoc/RubyXL/CT_Point3D.html +2 -2
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +2 -2
- data/rdoc/RubyXL/CT_PresetColor.html +2 -2
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +2 -2
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +2 -2
- data/rdoc/RubyXL/CT_PresetTextShape.html +2 -2
- data/rdoc/RubyXL/CT_ReflectionEffect.html +2 -2
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +2 -2
- data/rdoc/RubyXL/CT_RelativeRect.html +2 -2
- data/rdoc/RubyXL/CT_SRgbColor.html +2 -2
- data/rdoc/RubyXL/CT_ScRgbColor.html +2 -2
- data/rdoc/RubyXL/CT_Scene3D.html +2 -2
- data/rdoc/RubyXL/CT_SchemeColor.html +2 -2
- data/rdoc/RubyXL/CT_Shape3D.html +2 -2
- data/rdoc/RubyXL/CT_ShapeStyle.html +2 -2
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +2 -2
- data/rdoc/RubyXL/CT_SphereCoords.html +2 -2
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +2 -2
- data/rdoc/RubyXL/CT_StyleMatrix.html +2 -2
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +2 -2
- data/rdoc/RubyXL/CT_SupplementalFont.html +2 -2
- data/rdoc/RubyXL/CT_SystemColor.html +2 -2
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +2 -2
- data/rdoc/RubyXL/CT_TextBlipBullet.html +2 -2
- data/rdoc/RubyXL/CT_TextCharBullet.html +2 -2
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +2 -2
- data/rdoc/RubyXL/CT_TextFont.html +2 -2
- data/rdoc/RubyXL/CT_TextListStyle.html +2 -2
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +2 -2
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +2 -2
- data/rdoc/RubyXL/CT_TextSpacing.html +2 -2
- data/rdoc/RubyXL/CT_TextTabStop.html +2 -2
- data/rdoc/RubyXL/CT_TextTabStopList.html +2 -2
- data/rdoc/RubyXL/CT_TileInfoProperties.html +2 -2
- data/rdoc/RubyXL/CT_TintEffect.html +2 -2
- data/rdoc/RubyXL/CT_Transform2D.html +2 -2
- data/rdoc/RubyXL/CT_TransformEffect.html +2 -2
- data/rdoc/RubyXL/CT_Vector3D.html +2 -2
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +2 -2
- data/rdoc/RubyXL/CalculationChain.html +2 -2
- data/rdoc/RubyXL/CalculationChainCell.html +2 -2
- data/rdoc/RubyXL/CalculationProperties.html +2 -2
- data/rdoc/RubyXL/Cell.html +17 -17
- data/rdoc/RubyXL/CellConvenienceMethods.html +105 -51
- data/rdoc/RubyXL/CellExt.html +2 -2
- data/rdoc/RubyXL/CellSmartTag.html +2 -2
- data/rdoc/RubyXL/CellSmartTagProperty.html +2 -2
- data/rdoc/RubyXL/CellSmartTags.html +2 -2
- data/rdoc/RubyXL/CellStyle.html +2 -2
- data/rdoc/RubyXL/CellStyleXFs.html +3 -3
- data/rdoc/RubyXL/CellStyles.html +3 -3
- data/rdoc/RubyXL/CellValue.html +3 -3
- data/rdoc/RubyXL/CellWatch.html +2 -2
- data/rdoc/RubyXL/CellWatches.html +2 -2
- data/rdoc/RubyXL/CellXFs.html +4 -6
- data/rdoc/RubyXL/ChartColorsFile.html +2 -2
- data/rdoc/RubyXL/ChartFile.html +3 -3
- data/rdoc/RubyXL/ChartStyleFile.html +2 -2
- data/rdoc/RubyXL/ChartUserShapesFile.html +2 -2
- data/rdoc/RubyXL/Chartsheet.html +3 -3
- data/rdoc/RubyXL/ChartsheetPageSetup.html +2 -2
- data/rdoc/RubyXL/ChartsheetProperties.html +2 -2
- data/rdoc/RubyXL/ChartsheetProtection.html +2 -2
- data/rdoc/RubyXL/ChartsheetView.html +2 -2
- data/rdoc/RubyXL/ChartsheetViews.html +2 -2
- data/rdoc/RubyXL/Color.html +4 -4
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +4 -4
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +8 -8
- data/rdoc/RubyXL/ColorConvenienceClasses.html +2 -2
- data/rdoc/RubyXL/ColorConvenienceMethods.html +3 -3
- data/rdoc/RubyXL/ColorFilter.html +2 -2
- data/rdoc/RubyXL/ColorScale.html +2 -2
- data/rdoc/RubyXL/ColorSet.html +2 -2
- data/rdoc/RubyXL/Colors.html +2 -2
- data/rdoc/RubyXL/ColumnRange.html +5 -5
- data/rdoc/RubyXL/ColumnRanges.html +6 -6
- data/rdoc/RubyXL/Comment.html +2 -2
- data/rdoc/RubyXL/CommentList.html +2 -2
- data/rdoc/RubyXL/CommentsFile.html +3 -3
- data/rdoc/RubyXL/ConditionalFormatValue.html +2 -2
- data/rdoc/RubyXL/ConditionalFormatting.html +2 -2
- data/rdoc/RubyXL/ConditionalFormattingRule.html +2 -2
- data/rdoc/RubyXL/Connection.html +2 -2
- data/rdoc/RubyXL/ConnectionTable.html +2 -2
- data/rdoc/RubyXL/ConnectionTables.html +2 -2
- data/rdoc/RubyXL/ConnectionTextField.html +2 -2
- data/rdoc/RubyXL/ConnectionTextFields.html +2 -2
- data/rdoc/RubyXL/Connections.html +2 -2
- data/rdoc/RubyXL/ContentTypeDefault.html +2 -2
- data/rdoc/RubyXL/ContentTypeOverride.html +2 -2
- data/rdoc/RubyXL/ContentTypes.html +6 -6
- data/rdoc/RubyXL/ControlPropertiesFile.html +2 -2
- data/rdoc/RubyXL/CorePropertiesFile.html +11 -11
- data/rdoc/RubyXL/CustomColor.html +2 -2
- data/rdoc/RubyXL/CustomColorList.html +2 -2
- data/rdoc/RubyXL/CustomFilter.html +2 -2
- data/rdoc/RubyXL/CustomFilters.html +2 -2
- data/rdoc/RubyXL/CustomGeometry.html +2 -2
- data/rdoc/RubyXL/CustomProperties.html +2 -2
- data/rdoc/RubyXL/CustomPropertiesFile.html +2 -2
- data/rdoc/RubyXL/CustomProperty.html +2 -2
- data/rdoc/RubyXL/CustomPropertyFile.html +2 -2
- data/rdoc/RubyXL/CustomSheetView.html +2 -2
- data/rdoc/RubyXL/CustomSheetViews.html +2 -2
- data/rdoc/RubyXL/CustomWorkbookView.html +2 -2
- data/rdoc/RubyXL/CustomWorkbookViews.html +2 -2
- data/rdoc/RubyXL/CustomXMLFile.html +2 -2
- data/rdoc/RubyXL/DXF.html +2 -2
- data/rdoc/RubyXL/DXFs.html +2 -2
- data/rdoc/RubyXL/DataBar.html +2 -2
- data/rdoc/RubyXL/DataConsolidate.html +2 -2
- data/rdoc/RubyXL/DataConsolidationReference.html +2 -2
- data/rdoc/RubyXL/DataConsolidationReferences.html +2 -2
- data/rdoc/RubyXL/DataType.html +2 -2
- data/rdoc/RubyXL/DataValidation.html +2 -2
- data/rdoc/RubyXL/DataValidations.html +2 -2
- data/rdoc/RubyXL/DateGroupItem.html +2 -2
- data/rdoc/RubyXL/DefinedName.html +2 -2
- data/rdoc/RubyXL/DefinedNameExt.html +2 -2
- data/rdoc/RubyXL/DefinedNames.html +2 -2
- data/rdoc/RubyXL/DefinedNamesExt.html +2 -2
- data/rdoc/RubyXL/DocumentPropertiesFile.html +4 -4
- data/rdoc/RubyXL/DrawingFile.html +3 -3
- data/rdoc/RubyXL/DynamicFilter.html +2 -2
- data/rdoc/RubyXL/EmbeddedControl.html +2 -2
- data/rdoc/RubyXL/EmbeddedControls.html +2 -2
- data/rdoc/RubyXL/Extension.html +2 -2
- data/rdoc/RubyXL/ExtensionStorageArea.html +2 -2
- data/rdoc/RubyXL/Extents.html +2 -2
- data/rdoc/RubyXL/ExternalBook.html +2 -2
- data/rdoc/RubyXL/ExternalLinksFile.html +3 -3
- data/rdoc/RubyXL/ExternalReference.html +2 -2
- data/rdoc/RubyXL/ExternalReferences.html +2 -2
- data/rdoc/RubyXL/ExtraColorSchemeList.html +2 -2
- data/rdoc/RubyXL/FieldItem.html +2 -2
- data/rdoc/RubyXL/FileRecoveryProperties.html +2 -2
- data/rdoc/RubyXL/FileSharing.html +2 -2
- data/rdoc/RubyXL/FileVersion.html +2 -2
- data/rdoc/RubyXL/Fill.html +3 -3
- data/rdoc/RubyXL/Fills.html +3 -3
- data/rdoc/RubyXL/FilterContainer.html +2 -2
- data/rdoc/RubyXL/FloatNode.html +2 -2
- data/rdoc/RubyXL/FloatValue.html +2 -2
- data/rdoc/RubyXL/Font.html +5 -5
- data/rdoc/RubyXL/FontConvenienceMethods.html +3 -3
- data/rdoc/RubyXL/FontScheme.html +2 -2
- data/rdoc/RubyXL/Fonts.html +3 -3
- data/rdoc/RubyXL/Formula.html +2 -2
- data/rdoc/RubyXL/FunctionGroup.html +2 -2
- data/rdoc/RubyXL/FunctionGroups.html +2 -2
- data/rdoc/RubyXL/GenericStorageObject.html +5 -5
- data/rdoc/RubyXL/GradientFill.html +2 -2
- data/rdoc/RubyXL/HeaderFooterSettings.html +2 -2
- data/rdoc/RubyXL/Hyperlink.html +2 -2
- data/rdoc/RubyXL/HyperlinkRelFile.html +2 -2
- data/rdoc/RubyXL/Hyperlinks.html +2 -2
- data/rdoc/RubyXL/IconFilter.html +2 -2
- data/rdoc/RubyXL/IconSet.html +2 -2
- data/rdoc/RubyXL/IgnoredError.html +2 -2
- data/rdoc/RubyXL/IgnoredErrors.html +2 -2
- data/rdoc/RubyXL/IndexedColors.html +2 -2
- data/rdoc/RubyXL/InputCells.html +2 -2
- data/rdoc/RubyXL/IntegerNode.html +2 -2
- data/rdoc/RubyXL/IntegerValue.html +2 -2
- data/rdoc/RubyXL/LegacyCell.html +3 -3
- data/rdoc/RubyXL/LegacyWorksheet.html +3 -3
- data/rdoc/RubyXL/MRUColors.html +2 -2
- data/rdoc/RubyXL/MacrosFile.html +2 -2
- data/rdoc/RubyXL/MergedCell.html +2 -2
- data/rdoc/RubyXL/MergedCells.html +2 -2
- data/rdoc/RubyXL/NumFmt.html +2 -2
- data/rdoc/RubyXL/NumberFormat.html +4 -4
- data/rdoc/RubyXL/NumberFormats.html +3 -3
- data/rdoc/RubyXL/OLEObject.html +2 -2
- data/rdoc/RubyXL/OLEObjectFile.html +2 -2
- data/rdoc/RubyXL/OLEObjects.html +2 -2
- data/rdoc/RubyXL/OLESize.html +2 -2
- data/rdoc/RubyXL/OOXMLContainerObject.html +8 -8
- data/rdoc/RubyXL/OOXMLIgnored.html +4 -4
- data/rdoc/RubyXL/OOXMLObject.html +3 -3
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +18 -18
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +14 -14
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +16 -16
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +8 -8
- data/rdoc/RubyXL/OdbcOleDbProperties.html +2 -2
- data/rdoc/RubyXL/Offset.html +2 -2
- data/rdoc/RubyXL/OlapProperties.html +2 -2
- data/rdoc/RubyXL/OleItem.html +2 -2
- data/rdoc/RubyXL/OleItems.html +2 -2
- data/rdoc/RubyXL/OleLink.html +2 -2
- data/rdoc/RubyXL/OutlineProperties.html +2 -2
- data/rdoc/RubyXL/PageMargins.html +2 -2
- data/rdoc/RubyXL/PageSetup.html +2 -2
- data/rdoc/RubyXL/PageSetupProperties.html +2 -2
- data/rdoc/RubyXL/Pane.html +2 -2
- data/rdoc/RubyXL/Parser.html +5 -5
- data/rdoc/RubyXL/PatternFill.html +2 -2
- data/rdoc/RubyXL/PhoneticProperties.html +2 -2
- data/rdoc/RubyXL/PhoneticRun.html +2 -2
- data/rdoc/RubyXL/PivotArea.html +2 -2
- data/rdoc/RubyXL/PivotCache.html +2 -2
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +2 -2
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +2 -2
- data/rdoc/RubyXL/PivotCaches.html +2 -2
- data/rdoc/RubyXL/PivotReference.html +2 -2
- data/rdoc/RubyXL/PivotReferences.html +2 -2
- data/rdoc/RubyXL/PivotTableFile.html +2 -2
- data/rdoc/RubyXL/PivotTableSelection.html +2 -2
- data/rdoc/RubyXL/PresetGeometry.html +2 -2
- data/rdoc/RubyXL/PrintOptions.html +2 -2
- data/rdoc/RubyXL/PrinterSettingsFile.html +2 -2
- data/rdoc/RubyXL/ProtectedRange.html +2 -2
- data/rdoc/RubyXL/ProtectedRanges.html +2 -2
- data/rdoc/RubyXL/Protection.html +2 -2
- data/rdoc/RubyXL/QueryParameter.html +2 -2
- data/rdoc/RubyXL/QueryParameters.html +2 -2
- data/rdoc/RubyXL/QueryTable.html +2 -2
- data/rdoc/RubyXL/QueryTableDeletedField.html +2 -2
- data/rdoc/RubyXL/QueryTableDeletedFields.html +2 -2
- data/rdoc/RubyXL/QueryTableField.html +2 -2
- data/rdoc/RubyXL/QueryTableFields.html +2 -2
- data/rdoc/RubyXL/QueryTableRefresh.html +2 -2
- data/rdoc/RubyXL/RID.html +2 -2
- data/rdoc/RubyXL/RawOOXML.html +4 -4
- data/rdoc/RubyXL/Reference.html +36 -17
- data/rdoc/RubyXL/Relationship.html +2 -2
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +3 -3
- data/rdoc/RubyXL/RelationshipSupport.html +8 -8
- data/rdoc/RubyXL/RevisionPointer.html +2 -2
- data/rdoc/RubyXL/RichText.html +5 -4
- data/rdoc/RubyXL/RichTextRun.html +3 -3
- data/rdoc/RubyXL/Row.html +11 -11
- data/rdoc/RubyXL/RowExt.html +2 -2
- data/rdoc/RubyXL/RunProperties.html +2 -2
- data/rdoc/RubyXL/Scenario.html +2 -2
- data/rdoc/RubyXL/Scenarios.html +2 -2
- data/rdoc/RubyXL/Selection.html +3 -3
- data/rdoc/RubyXL/ShapeGuide.html +2 -2
- data/rdoc/RubyXL/ShapeTextRectangle.html +2 -2
- data/rdoc/RubyXL/SharedStringsTable.html +9 -9
- data/rdoc/RubyXL/Sheet.html +2 -2
- data/rdoc/RubyXL/SheetCalculationProperties.html +2 -2
- data/rdoc/RubyXL/SheetData.html +4 -4
- data/rdoc/RubyXL/SheetDataExt.html +2 -2
- data/rdoc/RubyXL/SheetDataSet.html +2 -2
- data/rdoc/RubyXL/SheetMetadata.html +108 -0
- data/rdoc/RubyXL/SheetName.html +2 -2
- data/rdoc/RubyXL/SheetNames.html +2 -2
- data/rdoc/RubyXL/Sheets.html +2 -2
- data/rdoc/RubyXL/SlicerCacheFile.html +2 -2
- data/rdoc/RubyXL/SlicerFile.html +2 -2
- data/rdoc/RubyXL/SmartTagProperties.html +2 -2
- data/rdoc/RubyXL/SmartTagType.html +2 -2
- data/rdoc/RubyXL/SmartTagTypes.html +2 -2
- data/rdoc/RubyXL/SmartTags.html +2 -2
- data/rdoc/RubyXL/SortCondition.html +2 -2
- data/rdoc/RubyXL/SortState.html +2 -2
- data/rdoc/RubyXL/Sqref.html +4 -4
- data/rdoc/RubyXL/Stop.html +2 -2
- data/rdoc/RubyXL/StringNode.html +2 -2
- data/rdoc/RubyXL/StringNodeW3C.html +4 -4
- data/rdoc/RubyXL/StringValue.html +2 -2
- data/rdoc/RubyXL/Stylesheet.html +7 -7
- data/rdoc/RubyXL/TableFile.html +2 -2
- data/rdoc/RubyXL/TableParts.html +2 -2
- data/rdoc/RubyXL/TableStyle.html +2 -2
- data/rdoc/RubyXL/TableStyles.html +2 -2
- data/rdoc/RubyXL/Text.html +6 -6
- data/rdoc/RubyXL/TextImportSettings.html +2 -2
- data/rdoc/RubyXL/Theme.html +5 -5
- data/rdoc/RubyXL/ThemeElements.html +2 -2
- data/rdoc/RubyXL/ThumbnailFile.html +2 -2
- data/rdoc/RubyXL/Top10.html +2 -2
- data/rdoc/RubyXL/VMLDrawingFile.html +3 -3
- data/rdoc/RubyXL/Variant.html +2 -2
- data/rdoc/RubyXL/Vector.html +3 -3
- data/rdoc/RubyXL/VectorValue.html +2 -2
- data/rdoc/RubyXL/VisualProperties.html +2 -2
- data/rdoc/RubyXL/WebPublishObject.html +2 -2
- data/rdoc/RubyXL/WebPublishObjects.html +2 -2
- data/rdoc/RubyXL/WebPublishingItem.html +2 -2
- data/rdoc/RubyXL/WebPublishingItems.html +2 -2
- data/rdoc/RubyXL/WebPublishingProperties.html +2 -2
- data/rdoc/RubyXL/WebQueryProperties.html +2 -2
- data/rdoc/RubyXL/Workbook.html +9 -6
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +65 -21
- data/rdoc/RubyXL/WorkbookProperties.html +2 -2
- data/rdoc/RubyXL/WorkbookProtection.html +2 -2
- data/rdoc/RubyXL/WorkbookRoot.html +7 -7
- data/rdoc/RubyXL/WorkbookView.html +2 -2
- data/rdoc/RubyXL/WorkbookViews.html +2 -2
- data/rdoc/RubyXL/Worksheet.html +32 -8
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +75 -75
- data/rdoc/RubyXL/WorksheetDimensions.html +2 -2
- data/rdoc/RubyXL/WorksheetFormatProperties.html +2 -2
- data/rdoc/RubyXL/WorksheetProperties.html +2 -2
- data/rdoc/RubyXL/WorksheetProtection.html +2 -2
- data/rdoc/RubyXL/WorksheetView.html +2 -2
- data/rdoc/RubyXL/WorksheetViews.html +2 -2
- data/rdoc/RubyXL/XF.html +2 -2
- data/rdoc/RubyXL.html +4 -2
- data/rdoc/created.rid +44 -44
- data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/rdoc/index.html +4 -3
- 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 +37 -3
- data/rubyXL.gemspec +5 -4
- data/spec/lib/cell_spec.rb +14 -7
- 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 +14 -3
- 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 +577 -535
- data/spec/spec_helper.rb +2 -0
- data/test/test_parse_write.rb +3 -3
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 69ceee765ae742ca18903f3db0a368782e581e8324941fd9671e6642fb8ba5d9
|
|
4
|
+
data.tar.gz: 0bed16ef2323e2bd91e33d395a66c9a13b902e5e03cad2de415f4bafcbcb8b3b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d30a855437e79b15c975ad5e13148cfb72e4f2956449dcbc95d6ff691e60a668d729432e80909318010d473e75323c3c4f75c17b57f80c59f22f41bac43bfc35
|
|
7
|
+
data.tar.gz: fe740718fd69d6a8131383d8b5b326df918820d67c08c708e8e80959a9a04ad3f0f18c2d0efb02e6e660dc66456578a8008e98781ee094658ac78fee9319d90b
|
data/Gemfile
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
source
|
|
1
|
+
source 'http://rubygems.org'
|
|
2
2
|
|
|
3
3
|
# Dependencies required to run this gem.
|
|
4
|
-
gem
|
|
5
|
-
gem
|
|
4
|
+
gem 'nokogiri', '>= 1.10.8'
|
|
5
|
+
gem 'rubyzip', '>= 1.3.0' , :require => 'zip'
|
|
6
6
|
|
|
7
7
|
# Development dependencies.
|
|
8
8
|
group :development, :test do
|
|
9
|
-
gem
|
|
10
|
-
gem
|
|
11
|
-
gem
|
|
12
|
-
gem
|
|
13
|
-
gem
|
|
9
|
+
gem 'bundler'
|
|
10
|
+
gem 'rake'
|
|
11
|
+
gem 'juwelier'
|
|
12
|
+
gem 'rspec'
|
|
13
|
+
gem 'simplecov'
|
|
14
14
|
|
|
15
15
|
# gem 'stackprof'
|
|
16
16
|
gem 'ruby-prof'
|
data/Gemfile.lock
CHANGED
|
@@ -6,28 +6,32 @@ GEM
|
|
|
6
6
|
builder (3.2.4)
|
|
7
7
|
descendants_tracker (0.0.4)
|
|
8
8
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
9
|
-
diff-lcs (1.
|
|
9
|
+
diff-lcs (1.5.0)
|
|
10
10
|
docile (1.4.0)
|
|
11
|
-
faraday (1.
|
|
11
|
+
faraday (1.10.0)
|
|
12
12
|
faraday-em_http (~> 1.0)
|
|
13
13
|
faraday-em_synchrony (~> 1.0)
|
|
14
14
|
faraday-excon (~> 1.1)
|
|
15
|
-
faraday-httpclient (~> 1.0
|
|
15
|
+
faraday-httpclient (~> 1.0)
|
|
16
|
+
faraday-multipart (~> 1.0)
|
|
16
17
|
faraday-net_http (~> 1.0)
|
|
17
|
-
faraday-net_http_persistent (~> 1.
|
|
18
|
+
faraday-net_http_persistent (~> 1.0)
|
|
18
19
|
faraday-patron (~> 1.0)
|
|
19
20
|
faraday-rack (~> 1.0)
|
|
20
|
-
|
|
21
|
+
faraday-retry (~> 1.0)
|
|
21
22
|
ruby2_keywords (>= 0.0.4)
|
|
22
23
|
faraday-em_http (1.0.0)
|
|
23
24
|
faraday-em_synchrony (1.0.0)
|
|
24
25
|
faraday-excon (1.1.0)
|
|
25
26
|
faraday-httpclient (1.0.1)
|
|
27
|
+
faraday-multipart (1.0.3)
|
|
28
|
+
multipart-post (>= 1.2, < 3)
|
|
26
29
|
faraday-net_http (1.0.1)
|
|
27
30
|
faraday-net_http_persistent (1.2.0)
|
|
28
31
|
faraday-patron (1.0.0)
|
|
29
32
|
faraday-rack (1.0.0)
|
|
30
|
-
|
|
33
|
+
faraday-retry (1.0.3)
|
|
34
|
+
git (1.11.0)
|
|
31
35
|
rchardet (~> 1.8)
|
|
32
36
|
github_api (0.19.0)
|
|
33
37
|
addressable (~> 2.4)
|
|
@@ -49,43 +53,45 @@ GEM
|
|
|
49
53
|
rake
|
|
50
54
|
rdoc
|
|
51
55
|
semver2
|
|
52
|
-
jwt (2.
|
|
56
|
+
jwt (2.3.0)
|
|
53
57
|
kamelcase (0.0.2)
|
|
54
58
|
semver2 (~> 3)
|
|
55
|
-
mini_portile2 (2.
|
|
59
|
+
mini_portile2 (2.8.0)
|
|
56
60
|
multi_json (1.15.0)
|
|
57
61
|
multi_xml (0.6.0)
|
|
58
62
|
multipart-post (2.1.1)
|
|
59
|
-
nokogiri (1.
|
|
60
|
-
mini_portile2 (~> 2.
|
|
63
|
+
nokogiri (1.13.6)
|
|
64
|
+
mini_portile2 (~> 2.8.0)
|
|
61
65
|
racc (~> 1.4)
|
|
62
|
-
oauth2 (1.4.
|
|
63
|
-
faraday (>= 0.
|
|
66
|
+
oauth2 (1.4.9)
|
|
67
|
+
faraday (>= 0.17.3, < 3.0)
|
|
64
68
|
jwt (>= 1.0, < 3.0)
|
|
65
69
|
multi_json (~> 1.3)
|
|
66
70
|
multi_xml (~> 0.5)
|
|
67
71
|
rack (>= 1.2, < 3)
|
|
68
|
-
psych (4.0.
|
|
69
|
-
|
|
70
|
-
|
|
72
|
+
psych (4.0.4)
|
|
73
|
+
stringio
|
|
74
|
+
public_suffix (4.0.7)
|
|
75
|
+
racc (1.6.0)
|
|
71
76
|
rack (2.2.3)
|
|
72
77
|
rake (13.0.6)
|
|
73
78
|
rchardet (1.8.0)
|
|
74
|
-
rdoc (6.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
rspec-
|
|
78
|
-
rspec-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
rdoc (6.4.0)
|
|
80
|
+
psych (>= 4.0.0)
|
|
81
|
+
rspec (3.11.0)
|
|
82
|
+
rspec-core (~> 3.11.0)
|
|
83
|
+
rspec-expectations (~> 3.11.0)
|
|
84
|
+
rspec-mocks (~> 3.11.0)
|
|
85
|
+
rspec-core (3.11.0)
|
|
86
|
+
rspec-support (~> 3.11.0)
|
|
87
|
+
rspec-expectations (3.11.0)
|
|
82
88
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
83
|
-
rspec-support (~> 3.
|
|
84
|
-
rspec-mocks (3.
|
|
89
|
+
rspec-support (~> 3.11.0)
|
|
90
|
+
rspec-mocks (3.11.1)
|
|
85
91
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
86
|
-
rspec-support (~> 3.
|
|
87
|
-
rspec-support (3.
|
|
88
|
-
rspec_junit_formatter (0.
|
|
92
|
+
rspec-support (~> 3.11.0)
|
|
93
|
+
rspec-support (3.11.0)
|
|
94
|
+
rspec_junit_formatter (0.5.1)
|
|
89
95
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
90
96
|
ruby-prof (1.4.3)
|
|
91
97
|
ruby2_keywords (0.0.5)
|
|
@@ -96,7 +102,8 @@ GEM
|
|
|
96
102
|
simplecov-html (~> 0.11)
|
|
97
103
|
simplecov_json_formatter (~> 0.1)
|
|
98
104
|
simplecov-html (0.12.3)
|
|
99
|
-
simplecov_json_formatter (0.1.
|
|
105
|
+
simplecov_json_formatter (0.1.4)
|
|
106
|
+
stringio (3.0.2)
|
|
100
107
|
thread_safe (0.3.6)
|
|
101
108
|
|
|
102
109
|
PLATFORMS
|
|
@@ -114,4 +121,4 @@ DEPENDENCIES
|
|
|
114
121
|
simplecov
|
|
115
122
|
|
|
116
123
|
BUNDLED WITH
|
|
117
|
-
2.
|
|
124
|
+
2.3.5
|
data/README.rdoc
CHANGED
|
@@ -59,6 +59,10 @@ Please note that row is a _sparse_ array of cells. Your code *must* expect that
|
|
|
59
59
|
cell.value # Returns a properly converted value in the cell (if the file claims that the cell
|
|
60
60
|
# is holding a number, returns a respective Integer or Float, and so on).
|
|
61
61
|
|
|
62
|
+
Or, if you prefer Excel-style references (single-cell only!)
|
|
63
|
+
|
|
64
|
+
cell = worksheet.cell_at('B11')
|
|
65
|
+
|
|
62
66
|
==== Wrappers for accessing Cell properties
|
|
63
67
|
cell = workbook[0][0][0]
|
|
64
68
|
cell.is_struckthrough # Returns +true+ if the cell is struckthrough, other boolean properties have same syntax
|
|
@@ -138,26 +142,25 @@ Please note: these methods are being phased out in favor of the OOXML object mod
|
|
|
138
142
|
|
|
139
143
|
==== Changing Alignment
|
|
140
144
|
===== Horizontal
|
|
141
|
-
center, distributed, justify, left, right
|
|
145
|
+
# Possible alignments: center, distributed, justify, left, right
|
|
142
146
|
worksheet.sheet_data[0][0].change_horizontal_alignment('center') # Sets A1 to be centered
|
|
143
147
|
worksheet.change_row_horizontal_alignment(0, 'justify') # Sets first row to be justified
|
|
144
148
|
worksheet.change_column_horizontal_alignment(0, 'right') # Sets first column to be right-aligned
|
|
145
149
|
|
|
146
150
|
===== Vertical
|
|
147
|
-
bottom, center, distributed, top
|
|
151
|
+
# Possible alignments: bottom, center, distributed, top
|
|
148
152
|
worksheet.sheet_data[0][0].change_vertical_alignment('bottom') # Sets A1 to be bottom aligned
|
|
149
153
|
worksheet.change_row_vertical_alignment(0, 'distributed') # Sets first row to be distributed vertically
|
|
150
154
|
worksheet.change_column_vertical_alignment(0, 'top') # Sets first column to be top aligned
|
|
151
155
|
|
|
152
156
|
===== Rotation
|
|
157
|
+
# Possible values:
|
|
158
|
+
# * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;
|
|
159
|
+
# * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;
|
|
160
|
+
# * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible
|
|
161
|
+
# * 255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.
|
|
153
162
|
worksheet.sheet_data[0][0].change_text_rotation(90) # Sets A1 to be rotated by 90 degrees
|
|
154
163
|
|
|
155
|
-
Values:
|
|
156
|
-
* 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;
|
|
157
|
-
* 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;
|
|
158
|
-
* 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible
|
|
159
|
-
* 255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.
|
|
160
|
-
|
|
161
164
|
==== Changing Row Height
|
|
162
165
|
worksheet.change_row_height(0, 30) # Sets first row height to 30
|
|
163
166
|
|
|
@@ -211,8 +214,14 @@ WARNING: Use of this method WILL break formulas referencing cells which have bee
|
|
|
211
214
|
cell = worksheet[0][0]
|
|
212
215
|
cell.set_number_format '0.0000%' # For formats, see https://support.office.com/en-us/article/5026bbd6-04bc-48cd-bf33-80f18b4eae68
|
|
213
216
|
cell.change_text_wrap(true) # Makes the text in the cell to wrap.
|
|
217
|
+
cell.change_shrink_to_fit(true) # Makes the text in the cell to shrink to fit.
|
|
214
218
|
cell.change_text_indent(1) # Indents the text in the cell by 1 level
|
|
215
219
|
|
|
220
|
+
==== Add hyperlink to a Cell
|
|
221
|
+
cell.add_hyperlink('http://example.com')
|
|
222
|
+
cell.add_hyperlink('http://example.com', 'Some tooltip text')
|
|
223
|
+
|
|
224
|
+
|
|
216
225
|
== I/O
|
|
217
226
|
|
|
218
227
|
By default, the gem operates with files on the local filesystem:
|
|
@@ -252,5 +261,5 @@ Take a look at the files in spec/lib/ for rspecs on most methods
|
|
|
252
261
|
|
|
253
262
|
== Copyright
|
|
254
263
|
|
|
255
|
-
Copyright (c) 2011 Vivek Bhagwat, 2013-
|
|
264
|
+
Copyright (c) 2011 Vivek Bhagwat, 2013-2022 Wesha.
|
|
256
265
|
See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
|
@@ -1,29 +1,28 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
1
|
require 'rubygems'
|
|
3
2
|
|
|
4
3
|
require 'bundler'
|
|
5
4
|
begin
|
|
6
5
|
Bundler.setup(:default, :development)
|
|
7
6
|
rescue Bundler::BundlerError => e
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
warn e.message
|
|
8
|
+
warn 'Run `bundle install` to install missing gems'
|
|
10
9
|
exit e.status_code
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
require 'juwelier'
|
|
14
13
|
Juwelier::Tasks.new do |gem|
|
|
15
14
|
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
|
16
|
-
gem.name =
|
|
17
|
-
gem.homepage =
|
|
18
|
-
gem.license =
|
|
19
|
-
gem.summary = %
|
|
20
|
-
gem.description = %
|
|
21
|
-
gem.email =
|
|
22
|
-
gem.authors = [
|
|
15
|
+
gem.name = 'rubyXL'
|
|
16
|
+
gem.homepage = 'http://github.com/gilt/rubyXL'
|
|
17
|
+
gem.license = 'MIT'
|
|
18
|
+
gem.summary = %q{rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents}
|
|
19
|
+
gem.description = %q{rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents}
|
|
20
|
+
gem.email = 'bhagwat.vivek@gmail.com'
|
|
21
|
+
gem.authors = ['Vivek Bhagwat', 'Wesha']
|
|
23
22
|
# gem.required_ruby_version = '>2.1'
|
|
24
23
|
# dependencies defined in Gemfile
|
|
25
24
|
end
|
|
26
|
-
Juwelier::RubygemsDotOrgTasks.new
|
|
25
|
+
Juwelier::RubygemsDotOrgTasks.new
|
|
27
26
|
|
|
28
27
|
require 'rake/testtask'
|
|
29
28
|
Rake::TestTask.new(:test) do |test|
|
|
@@ -39,7 +38,7 @@ task :default => :rspec
|
|
|
39
38
|
|
|
40
39
|
require 'rdoc/task'
|
|
41
40
|
Rake::RDocTask.new do |rdoc|
|
|
42
|
-
version = File.exist?('VERSION') ? File.read('VERSION') :
|
|
41
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ''
|
|
43
42
|
|
|
44
43
|
rdoc.rdoc_dir = 'rdoc'
|
|
45
44
|
rdoc.title = "rubyXL #{version}"
|
|
@@ -47,42 +46,42 @@ Rake::RDocTask.new do |rdoc|
|
|
|
47
46
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
48
47
|
end
|
|
49
48
|
|
|
50
|
-
desc
|
|
49
|
+
desc 'Dump profiling data with stackprof'
|
|
51
50
|
task :stackprof do
|
|
52
51
|
require 'benchmark'
|
|
53
52
|
require 'stackprof'
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + '/lib' # Make Ruby aware of load path
|
|
56
55
|
require './lib/rubyXL'
|
|
57
56
|
|
|
58
|
-
spreadsheets = Dir.glob(File.join(
|
|
57
|
+
spreadsheets = Dir.glob(File.join('test', 'input', '*.xls?')).sort!
|
|
59
58
|
|
|
60
59
|
spreadsheets.each { |input|
|
|
61
60
|
puts "<<<--- Profiling parsing of #{input}..."
|
|
62
61
|
doc = nil
|
|
63
|
-
StackProf.run(:mode => :cpu, :interval => 100,
|
|
64
|
-
:out => "tmp/stackprof-cpu-parse-#{File.basename(input)}.dump") {
|
|
62
|
+
StackProf.run(:mode => :cpu, :interval => 100,
|
|
63
|
+
:out => "tmp/stackprof-cpu-parse-#{File.basename(input)}.dump") {
|
|
65
64
|
doc = RubyXL::Parser.parse(input)
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
output = File.join(
|
|
69
|
-
puts
|
|
70
|
-
StackProf.run(:mode => :cpu, :interval => 100,
|
|
67
|
+
output = File.join('test', 'output', File.basename(input))
|
|
68
|
+
puts "--->>> Profiling writing of #{output}..."
|
|
69
|
+
StackProf.run(:mode => :cpu, :interval => 100,
|
|
71
70
|
:out => "tmp/stackprof-cpu-write-#{File.basename(input)}.dump") {
|
|
72
71
|
doc.write(output)
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
end
|
|
76
75
|
|
|
77
|
-
desc
|
|
76
|
+
desc 'Dump profiling data with ruby-prof'
|
|
78
77
|
task :rubyprof do
|
|
79
78
|
require 'benchmark'
|
|
80
79
|
require 'ruby-prof'
|
|
81
80
|
|
|
82
|
-
|
|
81
|
+
$LOAD_PATH.unshift File.dirname(__FILE__) + '/lib' # Make Ruby aware of load path
|
|
83
82
|
require './lib/rubyXL'
|
|
84
83
|
|
|
85
|
-
spreadsheets = Dir.glob(File.join(
|
|
84
|
+
spreadsheets = Dir.glob(File.join('test', 'input', '*.xls?')).sort!
|
|
86
85
|
|
|
87
86
|
spreadsheets.each { |input|
|
|
88
87
|
puts "<<<--- Profiling parsing of #{input}..."
|
|
@@ -93,8 +92,8 @@ task :rubyprof do
|
|
|
93
92
|
printer = RubyProf::CallStackPrinter.new(result)
|
|
94
93
|
File.open("tmp/ruby-prof-parse-#{File.basename(input)}.html", 'w') { |f| printer.print(f, {}) }
|
|
95
94
|
|
|
96
|
-
output = File.join(
|
|
97
|
-
puts
|
|
95
|
+
output = File.join('test', 'output', File.basename(input))
|
|
96
|
+
puts "--->>> Profiling writing of #{output}..."
|
|
98
97
|
result = RubyProf.profile {
|
|
99
98
|
doc.write(output)
|
|
100
99
|
}
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.4.
|
|
1
|
+
3.4.25
|
data/lib/rubyXL/cell.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
module RubyXL
|
|
2
|
-
|
|
3
2
|
module LegacyCell
|
|
4
3
|
def workbook
|
|
5
4
|
@worksheet.workbook
|
|
@@ -7,7 +6,7 @@ module RubyXL
|
|
|
7
6
|
|
|
8
7
|
private
|
|
9
8
|
|
|
10
|
-
def validate_workbook
|
|
9
|
+
def validate_workbook
|
|
11
10
|
unless workbook.nil? || workbook.worksheets.nil?
|
|
12
11
|
workbook.worksheets.each { |sheet|
|
|
13
12
|
unless sheet.nil? || sheet.sheet_data.nil? || sheet.sheet_data[row].nil?
|
|
@@ -20,10 +19,9 @@ module RubyXL
|
|
|
20
19
|
raise "This cell #{self} is not in workbook #{workbook}"
|
|
21
20
|
end
|
|
22
21
|
|
|
23
|
-
def validate_worksheet
|
|
22
|
+
def validate_worksheet
|
|
24
23
|
return if @worksheet && @worksheet[row] && @worksheet[row][column].equal?(self)
|
|
25
24
|
raise "Cell #{self} is not in worksheet #{worksheet}"
|
|
26
25
|
end
|
|
27
|
-
|
|
28
26
|
end
|
|
29
27
|
end
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
module RubyXL
|
|
2
2
|
module CellConvenienceMethods
|
|
3
|
-
|
|
4
3
|
def change_contents(data, formula_expression = nil)
|
|
5
4
|
validate_worksheet
|
|
6
5
|
|
|
@@ -9,12 +8,12 @@ module RubyXL
|
|
|
9
8
|
self.formula = RubyXL::Formula.new(:expression => formula_expression)
|
|
10
9
|
else
|
|
11
10
|
self.datatype = case data
|
|
12
|
-
when Date, Numeric then nil
|
|
11
|
+
when Date, Time, Numeric then nil
|
|
13
12
|
else RubyXL::DataType::RAW_STRING
|
|
14
13
|
end
|
|
15
14
|
end
|
|
16
15
|
|
|
17
|
-
data = workbook.date_to_num(data) if data.is_a?(Date)
|
|
16
|
+
data = workbook.date_to_num(data) if data.is_a?(Date) || data.is_a?(Time)
|
|
18
17
|
|
|
19
18
|
self.raw_value = data
|
|
20
19
|
end
|
|
@@ -54,6 +53,11 @@ module RubyXL
|
|
|
54
53
|
self.style_index = workbook.modify_alignment(self.style_index) { |a| a.wrap_text = wrap }
|
|
55
54
|
end
|
|
56
55
|
|
|
56
|
+
def change_shrink_to_fit(shrink_to_fit = false)
|
|
57
|
+
validate_worksheet
|
|
58
|
+
self.style_index = workbook.modify_alignment(self.style_index) { |a| a.shrink_to_fit = shrink_to_fit }
|
|
59
|
+
end
|
|
60
|
+
|
|
57
61
|
def change_text_rotation(rot)
|
|
58
62
|
validate_worksheet
|
|
59
63
|
self.style_index = workbook.modify_alignment(self.style_index) { |a| a.text_rotation = rot }
|
|
@@ -75,75 +79,75 @@ module RubyXL
|
|
|
75
79
|
self.style_index = workbook.modify_border_color(self.style_index, direction, color)
|
|
76
80
|
end
|
|
77
81
|
|
|
78
|
-
def is_italicized
|
|
82
|
+
def is_italicized
|
|
79
83
|
validate_worksheet
|
|
80
84
|
get_cell_font.is_italic
|
|
81
85
|
end
|
|
82
86
|
|
|
83
|
-
def is_bolded
|
|
87
|
+
def is_bolded
|
|
84
88
|
validate_worksheet
|
|
85
89
|
get_cell_font.is_bold
|
|
86
90
|
end
|
|
87
91
|
|
|
88
|
-
def is_underlined
|
|
92
|
+
def is_underlined
|
|
89
93
|
validate_worksheet
|
|
90
94
|
get_cell_font.is_underlined
|
|
91
95
|
end
|
|
92
96
|
|
|
93
|
-
def is_struckthrough
|
|
97
|
+
def is_struckthrough
|
|
94
98
|
validate_worksheet
|
|
95
99
|
get_cell_font.is_strikethrough
|
|
96
100
|
end
|
|
97
101
|
|
|
98
|
-
def font_name
|
|
102
|
+
def font_name
|
|
99
103
|
validate_worksheet
|
|
100
104
|
get_cell_font.get_name
|
|
101
105
|
end
|
|
102
106
|
|
|
103
|
-
def font_size
|
|
107
|
+
def font_size
|
|
104
108
|
validate_worksheet
|
|
105
109
|
get_cell_font.get_size
|
|
106
110
|
end
|
|
107
111
|
|
|
108
|
-
def font_color
|
|
112
|
+
def font_color
|
|
109
113
|
validate_worksheet
|
|
110
114
|
get_cell_font.get_rgb_color || '000000'
|
|
111
115
|
end
|
|
112
116
|
|
|
113
|
-
def fill_color
|
|
117
|
+
def fill_color
|
|
114
118
|
validate_worksheet
|
|
115
119
|
return workbook.get_fill_color(get_cell_xf)
|
|
116
120
|
end
|
|
117
121
|
|
|
118
|
-
def horizontal_alignment
|
|
122
|
+
def horizontal_alignment
|
|
119
123
|
validate_worksheet
|
|
120
124
|
xf_obj = get_cell_xf
|
|
121
125
|
return nil if xf_obj.alignment.nil?
|
|
122
126
|
xf_obj.alignment.horizontal
|
|
123
127
|
end
|
|
124
128
|
|
|
125
|
-
def vertical_alignment
|
|
129
|
+
def vertical_alignment
|
|
126
130
|
validate_worksheet
|
|
127
131
|
xf_obj = get_cell_xf
|
|
128
132
|
return nil if xf_obj.alignment.nil?
|
|
129
133
|
xf_obj.alignment.vertical
|
|
130
134
|
end
|
|
131
135
|
|
|
132
|
-
def text_wrap
|
|
136
|
+
def text_wrap
|
|
133
137
|
validate_worksheet
|
|
134
138
|
xf_obj = get_cell_xf
|
|
135
139
|
return nil if xf_obj.alignment.nil?
|
|
136
140
|
xf_obj.alignment.wrap_text
|
|
137
141
|
end
|
|
138
|
-
|
|
142
|
+
|
|
139
143
|
def text_rotation
|
|
140
144
|
validate_worksheet
|
|
141
145
|
xf_obj = get_cell_xf
|
|
142
146
|
return nil if xf_obj.alignment.nil?
|
|
143
|
-
xf_obj.alignment.text_rotation
|
|
147
|
+
xf_obj.alignment.text_rotation
|
|
144
148
|
end
|
|
145
149
|
|
|
146
|
-
def text_indent
|
|
150
|
+
def text_indent
|
|
147
151
|
validate_worksheet
|
|
148
152
|
xf_obj = get_cell_xf
|
|
149
153
|
return nil if xf_obj.alignment.nil?
|
|
@@ -249,23 +253,23 @@ module RubyXL
|
|
|
249
253
|
end
|
|
250
254
|
end
|
|
251
255
|
|
|
252
|
-
=
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
# define_attribute(:tooltip, :string)
|
|
259
|
-
# define_attribute(:display, :string)
|
|
260
|
-
|
|
261
|
-
end
|
|
256
|
+
def add_hyperlink(url, tooltip = nil)
|
|
257
|
+
worksheet.relationship_container ||= RubyXL::OOXMLRelationshipsFile.new
|
|
258
|
+
relationships = worksheet.relationship_container.relationships
|
|
259
|
+
r_id = "rId#{relationships.size + 1}"
|
|
260
|
+
relationships << RubyXL::Relationship.new(:id => r_id, :target => url, :target_mode => 'External',
|
|
261
|
+
:type => RubyXL::HyperlinkRelFile::REL_TYPE)
|
|
262
262
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
263
|
+
hyperlink = RubyXL::Hyperlink.new(:ref => self.r, :r_id => r_id)
|
|
264
|
+
hyperlink.tooltip = tooltip if tooltip
|
|
265
|
+
worksheet.hyperlinks ||= RubyXL::Hyperlinks.new
|
|
266
|
+
worksheet.hyperlinks << hyperlink
|
|
266
267
|
end
|
|
267
|
-
=end
|
|
268
268
|
|
|
269
|
+
# def add_shared_string(str)
|
|
270
|
+
# self.datatype = RubyXL::DataType::SHARED_STRING
|
|
271
|
+
# self.raw_value = @workbook.shared_strings_container.add(str)
|
|
272
|
+
# end
|
|
269
273
|
end
|
|
270
274
|
|
|
271
275
|
RubyXL::Cell.send(:include, RubyXL::CellConvenienceMethods) # ruby 2.1 compat
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
module RubyXL
|
|
2
2
|
module ColorConvenienceMethods
|
|
3
|
-
|
|
4
3
|
def get_rgb(workbook)
|
|
5
4
|
if rgb then
|
|
6
5
|
return rgb
|
|
@@ -13,7 +12,6 @@ module RubyXL
|
|
|
13
12
|
RubyXL::RgbColor.parse(color_value).to_hls.apply_tint(tint).to_rgb.to_s
|
|
14
13
|
end
|
|
15
14
|
end
|
|
16
|
-
|
|
17
15
|
end
|
|
18
16
|
|
|
19
17
|
module ColorConvenienceClasses
|
|
@@ -60,7 +58,7 @@ module RubyXL
|
|
|
60
58
|
end
|
|
61
59
|
|
|
62
60
|
def self.parse(str)
|
|
63
|
-
r, g, b, a = str.unpack(
|
|
61
|
+
r, g, b, a = str.unpack('A2A2A2A2')
|
|
64
62
|
|
|
65
63
|
rgb_color = RgbColor.new
|
|
66
64
|
rgb_color.r = r && r.to_i(16)
|
|
@@ -73,12 +71,11 @@ module RubyXL
|
|
|
73
71
|
|
|
74
72
|
def to_s
|
|
75
73
|
if a && a != 0 then
|
|
76
|
-
|
|
74
|
+
format('%02x%02x%02x%02x', r, g, b, a)
|
|
77
75
|
else
|
|
78
|
-
|
|
76
|
+
format('%02x%02x%02x', r, g, b)
|
|
79
77
|
end
|
|
80
78
|
end
|
|
81
|
-
|
|
82
79
|
end
|
|
83
80
|
|
|
84
81
|
class HlsColor
|
|
@@ -151,7 +148,6 @@ module RubyXL
|
|
|
151
148
|
|
|
152
149
|
self
|
|
153
150
|
end
|
|
154
|
-
|
|
155
151
|
end
|
|
156
152
|
end
|
|
157
153
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
module RubyXL
|
|
2
|
-
|
|
3
2
|
module WorkbookConvenienceMethods
|
|
4
|
-
|
|
5
3
|
def each
|
|
6
4
|
worksheets.each{ |i| yield i }
|
|
7
5
|
end
|
|
@@ -73,8 +71,8 @@ module RubyXL
|
|
|
73
71
|
def modify_fill(style_index, rgb)
|
|
74
72
|
xf = cell_xfs[style_index || 0].dup
|
|
75
73
|
new_fill = RubyXL::Fill.new(:pattern_fill =>
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
RubyXL::PatternFill.new(:pattern_type => 'solid',
|
|
75
|
+
:fg_color => RubyXL::Color.new(:rgb => rgb)))
|
|
78
76
|
register_new_xf(register_new_fill(new_fill, xf))
|
|
79
77
|
end
|
|
80
78
|
|
|
@@ -130,6 +128,13 @@ module RubyXL
|
|
|
130
128
|
self.defined_names && self.defined_names.find { |n| n.name == name }
|
|
131
129
|
end
|
|
132
130
|
|
|
131
|
+
def title
|
|
132
|
+
self.root.core_properties.dc_title && self.root.core_properties.dc_title.value
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def title=(v)
|
|
136
|
+
self.root.core_properties.dc_title = v && RubyXL::StringNode.new(:value => v)
|
|
137
|
+
end
|
|
133
138
|
end
|
|
134
139
|
|
|
135
140
|
RubyXL::Workbook.send(:include, RubyXL::WorkbookConvenienceMethods) # ruby 2.1 compat
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
module RubyXL
|
|
2
|
-
|
|
3
2
|
module WorksheetConvenienceMethods
|
|
4
3
|
NAME = 0
|
|
5
4
|
SIZE = 1
|
|
@@ -702,12 +701,12 @@ module RubyXL
|
|
|
702
701
|
# "Any double quote characters in the value should be escaped with another double quote.
|
|
703
702
|
# If the value does not contain a comma, newline or double quote, then the String value should be returned unchanged.
|
|
704
703
|
# If the value contains a comma, newline or double quote, then the String value should be returned enclosed in double quotes."
|
|
705
|
-
expr = '"' + list_arr.collect{|str| str.gsub('"', '""')}.join(',') + '"'
|
|
704
|
+
expr = '"' + list_arr.collect{ |str| str.gsub('"', '""') }.join(',') + '"'
|
|
706
705
|
self.data_validations ||= RubyXL::DataValidations.new
|
|
707
706
|
self.data_validations <<
|
|
708
|
-
RubyXL::DataValidation.new({:sqref
|
|
707
|
+
RubyXL::DataValidation.new({:sqref => RubyXL::Reference.new(ref),
|
|
709
708
|
:formula1 => RubyXL::Formula.new(:expression => expr),
|
|
710
|
-
:type
|
|
709
|
+
:type => 'list'})
|
|
711
710
|
end
|
|
712
711
|
end
|
|
713
712
|
|
|
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
|
|
|
2
2
|
require 'rubyXL/objects/simple_types'
|
|
3
3
|
|
|
4
4
|
module RubyXL
|
|
5
|
-
|
|
6
5
|
class BorderEdge < OOXMLObject
|
|
7
6
|
define_attribute(:style, RubyXL::ST_BorderStyle, :default => 'none')
|
|
8
7
|
define_child_node(RubyXL::Color)
|
|
@@ -68,7 +67,5 @@ module RubyXL
|
|
|
68
67
|
def self.default
|
|
69
68
|
self.new(:_ => [ RubyXL::Border.new ])
|
|
70
69
|
end
|
|
71
|
-
|
|
72
70
|
end
|
|
73
|
-
|
|
74
71
|
end
|
|
@@ -15,8 +15,8 @@ module RubyXL
|
|
|
15
15
|
|
|
16
16
|
# http://www.datypic.com/sc/ooxml/e-ssml_calcChain.html
|
|
17
17
|
class CalculationChain < OOXMLTopLevelObject
|
|
18
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml'
|
|
19
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain'
|
|
18
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml'.freeze
|
|
19
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain'.freeze
|
|
20
20
|
|
|
21
21
|
define_child_node(RubyXL::CalculationChainCell, :collection => true, :accessor => :cells)
|
|
22
22
|
define_child_node(RubyXL::ExtensionStorageArea)
|