rubyXL 3.4.21 → 3.4.24
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 +21 -21
- data/README.rdoc +14 -9
- data/Rakefile +20 -19
- data/VERSION +1 -1
- data/lib/rubyXL/cell.rb +0 -2
- data/lib/rubyXL/convenience_methods/cell.rb +20 -14
- 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 +2 -3
- 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 +4 -7
- 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 +1 -3
- data/lib/rubyXL/objects/formula.rb +3 -5
- data/lib/rubyXL/objects/ooxml_object.rb +6 -13
- data/lib/rubyXL/objects/query_table.rb +3 -3
- data/lib/rubyXL/objects/reference.rb +5 -4
- 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 +1 -1
- data/lib/rubyXL/objects/storage.rb +51 -51
- data/lib/rubyXL/objects/stylesheet.rb +8 -15
- data/lib/rubyXL/objects/text.rb +3 -6
- data/lib/rubyXL/objects/theme.rb +4 -7
- data/lib/rubyXL/objects/workbook.rb +22 -23
- 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 +20 -20
- data/rdoc/RubyXL/AExtension.html +1 -1
- data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/ActiveX.html +3 -3
- data/rdoc/RubyXL/ActiveXBinary.html +1 -1
- data/rdoc/RubyXL/AdjustHandleList.html +1 -1
- data/rdoc/RubyXL/Alignment.html +1 -1
- data/rdoc/RubyXL/AlternateContent.html +1 -1
- data/rdoc/RubyXL/Authors.html +1 -1
- data/rdoc/RubyXL/AutoFilter.html +1 -1
- data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
- data/rdoc/RubyXL/BinaryImageFile.html +1 -1
- data/rdoc/RubyXL/BodyProperties.html +1 -1
- data/rdoc/RubyXL/BooleanNode.html +1 -1
- data/rdoc/RubyXL/BooleanValue.html +1 -1
- data/rdoc/RubyXL/Border.html +5 -5
- data/rdoc/RubyXL/BorderEdge.html +3 -3
- data/rdoc/RubyXL/Borders.html +2 -2
- data/rdoc/RubyXL/Break.html +1 -1
- data/rdoc/RubyXL/BreakList.html +1 -1
- data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
- data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
- data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
- data/rdoc/RubyXL/CT_Backdrop.html +1 -1
- data/rdoc/RubyXL/CT_Bevel.html +1 -1
- data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
- data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
- data/rdoc/RubyXL/CT_Blip.html +1 -1
- data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
- data/rdoc/RubyXL/CT_Camera.html +1 -1
- data/rdoc/RubyXL/CT_Color.html +1 -1
- data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
- data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
- data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
- data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
- data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
- data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
- data/rdoc/RubyXL/CT_DashStop.html +1 -1
- data/rdoc/RubyXL/CT_DashStopList.html +1 -1
- data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
- data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
- data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
- data/rdoc/RubyXL/CT_EffectList.html +1 -1
- data/rdoc/RubyXL/CT_EffectReference.html +1 -1
- data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
- data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
- data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
- data/rdoc/RubyXL/CT_FillEffect.html +1 -1
- data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
- data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
- data/rdoc/RubyXL/CT_FlatText.html +1 -1
- data/rdoc/RubyXL/CT_FontCollection.html +1 -1
- data/rdoc/RubyXL/CT_FontReference.html +1 -1
- data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
- data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
- data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_GradientStop.html +1 -1
- data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
- data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
- data/rdoc/RubyXL/CT_HslColor.html +1 -1
- data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
- data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_LightRig.html +1 -1
- data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineProperties.html +1 -1
- data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
- data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
- data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
- data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
- data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_Path2D.html +1 -1
- data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DList.html +1 -1
- data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
- data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
- data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
- data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
- data/rdoc/RubyXL/CT_Point3D.html +1 -1
- data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
- data/rdoc/RubyXL/CT_PresetColor.html +1 -1
- data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
- data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
- data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
- data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
- data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
- data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
- data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
- data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
- data/rdoc/RubyXL/CT_Scene3D.html +1 -1
- data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
- data/rdoc/RubyXL/CT_Shape3D.html +1 -1
- data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
- data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
- data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
- data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
- data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
- data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
- data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
- data/rdoc/RubyXL/CT_SystemColor.html +1 -1
- data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
- data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
- data/rdoc/RubyXL/CT_TextFont.html +1 -1
- data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
- data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
- data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
- data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
- data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
- data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
- data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
- data/rdoc/RubyXL/CT_TintEffect.html +1 -1
- data/rdoc/RubyXL/CT_Transform2D.html +1 -1
- data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
- data/rdoc/RubyXL/CT_Vector3D.html +1 -1
- data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
- data/rdoc/RubyXL/CalculationChain.html +1 -1
- data/rdoc/RubyXL/CalculationChainCell.html +1 -1
- data/rdoc/RubyXL/CalculationProperties.html +1 -1
- data/rdoc/RubyXL/Cell.html +16 -16
- data/rdoc/RubyXL/CellConvenienceMethods.html +92 -38
- data/rdoc/RubyXL/CellExt.html +1 -1
- data/rdoc/RubyXL/CellSmartTag.html +1 -1
- data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
- data/rdoc/RubyXL/CellSmartTags.html +1 -1
- data/rdoc/RubyXL/CellStyle.html +1 -1
- data/rdoc/RubyXL/CellStyleXFs.html +2 -2
- data/rdoc/RubyXL/CellStyles.html +2 -2
- data/rdoc/RubyXL/CellValue.html +2 -2
- data/rdoc/RubyXL/CellWatch.html +1 -1
- data/rdoc/RubyXL/CellWatches.html +1 -1
- data/rdoc/RubyXL/CellXFs.html +3 -5
- data/rdoc/RubyXL/ChartColorsFile.html +1 -1
- data/rdoc/RubyXL/ChartFile.html +2 -2
- data/rdoc/RubyXL/ChartStyleFile.html +1 -1
- data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
- data/rdoc/RubyXL/Chartsheet.html +2 -2
- data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
- data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
- data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
- data/rdoc/RubyXL/ChartsheetView.html +1 -1
- data/rdoc/RubyXL/ChartsheetViews.html +1 -1
- data/rdoc/RubyXL/Color.html +2 -2
- data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +3 -3
- data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +7 -7
- data/rdoc/RubyXL/ColorConvenienceClasses.html +1 -1
- data/rdoc/RubyXL/ColorConvenienceMethods.html +2 -2
- data/rdoc/RubyXL/ColorFilter.html +1 -1
- data/rdoc/RubyXL/ColorScale.html +1 -1
- data/rdoc/RubyXL/ColorSet.html +1 -1
- data/rdoc/RubyXL/Colors.html +1 -1
- data/rdoc/RubyXL/ColumnRange.html +4 -4
- data/rdoc/RubyXL/ColumnRanges.html +5 -5
- data/rdoc/RubyXL/Comment.html +1 -1
- data/rdoc/RubyXL/CommentList.html +1 -1
- data/rdoc/RubyXL/CommentsFile.html +2 -2
- data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
- data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
- data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
- data/rdoc/RubyXL/Connection.html +1 -1
- data/rdoc/RubyXL/ConnectionTable.html +1 -1
- data/rdoc/RubyXL/ConnectionTables.html +1 -1
- data/rdoc/RubyXL/ConnectionTextField.html +1 -1
- data/rdoc/RubyXL/ConnectionTextFields.html +1 -1
- data/rdoc/RubyXL/Connections.html +1 -1
- data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
- data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
- data/rdoc/RubyXL/ContentTypes.html +5 -5
- data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
- data/rdoc/RubyXL/CorePropertiesFile.html +10 -10
- data/rdoc/RubyXL/CustomColor.html +1 -1
- data/rdoc/RubyXL/CustomColorList.html +1 -1
- data/rdoc/RubyXL/CustomFilter.html +1 -1
- data/rdoc/RubyXL/CustomFilters.html +1 -1
- data/rdoc/RubyXL/CustomGeometry.html +1 -1
- data/rdoc/RubyXL/CustomProperties.html +1 -1
- data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
- data/rdoc/RubyXL/CustomProperty.html +1 -1
- data/rdoc/RubyXL/CustomPropertyFile.html +1 -1
- data/rdoc/RubyXL/CustomSheetView.html +1 -1
- data/rdoc/RubyXL/CustomSheetViews.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
- data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
- data/rdoc/RubyXL/CustomXMLFile.html +1 -1
- data/rdoc/RubyXL/DXF.html +1 -1
- data/rdoc/RubyXL/DXFs.html +1 -1
- data/rdoc/RubyXL/DataBar.html +1 -1
- data/rdoc/RubyXL/DataConsolidate.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
- data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
- data/rdoc/RubyXL/DataType.html +1 -1
- data/rdoc/RubyXL/DataValidation.html +1 -1
- data/rdoc/RubyXL/DataValidations.html +1 -1
- data/rdoc/RubyXL/DateGroupItem.html +1 -1
- data/rdoc/RubyXL/DefinedName.html +1 -1
- data/rdoc/RubyXL/DefinedNameExt.html +1 -1
- data/rdoc/RubyXL/DefinedNames.html +1 -1
- data/rdoc/RubyXL/DefinedNamesExt.html +1 -1
- data/rdoc/RubyXL/DocumentPropertiesFile.html +3 -3
- data/rdoc/RubyXL/DrawingFile.html +2 -2
- data/rdoc/RubyXL/DynamicFilter.html +1 -1
- data/rdoc/RubyXL/EmbeddedControl.html +1 -1
- data/rdoc/RubyXL/EmbeddedControls.html +1 -1
- data/rdoc/RubyXL/Extension.html +1 -1
- data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
- data/rdoc/RubyXL/Extents.html +1 -1
- data/rdoc/RubyXL/ExternalBook.html +1 -1
- data/rdoc/RubyXL/ExternalLinksFile.html +2 -2
- data/rdoc/RubyXL/ExternalReference.html +1 -1
- data/rdoc/RubyXL/ExternalReferences.html +1 -1
- data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
- data/rdoc/RubyXL/FieldItem.html +1 -1
- data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
- data/rdoc/RubyXL/FileSharing.html +1 -1
- data/rdoc/RubyXL/FileVersion.html +1 -1
- data/rdoc/RubyXL/Fill.html +2 -2
- data/rdoc/RubyXL/Fills.html +2 -2
- data/rdoc/RubyXL/FilterContainer.html +1 -1
- data/rdoc/RubyXL/FloatNode.html +1 -1
- data/rdoc/RubyXL/FloatValue.html +1 -1
- data/rdoc/RubyXL/Font.html +3 -3
- data/rdoc/RubyXL/FontConvenienceMethods.html +1 -1
- data/rdoc/RubyXL/FontScheme.html +1 -1
- data/rdoc/RubyXL/Fonts.html +2 -2
- data/rdoc/RubyXL/Formula.html +1 -1
- data/rdoc/RubyXL/FunctionGroup.html +1 -1
- data/rdoc/RubyXL/FunctionGroups.html +1 -1
- data/rdoc/RubyXL/GenericStorageObject.html +4 -4
- data/rdoc/RubyXL/GradientFill.html +1 -1
- data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
- data/rdoc/RubyXL/Hyperlink.html +1 -1
- data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
- data/rdoc/RubyXL/Hyperlinks.html +1 -1
- data/rdoc/RubyXL/IconFilter.html +1 -1
- data/rdoc/RubyXL/IconSet.html +1 -1
- data/rdoc/RubyXL/IgnoredError.html +1 -1
- data/rdoc/RubyXL/IgnoredErrors.html +1 -1
- data/rdoc/RubyXL/IndexedColors.html +1 -1
- data/rdoc/RubyXL/InputCells.html +1 -1
- data/rdoc/RubyXL/IntegerNode.html +1 -1
- data/rdoc/RubyXL/IntegerValue.html +1 -1
- data/rdoc/RubyXL/LegacyCell.html +2 -2
- data/rdoc/RubyXL/LegacyWorksheet.html +2 -2
- data/rdoc/RubyXL/MRUColors.html +1 -1
- data/rdoc/RubyXL/MacrosFile.html +1 -1
- data/rdoc/RubyXL/MergedCell.html +1 -1
- data/rdoc/RubyXL/MergedCells.html +1 -1
- data/rdoc/RubyXL/NumFmt.html +1 -1
- data/rdoc/RubyXL/NumberFormat.html +3 -3
- data/rdoc/RubyXL/NumberFormats.html +2 -2
- data/rdoc/RubyXL/OLEObject.html +1 -1
- data/rdoc/RubyXL/OLEObjectFile.html +1 -1
- data/rdoc/RubyXL/OLEObjects.html +1 -1
- data/rdoc/RubyXL/OLESize.html +1 -1
- data/rdoc/RubyXL/OOXMLContainerObject.html +7 -7
- data/rdoc/RubyXL/OOXMLIgnored.html +3 -3
- data/rdoc/RubyXL/OOXMLObject.html +1 -1
- data/rdoc/RubyXL/OOXMLObjectClassMethods.html +2 -3
- data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +9 -10
- data/rdoc/RubyXL/OOXMLRelationshipsFile.html +15 -15
- data/rdoc/RubyXL/OOXMLTopLevelObject.html +6 -6
- data/rdoc/RubyXL/OdbcOleDbProperties.html +1 -1
- data/rdoc/RubyXL/Offset.html +1 -1
- data/rdoc/RubyXL/OlapProperties.html +1 -1
- data/rdoc/RubyXL/OleItem.html +1 -1
- data/rdoc/RubyXL/OleItems.html +1 -1
- data/rdoc/RubyXL/OleLink.html +1 -1
- data/rdoc/RubyXL/OutlineProperties.html +1 -1
- data/rdoc/RubyXL/PageMargins.html +1 -1
- data/rdoc/RubyXL/PageSetup.html +1 -1
- data/rdoc/RubyXL/PageSetupProperties.html +1 -1
- data/rdoc/RubyXL/Pane.html +1 -1
- data/rdoc/RubyXL/Parser.html +4 -4
- data/rdoc/RubyXL/PatternFill.html +1 -1
- data/rdoc/RubyXL/PhoneticProperties.html +1 -1
- data/rdoc/RubyXL/PhoneticRun.html +1 -1
- data/rdoc/RubyXL/PivotArea.html +1 -1
- data/rdoc/RubyXL/PivotCache.html +1 -1
- data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
- data/rdoc/RubyXL/PivotCacheRecordsFile.html +1 -1
- data/rdoc/RubyXL/PivotCaches.html +1 -1
- data/rdoc/RubyXL/PivotReference.html +1 -1
- data/rdoc/RubyXL/PivotReferences.html +1 -1
- data/rdoc/RubyXL/PivotTableFile.html +1 -1
- data/rdoc/RubyXL/PivotTableSelection.html +1 -1
- data/rdoc/RubyXL/PresetGeometry.html +1 -1
- data/rdoc/RubyXL/PrintOptions.html +1 -1
- data/rdoc/RubyXL/PrinterSettingsFile.html +1 -1
- data/rdoc/RubyXL/ProtectedRange.html +1 -1
- data/rdoc/RubyXL/ProtectedRanges.html +1 -1
- data/rdoc/RubyXL/Protection.html +1 -1
- data/rdoc/RubyXL/QueryParameter.html +1 -1
- data/rdoc/RubyXL/QueryParameters.html +1 -1
- data/rdoc/RubyXL/QueryTable.html +1 -1
- data/rdoc/RubyXL/QueryTableDeletedField.html +1 -1
- data/rdoc/RubyXL/QueryTableDeletedFields.html +1 -1
- data/rdoc/RubyXL/QueryTableField.html +1 -1
- data/rdoc/RubyXL/QueryTableFields.html +1 -1
- data/rdoc/RubyXL/QueryTableRefresh.html +1 -1
- data/rdoc/RubyXL/RID.html +1 -1
- data/rdoc/RubyXL/RawOOXML.html +3 -3
- data/rdoc/RubyXL/Reference.html +34 -12
- data/rdoc/RubyXL/Relationship.html +1 -1
- data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +2 -2
- data/rdoc/RubyXL/RelationshipSupport.html +7 -7
- data/rdoc/RubyXL/RevisionPointer.html +1 -1
- data/rdoc/RubyXL/RichText.html +2 -2
- data/rdoc/RubyXL/RichTextRun.html +2 -2
- data/rdoc/RubyXL/Row.html +10 -10
- data/rdoc/RubyXL/RowExt.html +1 -1
- data/rdoc/RubyXL/RunProperties.html +1 -1
- data/rdoc/RubyXL/Scenario.html +1 -1
- data/rdoc/RubyXL/Scenarios.html +1 -1
- data/rdoc/RubyXL/Selection.html +2 -2
- data/rdoc/RubyXL/ShapeGuide.html +1 -1
- data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
- data/rdoc/RubyXL/SharedStringsTable.html +8 -8
- data/rdoc/RubyXL/Sheet.html +1 -1
- data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
- data/rdoc/RubyXL/SheetData.html +3 -3
- data/rdoc/RubyXL/SheetDataExt.html +1 -1
- data/rdoc/RubyXL/SheetDataSet.html +1 -1
- data/rdoc/RubyXL/SheetMetadata.html +108 -0
- data/rdoc/RubyXL/SheetName.html +1 -1
- data/rdoc/RubyXL/SheetNames.html +1 -1
- data/rdoc/RubyXL/Sheets.html +1 -1
- data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
- data/rdoc/RubyXL/SlicerFile.html +1 -1
- data/rdoc/RubyXL/SmartTagProperties.html +1 -1
- data/rdoc/RubyXL/SmartTagType.html +1 -1
- data/rdoc/RubyXL/SmartTagTypes.html +1 -1
- data/rdoc/RubyXL/SmartTags.html +1 -1
- data/rdoc/RubyXL/SortCondition.html +1 -1
- data/rdoc/RubyXL/SortState.html +1 -1
- data/rdoc/RubyXL/Sqref.html +3 -3
- data/rdoc/RubyXL/Stop.html +1 -1
- data/rdoc/RubyXL/StringNode.html +1 -1
- data/rdoc/RubyXL/StringNodeW3C.html +3 -3
- data/rdoc/RubyXL/StringValue.html +1 -1
- data/rdoc/RubyXL/Stylesheet.html +6 -6
- data/rdoc/RubyXL/TableFile.html +1 -1
- data/rdoc/RubyXL/TableParts.html +1 -1
- data/rdoc/RubyXL/TableStyle.html +1 -1
- data/rdoc/RubyXL/TableStyles.html +1 -1
- data/rdoc/RubyXL/Text.html +5 -5
- data/rdoc/RubyXL/TextImportSettings.html +1 -1
- data/rdoc/RubyXL/Theme.html +4 -4
- data/rdoc/RubyXL/ThemeElements.html +1 -1
- data/rdoc/RubyXL/ThumbnailFile.html +1 -1
- data/rdoc/RubyXL/Top10.html +1 -1
- data/rdoc/RubyXL/VMLDrawingFile.html +2 -2
- data/rdoc/RubyXL/Variant.html +1 -1
- data/rdoc/RubyXL/Vector.html +2 -2
- data/rdoc/RubyXL/VectorValue.html +1 -1
- data/rdoc/RubyXL/VisualProperties.html +1 -1
- data/rdoc/RubyXL/WebPublishObject.html +1 -1
- data/rdoc/RubyXL/WebPublishObjects.html +1 -1
- data/rdoc/RubyXL/WebPublishingItem.html +1 -1
- data/rdoc/RubyXL/WebPublishingItems.html +1 -1
- data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
- data/rdoc/RubyXL/WebQueryProperties.html +1 -1
- data/rdoc/RubyXL/Workbook.html +29 -26
- data/rdoc/RubyXL/WorkbookConvenienceMethods.html +63 -19
- data/rdoc/RubyXL/WorkbookProperties.html +1 -1
- data/rdoc/RubyXL/WorkbookProtection.html +1 -1
- data/rdoc/RubyXL/WorkbookRoot.html +6 -6
- data/rdoc/RubyXL/WorkbookView.html +1 -1
- data/rdoc/RubyXL/WorkbookViews.html +1 -1
- data/rdoc/RubyXL/Worksheet.html +31 -7
- data/rdoc/RubyXL/WorksheetConvenienceMethods.html +72 -72
- data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
- data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProperties.html +1 -1
- data/rdoc/RubyXL/WorksheetProtection.html +1 -1
- data/rdoc/RubyXL/WorksheetView.html +1 -1
- data/rdoc/RubyXL/WorksheetViews.html +1 -1
- data/rdoc/RubyXL/XF.html +1 -1
- data/rdoc/RubyXL.html +1 -1
- data/rdoc/created.rid +44 -44
- data/rdoc/index.html +3 -2
- data/rdoc/js/search_index.js +1 -1
- data/rdoc/js/search_index.js.gz +0 -0
- data/rdoc/table_of_contents.html +36 -2
- data/rubyXL.gemspec +5 -4
- data/spec/lib/cell_spec.rb +14 -7
- data/spec/lib/parser_spec.rb +22 -26
- data/spec/lib/reference_spec.rb +8 -2
- data/spec/lib/rgb_color_spec.rb +13 -2
- data/spec/lib/stylesheet_spec.rb +3 -6
- data/spec/lib/text_spec.rb +1 -5
- data/spec/lib/workbook_spec.rb +12 -2
- 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: d174a06e6a9c7cb4c88d59e54381b4f2a110b9781bf7adab38f787cb99cbd2e8
|
|
4
|
+
data.tar.gz: d0114d7bc184ffc82bc3143ae2f8b843fd1c980299fa302e78211b588b1e23f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7e9dd0dceb2fcd27376ff8c97440f98d7e7bc6d37d68dd514ff4d3c629d2ef18acc7c9c585afe840657a0805c867e4884ab3510ab0d0f08bf489df56bf68ea50
|
|
7
|
+
data.tar.gz: '096d1ef36c7025887d9b07cf511cc45b39a0965b3fe2831627899ee25b1cb22e28f49f770c2b4dea64f3ad01006ce88e9ee0ff2ba391d66140989a1211b98421'
|
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
|
@@ -8,7 +8,7 @@ GEM
|
|
|
8
8
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
9
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)
|
|
@@ -31,7 +31,7 @@ GEM
|
|
|
31
31
|
faraday-patron (1.0.0)
|
|
32
32
|
faraday-rack (1.0.0)
|
|
33
33
|
faraday-retry (1.0.3)
|
|
34
|
-
git (1.
|
|
34
|
+
git (1.11.0)
|
|
35
35
|
rchardet (~> 1.8)
|
|
36
36
|
github_api (0.19.0)
|
|
37
37
|
addressable (~> 2.4)
|
|
@@ -56,41 +56,41 @@ GEM
|
|
|
56
56
|
jwt (2.3.0)
|
|
57
57
|
kamelcase (0.0.2)
|
|
58
58
|
semver2 (~> 3)
|
|
59
|
-
mini_portile2 (2.
|
|
59
|
+
mini_portile2 (2.8.0)
|
|
60
60
|
multi_json (1.15.0)
|
|
61
61
|
multi_xml (0.6.0)
|
|
62
62
|
multipart-post (2.1.1)
|
|
63
|
-
nokogiri (1.13.
|
|
64
|
-
mini_portile2 (~> 2.
|
|
63
|
+
nokogiri (1.13.4)
|
|
64
|
+
mini_portile2 (~> 2.8.0)
|
|
65
65
|
racc (~> 1.4)
|
|
66
|
-
oauth2 (1.4.
|
|
67
|
-
faraday (>= 0.
|
|
66
|
+
oauth2 (1.4.9)
|
|
67
|
+
faraday (>= 0.17.3, < 3.0)
|
|
68
68
|
jwt (>= 1.0, < 3.0)
|
|
69
69
|
multi_json (~> 1.3)
|
|
70
70
|
multi_xml (~> 0.5)
|
|
71
71
|
rack (>= 1.2, < 3)
|
|
72
72
|
psych (4.0.3)
|
|
73
73
|
stringio
|
|
74
|
-
public_suffix (4.0.
|
|
74
|
+
public_suffix (4.0.7)
|
|
75
75
|
racc (1.6.0)
|
|
76
76
|
rack (2.2.3)
|
|
77
77
|
rake (13.0.6)
|
|
78
78
|
rchardet (1.8.0)
|
|
79
79
|
rdoc (6.4.0)
|
|
80
80
|
psych (>= 4.0.0)
|
|
81
|
-
rspec (3.
|
|
82
|
-
rspec-core (~> 3.
|
|
83
|
-
rspec-expectations (~> 3.
|
|
84
|
-
rspec-mocks (~> 3.
|
|
85
|
-
rspec-core (3.
|
|
86
|
-
rspec-support (~> 3.
|
|
87
|
-
rspec-expectations (3.
|
|
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)
|
|
88
88
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
89
|
-
rspec-support (~> 3.
|
|
90
|
-
rspec-mocks (3.
|
|
89
|
+
rspec-support (~> 3.11.0)
|
|
90
|
+
rspec-mocks (3.11.1)
|
|
91
91
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
92
|
-
rspec-support (~> 3.
|
|
93
|
-
rspec-support (3.
|
|
92
|
+
rspec-support (~> 3.11.0)
|
|
93
|
+
rspec-support (3.11.0)
|
|
94
94
|
rspec_junit_formatter (0.5.1)
|
|
95
95
|
rspec-core (>= 2, < 4, != 2.12.0)
|
|
96
96
|
ruby-prof (1.4.3)
|
|
@@ -102,7 +102,7 @@ GEM
|
|
|
102
102
|
simplecov-html (~> 0.11)
|
|
103
103
|
simplecov_json_formatter (~> 0.1)
|
|
104
104
|
simplecov-html (0.12.3)
|
|
105
|
-
simplecov_json_formatter (0.1.
|
|
105
|
+
simplecov_json_formatter (0.1.4)
|
|
106
106
|
stringio (3.0.1)
|
|
107
107
|
thread_safe (0.3.6)
|
|
108
108
|
|
|
@@ -121,4 +121,4 @@ DEPENDENCIES
|
|
|
121
121
|
simplecov
|
|
122
122
|
|
|
123
123
|
BUNDLED WITH
|
|
124
|
-
2.
|
|
124
|
+
2.3.5
|
data/README.rdoc
CHANGED
|
@@ -138,26 +138,25 @@ Please note: these methods are being phased out in favor of the OOXML object mod
|
|
|
138
138
|
|
|
139
139
|
==== Changing Alignment
|
|
140
140
|
===== Horizontal
|
|
141
|
-
center, distributed, justify, left, right
|
|
141
|
+
# Possible alignments: center, distributed, justify, left, right
|
|
142
142
|
worksheet.sheet_data[0][0].change_horizontal_alignment('center') # Sets A1 to be centered
|
|
143
143
|
worksheet.change_row_horizontal_alignment(0, 'justify') # Sets first row to be justified
|
|
144
144
|
worksheet.change_column_horizontal_alignment(0, 'right') # Sets first column to be right-aligned
|
|
145
145
|
|
|
146
146
|
===== Vertical
|
|
147
|
-
bottom, center, distributed, top
|
|
147
|
+
# Possible alignments: bottom, center, distributed, top
|
|
148
148
|
worksheet.sheet_data[0][0].change_vertical_alignment('bottom') # Sets A1 to be bottom aligned
|
|
149
149
|
worksheet.change_row_vertical_alignment(0, 'distributed') # Sets first row to be distributed vertically
|
|
150
150
|
worksheet.change_column_vertical_alignment(0, 'top') # Sets first column to be top aligned
|
|
151
151
|
|
|
152
152
|
===== Rotation
|
|
153
|
+
# Possible values:
|
|
154
|
+
# * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;
|
|
155
|
+
# * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;
|
|
156
|
+
# * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible
|
|
157
|
+
# * 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
158
|
worksheet.sheet_data[0][0].change_text_rotation(90) # Sets A1 to be rotated by 90 degrees
|
|
154
159
|
|
|
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
160
|
==== Changing Row Height
|
|
162
161
|
worksheet.change_row_height(0, 30) # Sets first row height to 30
|
|
163
162
|
|
|
@@ -211,8 +210,14 @@ WARNING: Use of this method WILL break formulas referencing cells which have bee
|
|
|
211
210
|
cell = worksheet[0][0]
|
|
212
211
|
cell.set_number_format '0.0000%' # For formats, see https://support.office.com/en-us/article/5026bbd6-04bc-48cd-bf33-80f18b4eae68
|
|
213
212
|
cell.change_text_wrap(true) # Makes the text in the cell to wrap.
|
|
213
|
+
cell.change_shrink_to_fit(true) # Makes the text in the cell to shrink to fit.
|
|
214
214
|
cell.change_text_indent(1) # Indents the text in the cell by 1 level
|
|
215
215
|
|
|
216
|
+
==== Add hyperlink to a Cell
|
|
217
|
+
cell.add_hyperlink('http://example.com')
|
|
218
|
+
cell.add_hyperlink('http://example.com', 'Some tooltip text')
|
|
219
|
+
|
|
220
|
+
|
|
216
221
|
== I/O
|
|
217
222
|
|
|
218
223
|
By default, the gem operates with files on the local filesystem:
|
|
@@ -252,5 +257,5 @@ Take a look at the files in spec/lib/ for rspecs on most methods
|
|
|
252
257
|
|
|
253
258
|
== Copyright
|
|
254
259
|
|
|
255
|
-
Copyright (c) 2011 Vivek Bhagwat, 2013-
|
|
260
|
+
Copyright (c) 2011 Vivek Bhagwat, 2013-2022 Wesha.
|
|
256
261
|
See LICENSE.txt for further details.
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
+
|
|
2
3
|
require 'rubygems'
|
|
3
4
|
|
|
4
5
|
require 'bundler'
|
|
@@ -6,24 +7,24 @@ begin
|
|
|
6
7
|
Bundler.setup(:default, :development)
|
|
7
8
|
rescue Bundler::BundlerError => e
|
|
8
9
|
$stderr.puts e.message
|
|
9
|
-
$stderr.puts
|
|
10
|
+
$stderr.puts 'Run `bundle install` to install missing gems'
|
|
10
11
|
exit e.status_code
|
|
11
12
|
end
|
|
12
13
|
|
|
13
14
|
require 'juwelier'
|
|
14
15
|
Juwelier::Tasks.new do |gem|
|
|
15
16
|
# 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 =
|
|
17
|
+
gem.name = 'rubyXL'
|
|
18
|
+
gem.homepage = 'http://github.com/gilt/rubyXL'
|
|
19
|
+
gem.license = 'MIT'
|
|
19
20
|
gem.summary = %Q{rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents}
|
|
20
21
|
gem.description = %Q{rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents}
|
|
21
|
-
gem.email =
|
|
22
|
-
gem.authors = [
|
|
22
|
+
gem.email = 'bhagwat.vivek@gmail.com'
|
|
23
|
+
gem.authors = ['Vivek Bhagwat', 'Wesha']
|
|
23
24
|
# gem.required_ruby_version = '>2.1'
|
|
24
25
|
# dependencies defined in Gemfile
|
|
25
26
|
end
|
|
26
|
-
Juwelier::RubygemsDotOrgTasks.new
|
|
27
|
+
Juwelier::RubygemsDotOrgTasks.new
|
|
27
28
|
|
|
28
29
|
require 'rake/testtask'
|
|
29
30
|
Rake::TestTask.new(:test) do |test|
|
|
@@ -39,7 +40,7 @@ task :default => :rspec
|
|
|
39
40
|
|
|
40
41
|
require 'rdoc/task'
|
|
41
42
|
Rake::RDocTask.new do |rdoc|
|
|
42
|
-
version = File.exist?('VERSION') ? File.read('VERSION') :
|
|
43
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ''
|
|
43
44
|
|
|
44
45
|
rdoc.rdoc_dir = 'rdoc'
|
|
45
46
|
rdoc.title = "rubyXL #{version}"
|
|
@@ -47,7 +48,7 @@ Rake::RDocTask.new do |rdoc|
|
|
|
47
48
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
48
49
|
end
|
|
49
50
|
|
|
50
|
-
desc
|
|
51
|
+
desc 'Dump profiling data with stackprof'
|
|
51
52
|
task :stackprof do
|
|
52
53
|
require 'benchmark'
|
|
53
54
|
require 'stackprof'
|
|
@@ -55,26 +56,26 @@ task :stackprof do
|
|
|
55
56
|
$:.unshift File.dirname(__FILE__) + '/lib' # Make Ruby aware of load path
|
|
56
57
|
require './lib/rubyXL'
|
|
57
58
|
|
|
58
|
-
spreadsheets = Dir.glob(File.join(
|
|
59
|
+
spreadsheets = Dir.glob(File.join('test', 'input', '*.xls?')).sort!
|
|
59
60
|
|
|
60
61
|
spreadsheets.each { |input|
|
|
61
62
|
puts "<<<--- Profiling parsing of #{input}..."
|
|
62
63
|
doc = nil
|
|
63
|
-
StackProf.run(:mode => :cpu, :interval => 100,
|
|
64
|
-
:out => "tmp/stackprof-cpu-parse-#{File.basename(input)}.dump") {
|
|
64
|
+
StackProf.run(:mode => :cpu, :interval => 100,
|
|
65
|
+
:out => "tmp/stackprof-cpu-parse-#{File.basename(input)}.dump") {
|
|
65
66
|
doc = RubyXL::Parser.parse(input)
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
output = File.join(
|
|
69
|
-
puts
|
|
70
|
-
StackProf.run(:mode => :cpu, :interval => 100,
|
|
69
|
+
output = File.join('test', 'output', File.basename(input))
|
|
70
|
+
puts "--->>> Profiling writing of #{output}..."
|
|
71
|
+
StackProf.run(:mode => :cpu, :interval => 100,
|
|
71
72
|
:out => "tmp/stackprof-cpu-write-#{File.basename(input)}.dump") {
|
|
72
73
|
doc.write(output)
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
end
|
|
76
77
|
|
|
77
|
-
desc
|
|
78
|
+
desc 'Dump profiling data with ruby-prof'
|
|
78
79
|
task :rubyprof do
|
|
79
80
|
require 'benchmark'
|
|
80
81
|
require 'ruby-prof'
|
|
@@ -82,7 +83,7 @@ task :rubyprof do
|
|
|
82
83
|
$:.unshift File.dirname(__FILE__) + '/lib' # Make Ruby aware of load path
|
|
83
84
|
require './lib/rubyXL'
|
|
84
85
|
|
|
85
|
-
spreadsheets = Dir.glob(File.join(
|
|
86
|
+
spreadsheets = Dir.glob(File.join('test', 'input', '*.xls?')).sort!
|
|
86
87
|
|
|
87
88
|
spreadsheets.each { |input|
|
|
88
89
|
puts "<<<--- Profiling parsing of #{input}..."
|
|
@@ -93,8 +94,8 @@ task :rubyprof do
|
|
|
93
94
|
printer = RubyProf::CallStackPrinter.new(result)
|
|
94
95
|
File.open("tmp/ruby-prof-parse-#{File.basename(input)}.html", 'w') { |f| printer.print(f, {}) }
|
|
95
96
|
|
|
96
|
-
output = File.join(
|
|
97
|
-
puts
|
|
97
|
+
output = File.join('test', 'output', File.basename(input))
|
|
98
|
+
puts "--->>> Profiling writing of #{output}..."
|
|
98
99
|
result = RubyProf.profile {
|
|
99
100
|
doc.write(output)
|
|
100
101
|
}
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
3.4.
|
|
1
|
+
3.4.24
|
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
|
|
@@ -24,6 +23,5 @@ module RubyXL
|
|
|
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 }
|
|
@@ -135,12 +139,12 @@ module RubyXL
|
|
|
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
150
|
def text_indent()
|
|
@@ -249,23 +253,25 @@ 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)
|
|
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)
|
|
260
262
|
|
|
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
|
|
261
267
|
end
|
|
262
268
|
|
|
269
|
+
=begin
|
|
263
270
|
def add_shared_string(str)
|
|
264
271
|
self.datatype = RubyXL::DataType::SHARED_STRING
|
|
265
272
|
self.raw_value = @workbook.shared_strings_container.add(str)
|
|
266
273
|
end
|
|
267
274
|
=end
|
|
268
|
-
|
|
269
275
|
end
|
|
270
276
|
|
|
271
277
|
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
|
|
@@ -705,9 +704,9 @@ module RubyXL
|
|
|
705
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)
|
|
@@ -2,11 +2,10 @@ require 'rubyXL/objects/ooxml_object'
|
|
|
2
2
|
require 'rubyXL/objects/simple_types'
|
|
3
3
|
|
|
4
4
|
module RubyXL
|
|
5
|
-
|
|
6
5
|
# http://www.datypic.com/sc/ooxml/e-ssml_cellStyle-1.html
|
|
7
6
|
class CellStyle < OOXMLObject
|
|
8
7
|
define_attribute(:name, :string)
|
|
9
|
-
define_attribute(:xfId, :int,
|
|
8
|
+
define_attribute(:xfId, :int, :required => true)
|
|
10
9
|
define_attribute(:builtinId, :int)
|
|
11
10
|
define_attribute(:iLevel, :int)
|
|
12
11
|
define_attribute(:hidden, :bool)
|
|
@@ -61,5 +60,4 @@ module RubyXL
|
|
|
61
60
|
define_attribute(:formatCode, :string, :required => true)
|
|
62
61
|
define_element_name 'numFmt'
|
|
63
62
|
end
|
|
64
|
-
|
|
65
63
|
end
|
|
@@ -5,7 +5,6 @@ require 'rubyXL/objects/relationships'
|
|
|
5
5
|
require 'rubyXL/objects/sheet_common'
|
|
6
6
|
|
|
7
7
|
module RubyXL
|
|
8
|
-
|
|
9
8
|
# http://www.datypic.com/sc/ooxml/e-ssml_sheetProtection-4.html
|
|
10
9
|
class ChartsheetProtection < OOXMLObject
|
|
11
10
|
define_attribute(:password, RubyXL::ST_UnsignedShortHex)
|
|
@@ -42,7 +41,7 @@ module RubyXL
|
|
|
42
41
|
class ChartsheetView < OOXMLObject
|
|
43
42
|
define_attribute(:tabSelected, :bool, :default => false)
|
|
44
43
|
define_attribute(:zoomScale, :int, :default => 100)
|
|
45
|
-
define_attribute(:workbookViewId, :int, :required => true, :default => 0
|
|
44
|
+
define_attribute(:workbookViewId, :int, :required => true, :default => 0)
|
|
46
45
|
define_attribute(:zoomToFit, :bool, :default => false)
|
|
47
46
|
define_child_node(RubyXL::ExtensionStorageArea)
|
|
48
47
|
define_element_name 'sheetView'
|
|
@@ -57,8 +56,8 @@ module RubyXL
|
|
|
57
56
|
|
|
58
57
|
# http://www.datypic.com/sc/ooxml/e-ssml_chartsheet.html
|
|
59
58
|
class Chartsheet < OOXMLTopLevelObject
|
|
60
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'
|
|
61
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet'
|
|
59
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'.freeze
|
|
60
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet'.freeze
|
|
62
61
|
|
|
63
62
|
include RubyXL::RelationshipSupport
|
|
64
63
|
define_relationship(RubyXL::DrawingFile)
|
|
@@ -80,13 +79,11 @@ module RubyXL
|
|
|
80
79
|
define_child_node(RubyXL::WebPublishingItems)
|
|
81
80
|
define_child_node(RubyXL::ExtensionStorageArea)
|
|
82
81
|
define_element_name 'chartsheet'
|
|
83
|
-
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main'
|
|
82
|
+
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
|
|
84
83
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
|
|
85
84
|
|
|
86
85
|
def xlsx_path
|
|
87
86
|
ROOT.join('xl', 'chartsheets', "sheet#{file_index}.xml")
|
|
88
87
|
end
|
|
89
|
-
|
|
90
88
|
end
|
|
91
|
-
|
|
92
89
|
end
|
data/lib/rubyXL/objects/color.rb
CHANGED
|
@@ -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
|
# http://www.datypic.com/sc/ooxml/e-ssml_color-4.html
|
|
7
6
|
class Color < OOXMLObject
|
|
8
7
|
COLOR_REGEXP = /\A([a-f]|[A-F]|[0-9]){6}\Z/
|
|
@@ -14,7 +13,7 @@ module RubyXL
|
|
|
14
13
|
define_attribute(:tint, :double, :default => 0.0)
|
|
15
14
|
define_element_name 'color'
|
|
16
15
|
|
|
17
|
-
#validates hex color code, no '#' allowed
|
|
16
|
+
# validates hex color code, no '#' allowed
|
|
18
17
|
def self.validate_color(color)
|
|
19
18
|
if color =~ COLOR_REGEXP
|
|
20
19
|
return true
|
|
@@ -23,5 +22,4 @@ module RubyXL
|
|
|
23
22
|
end
|
|
24
23
|
end
|
|
25
24
|
end
|
|
26
|
-
|
|
27
25
|
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require 'rubyXL/objects/ooxml_object'
|
|
2
2
|
|
|
3
3
|
module RubyXL
|
|
4
|
-
|
|
5
4
|
# http://www.datypic.com/sc/ooxml/e-ssml_col-1.html
|
|
6
5
|
class ColumnRange < OOXMLObject
|
|
7
6
|
define_attribute(:min, :uint, :required => true)
|
|
@@ -86,7 +85,5 @@ module RubyXL
|
|
|
86
85
|
self.sort_by!{ |r| r.min }
|
|
87
86
|
!(self.empty?)
|
|
88
87
|
end
|
|
89
|
-
|
|
90
88
|
end
|
|
91
|
-
|
|
92
89
|
end
|
|
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
|
|
|
2
2
|
require 'rubyXL/objects/extensions'
|
|
3
3
|
|
|
4
4
|
module RubyXL
|
|
5
|
-
|
|
6
5
|
# http://www.datypic.com/sc/ooxml/e-ssml_comment-1.html
|
|
7
6
|
class Comment < OOXMLObject
|
|
8
7
|
define_child_node(RubyXL::RichText, :node_name => 'text')
|
|
@@ -28,7 +27,7 @@ module RubyXL
|
|
|
28
27
|
# http://www.datypic.com/sc/ooxml/e-ssml_comments.html
|
|
29
28
|
class CommentsFile < OOXMLTopLevelObject
|
|
30
29
|
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'
|
|
31
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments'
|
|
30
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments'.freeze
|
|
32
31
|
|
|
33
32
|
define_child_node(RubyXL::Authors)
|
|
34
33
|
define_child_node(RubyXL::CommentList)
|
|
@@ -41,7 +40,5 @@ module RubyXL
|
|
|
41
40
|
def xlsx_path
|
|
42
41
|
ROOT.join('xl', "comments#{file_index}.xml")
|
|
43
42
|
end
|
|
44
|
-
|
|
45
43
|
end
|
|
46
|
-
|
|
47
44
|
end
|