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
|
@@ -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
|
|
@@ -50,8 +48,8 @@ module RubyXL
|
|
|
50
48
|
end
|
|
51
49
|
|
|
52
50
|
hls_color.h = (g - b) / delta if (r == max)
|
|
53
|
-
hls_color.h = 2.0 + (b - r) / delta if (g == max)
|
|
54
|
-
hls_color.h = 4.0 + (r - g) / delta if (b == max)
|
|
51
|
+
hls_color.h = 2.0 + ((b - r) / delta) if (g == max)
|
|
52
|
+
hls_color.h = 4.0 + ((r - g) / delta) if (b == max)
|
|
55
53
|
|
|
56
54
|
hls_color.h *= 60;
|
|
57
55
|
hls_color.h += 360 if hls_color.h < 0
|
|
@@ -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
|
|
@@ -98,7 +95,7 @@ module RubyXL
|
|
|
98
95
|
t1 = l + s - (l * s)
|
|
99
96
|
end
|
|
100
97
|
|
|
101
|
-
t2 = 2.0 * l - t1;
|
|
98
|
+
t2 = (2.0 * l) - t1;
|
|
102
99
|
h = self.h / 360.0
|
|
103
100
|
|
|
104
101
|
t_r = h + (1.0 / 3.0)
|
|
@@ -127,11 +124,11 @@ module RubyXL
|
|
|
127
124
|
t3 -= 1.0 if (t3 > 1)
|
|
128
125
|
|
|
129
126
|
if (6.0 * t3 < 1) then
|
|
130
|
-
color = t2 + (t1 - t2) * 6.0 * t3;
|
|
127
|
+
color = t2 + ((t1 - t2) * 6.0 * t3);
|
|
131
128
|
elsif (2.0 * t3 < 1) then
|
|
132
129
|
color = t1;
|
|
133
130
|
elsif (3.0 * t3 < 2) then
|
|
134
|
-
color = t2 + (t1 - t2) * ((2.0 / 3.0) - t3) * 6.0;
|
|
131
|
+
color = t2 + ((t1 - t2) * ((2.0 / 3.0) - t3) * 6.0);
|
|
135
132
|
else
|
|
136
133
|
color = t2;
|
|
137
134
|
end
|
|
@@ -146,12 +143,11 @@ module RubyXL
|
|
|
146
143
|
if tint < 0 then
|
|
147
144
|
self.l = l * (1.0 + tint);
|
|
148
145
|
else
|
|
149
|
-
self.l = l * (1.0 - tint) + tint;
|
|
146
|
+
self.l = (l * (1.0 - tint)) + tint;
|
|
150
147
|
end
|
|
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
|
|
@@ -23,11 +21,7 @@ module RubyXL
|
|
|
23
21
|
end
|
|
24
22
|
|
|
25
23
|
def get_fill_color(xf)
|
|
26
|
-
|
|
27
|
-
pattern = fill && fill.pattern_fill
|
|
28
|
-
color = pattern && pattern.fg_color
|
|
29
|
-
color = color && color.get_rgb(self)
|
|
30
|
-
color && color.to_s || 'ffffff'
|
|
24
|
+
fills[xf.fill_id]&.pattern_fill&.fg_color&.get_rgb(self)&.to_s || 'ffffff'
|
|
31
25
|
end
|
|
32
26
|
|
|
33
27
|
def register_new_fill(new_fill, old_xf)
|
|
@@ -73,8 +67,8 @@ module RubyXL
|
|
|
73
67
|
def modify_fill(style_index, rgb)
|
|
74
68
|
xf = cell_xfs[style_index || 0].dup
|
|
75
69
|
new_fill = RubyXL::Fill.new(:pattern_fill =>
|
|
76
|
-
|
|
77
|
-
|
|
70
|
+
RubyXL::PatternFill.new(:pattern_type => 'solid',
|
|
71
|
+
:fg_color => RubyXL::Color.new(:rgb => rgb)))
|
|
78
72
|
register_new_xf(register_new_fill(new_fill, xf))
|
|
79
73
|
end
|
|
80
74
|
|
|
@@ -130,6 +124,13 @@ module RubyXL
|
|
|
130
124
|
self.defined_names && self.defined_names.find { |n| n.name == name }
|
|
131
125
|
end
|
|
132
126
|
|
|
127
|
+
def title
|
|
128
|
+
self.root.core_properties.dc_title && self.root.core_properties.dc_title.value
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def title=(v)
|
|
132
|
+
self.root.core_properties.dc_title = v && RubyXL::StringNode.new(:value => v)
|
|
133
|
+
end
|
|
133
134
|
end
|
|
134
135
|
|
|
135
136
|
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
|
|
@@ -106,6 +105,21 @@ module RubyXL
|
|
|
106
105
|
}
|
|
107
106
|
}
|
|
108
107
|
|
|
108
|
+
# Update merged cells for all rows below
|
|
109
|
+
if self.merged_cells then
|
|
110
|
+
merged_cells.each { |mc|
|
|
111
|
+
next if mc.ref.row_range.last < row_index
|
|
112
|
+
|
|
113
|
+
in_merged_cell = mc.ref.row_range.first < row_index
|
|
114
|
+
mc.ref = RubyXL::Reference.new(
|
|
115
|
+
mc.ref.row_range.first + (in_merged_cell ? 0 : 1),
|
|
116
|
+
mc.ref.row_range.last + 1,
|
|
117
|
+
mc.ref.col_range.first,
|
|
118
|
+
mc.ref.col_range.last,
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
end
|
|
122
|
+
|
|
109
123
|
return new_row
|
|
110
124
|
end
|
|
111
125
|
|
|
@@ -121,6 +135,23 @@ module RubyXL
|
|
|
121
135
|
row && row.cells.each{ |c| c.row -= 1 unless c.nil? }
|
|
122
136
|
}
|
|
123
137
|
|
|
138
|
+
# Update row number of merged cells
|
|
139
|
+
if self.merged_cells then
|
|
140
|
+
merged_cells.delete_if { |mc| mc.ref.row_range == (row_index..row_index) }
|
|
141
|
+
merged_cells.each { |mc|
|
|
142
|
+
next if mc.ref.row_range.last < row_index
|
|
143
|
+
|
|
144
|
+
in_merged_cell = mc.ref.row_range.first <= row_index
|
|
145
|
+
mc.ref = RubyXL::Reference.new(
|
|
146
|
+
mc.ref.row_range.first - (in_merged_cell ? 0 : 1),
|
|
147
|
+
mc.ref.row_range.last - 1,
|
|
148
|
+
mc.ref.col_range.first,
|
|
149
|
+
mc.ref.col_range.last,
|
|
150
|
+
)
|
|
151
|
+
}
|
|
152
|
+
merged_cells.delete_if { |mc| mc.ref.single_cell? }
|
|
153
|
+
end
|
|
154
|
+
|
|
124
155
|
return deleted
|
|
125
156
|
end
|
|
126
157
|
|
|
@@ -152,6 +183,21 @@ module RubyXL
|
|
|
152
183
|
|
|
153
184
|
cols.insert_column(column_index)
|
|
154
185
|
|
|
186
|
+
# Update merged cells for all rows below
|
|
187
|
+
if self.merged_cells then
|
|
188
|
+
merged_cells.each { |mc|
|
|
189
|
+
next if mc.ref.col_range.last < column_index
|
|
190
|
+
|
|
191
|
+
in_merged_cell = mc.ref.row_range.first < column_index
|
|
192
|
+
mc.ref = RubyXL::Reference.new(
|
|
193
|
+
mc.ref.row_range.first,
|
|
194
|
+
mc.ref.row_range.last,
|
|
195
|
+
mc.ref.col_range.first + (in_merged_cell ? 0 : 1),
|
|
196
|
+
mc.ref.col_range.last + 1,
|
|
197
|
+
)
|
|
198
|
+
}
|
|
199
|
+
end
|
|
200
|
+
|
|
155
201
|
# TODO: update column numbers
|
|
156
202
|
end
|
|
157
203
|
|
|
@@ -160,10 +206,10 @@ module RubyXL
|
|
|
160
206
|
validate_nonnegative(column_index)
|
|
161
207
|
|
|
162
208
|
# Delete column
|
|
163
|
-
sheet_data.rows.each { |row| row
|
|
209
|
+
sheet_data.rows.each { |row| row&.cells&.delete_at(column_index) }
|
|
164
210
|
|
|
165
211
|
# Update column numbers for cells to the right of the deleted column
|
|
166
|
-
sheet_data.rows.
|
|
212
|
+
sheet_data.rows.each { |row|
|
|
167
213
|
next if row.nil?
|
|
168
214
|
row.cells.each_with_index { |c, ci|
|
|
169
215
|
c.column = ci if c.is_a?(Cell)
|
|
@@ -171,6 +217,24 @@ module RubyXL
|
|
|
171
217
|
}
|
|
172
218
|
|
|
173
219
|
cols.each { |range| range.delete_column(column_index) }
|
|
220
|
+
|
|
221
|
+
# Update row number of merged cells
|
|
222
|
+
return unless self.merged_cells
|
|
223
|
+
|
|
224
|
+
merged_cells.delete_if { |mc| mc.ref.col_range == (column_index..column_index) }
|
|
225
|
+
merged_cells.each { |mc|
|
|
226
|
+
next if mc.ref.col_range.last < column_index
|
|
227
|
+
|
|
228
|
+
in_merged_cell = mc.ref.col_range.first <= column_index
|
|
229
|
+
mc.ref = RubyXL::Reference.new(
|
|
230
|
+
mc.ref.row_range.first,
|
|
231
|
+
mc.ref.row_range.last,
|
|
232
|
+
mc.ref.col_range.first - (in_merged_cell ? 0 : 1),
|
|
233
|
+
mc.ref.col_range.last - 1,
|
|
234
|
+
)
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
merged_cells.delete_if { |mc| mc.ref.single_cell? }
|
|
174
238
|
end
|
|
175
239
|
|
|
176
240
|
def get_row_style(row_index)
|
|
@@ -216,7 +280,7 @@ module RubyXL
|
|
|
216
280
|
validate_workbook
|
|
217
281
|
validate_nonnegative(row)
|
|
218
282
|
row = sheet_data.rows[row]
|
|
219
|
-
row && row.ht || RubyXL::Row::DEFAULT_HEIGHT
|
|
283
|
+
(row && row.ht) || RubyXL::Row::DEFAULT_HEIGHT
|
|
220
284
|
end
|
|
221
285
|
|
|
222
286
|
def get_row_border(row, border_direction)
|
|
@@ -318,7 +382,7 @@ module RubyXL
|
|
|
318
382
|
# Get column width measured in number of digits, as per
|
|
319
383
|
# http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.column%28v=office.14%29.aspx
|
|
320
384
|
def change_column_width(column_index, width_in_chars = RubyXL::ColumnRange::DEFAULT_WIDTH)
|
|
321
|
-
change_column_width_raw(column_index,
|
|
385
|
+
change_column_width_raw(column_index, RubyXL::ColumnRange::chars2raw(width_in_chars))
|
|
322
386
|
end
|
|
323
387
|
|
|
324
388
|
# Helper method to get the style index for a column
|
|
@@ -625,12 +689,44 @@ module RubyXL
|
|
|
625
689
|
end
|
|
626
690
|
|
|
627
691
|
# Merges cells within a rectangular area
|
|
628
|
-
|
|
692
|
+
# #merge_cells(row_from, col_from, row_to, col_to)
|
|
693
|
+
# #merge_cells(reference_string)
|
|
694
|
+
# #merge_cells(row_from:, row_to:, col_from:, col_to:)
|
|
695
|
+
def merge_cells(*params)
|
|
629
696
|
validate_workbook
|
|
630
697
|
|
|
698
|
+
row_from = col_from = row_to = col_to = nil
|
|
699
|
+
case params.size
|
|
700
|
+
when 4 then row_from, col_from, row_to, col_to = params
|
|
701
|
+
when 1 then
|
|
702
|
+
case params.first
|
|
703
|
+
when Hash then
|
|
704
|
+
row_from, row_to, col_from, col_to = params.first.fetch_values(:row_from, :row_to, :col_from, :col_to)
|
|
705
|
+
when String then
|
|
706
|
+
from, to = params[0].split(':')
|
|
707
|
+
raise ArgumentError.new("reference for merging cells must be a range") if to.nil?
|
|
708
|
+
row_from, col_from = RubyXL::Reference.ref2ind(from)
|
|
709
|
+
row_to, col_to = RubyXL::Reference.ref2ind(to)
|
|
710
|
+
else
|
|
711
|
+
raise ArgumentError.new("invalid value for #{self.class}: #{params[0].inspect}") unless params[0].is_a?(String)
|
|
712
|
+
end
|
|
713
|
+
end
|
|
714
|
+
|
|
631
715
|
self.merged_cells ||= RubyXL::MergedCells.new
|
|
632
716
|
# TODO: add validation to make sure ranges are not intersecting with existing ones
|
|
633
|
-
merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(
|
|
717
|
+
merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(row_from, row_to, col_from, col_to))
|
|
718
|
+
end
|
|
719
|
+
|
|
720
|
+
def add_validation_list(ref, list_arr)
|
|
721
|
+
# "Any double quote characters in the value should be escaped with another double quote.
|
|
722
|
+
# If the value does not contain a comma, newline or double quote, then the String value should be returned unchanged.
|
|
723
|
+
# If the value contains a comma, newline or double quote, then the String value should be returned enclosed in double quotes."
|
|
724
|
+
expr = '"' + list_arr.collect{ |str| str.gsub('"', '""') }.join(',') + '"'
|
|
725
|
+
self.data_validations ||= RubyXL::DataValidations.new
|
|
726
|
+
self.data_validations <<
|
|
727
|
+
RubyXL::DataValidation.new({:sqref => RubyXL::Reference.new(ref),
|
|
728
|
+
:formula1 => RubyXL::Formula.new(:expression => expr),
|
|
729
|
+
:type => 'list'})
|
|
634
730
|
end
|
|
635
731
|
end
|
|
636
732
|
|
|
@@ -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)
|
|
@@ -34,7 +33,7 @@ module RubyXL
|
|
|
34
33
|
define_attribute(:horizontalDpi, :int, :default => 600)
|
|
35
34
|
define_attribute(:verticalDpi, :int, :default => 600)
|
|
36
35
|
define_attribute(:copies, :int, :default => 1)
|
|
37
|
-
|
|
36
|
+
define_relationship
|
|
38
37
|
define_element_name 'pageSetup'
|
|
39
38
|
end
|
|
40
39
|
|
|
@@ -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,14 +56,13 @@ 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)
|
|
65
64
|
|
|
66
|
-
attr_accessor :state, :rels
|
|
67
|
-
attr_accessor :workbook, :sheet_name, :sheet_id
|
|
65
|
+
attr_accessor :state, :rels, :workbook, :sheet_name, :sheet_id
|
|
68
66
|
|
|
69
67
|
define_child_node(RubyXL::ChartsheetProperties)
|
|
70
68
|
define_child_node(RubyXL::ChartsheetViews)
|
|
@@ -80,13 +78,11 @@ module RubyXL
|
|
|
80
78
|
define_child_node(RubyXL::WebPublishingItems)
|
|
81
79
|
define_child_node(RubyXL::ExtensionStorageArea)
|
|
82
80
|
define_element_name 'chartsheet'
|
|
83
|
-
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main'
|
|
81
|
+
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
|
|
84
82
|
'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
|
|
85
83
|
|
|
86
84
|
def xlsx_path
|
|
87
85
|
ROOT.join('xl', 'chartsheets', "sheet#{file_index}.xml")
|
|
88
86
|
end
|
|
89
|
-
|
|
90
87
|
end
|
|
91
|
-
|
|
92
88
|
end
|
data/lib/rubyXL/objects/color.rb
CHANGED
|
@@ -2,10 +2,9 @@ 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
|
-
COLOR_REGEXP = /\A([a-
|
|
7
|
+
COLOR_REGEXP = /\A(?:[a-f0-9]{6}|[a-f0-9]{8})\Z/i
|
|
9
8
|
|
|
10
9
|
define_attribute(:auto, :bool)
|
|
11
10
|
define_attribute(:indexed, :uint)
|
|
@@ -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)
|
|
@@ -18,21 +17,25 @@ module RubyXL
|
|
|
18
17
|
|
|
19
18
|
def delete_column(col_index)
|
|
20
19
|
col = col_index + 1
|
|
21
|
-
self.min -=1 if min >= col
|
|
22
|
-
self.max -=1 if max >= col
|
|
20
|
+
self.min -= 1 if min >= col
|
|
21
|
+
self.max -= 1 if max >= col
|
|
23
22
|
end
|
|
24
23
|
|
|
25
24
|
def insert_column(col_index)
|
|
26
25
|
col = col_index + 1
|
|
27
|
-
self.min +=1 if min >= col
|
|
28
|
-
self.max +=1 if max >= col - 1
|
|
26
|
+
self.min += 1 if min >= col
|
|
27
|
+
self.max += 1 if max >= col - 1
|
|
29
28
|
end
|
|
30
29
|
|
|
31
30
|
def include?(col_index)
|
|
32
|
-
((min-1)..(max-1)).include?(col_index)
|
|
31
|
+
((min - 1)..(max - 1)).include?(col_index)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def self.chars2raw(width_in_chars)
|
|
35
|
+
((width_in_chars + (5.0 / RubyXL::Font::MAX_DIGIT_WIDTH)) * 256).to_i / 256.0
|
|
33
36
|
end
|
|
34
37
|
|
|
35
|
-
DEFAULT_WIDTH =
|
|
38
|
+
DEFAULT_WIDTH = 8
|
|
36
39
|
end
|
|
37
40
|
|
|
38
41
|
class ColumnRanges < OOXMLContainerObject
|
|
@@ -48,7 +51,7 @@ module RubyXL
|
|
|
48
51
|
old_range = self.locate_range(col_index)
|
|
49
52
|
|
|
50
53
|
if old_range.nil? then
|
|
51
|
-
new_range = RubyXL::ColumnRange.new
|
|
54
|
+
new_range = RubyXL::ColumnRange.new(width: RubyXL::ColumnRange.chars2raw(RubyXL::ColumnRange::DEFAULT_WIDTH))
|
|
52
55
|
else
|
|
53
56
|
if old_range.min == col_num && old_range.max == col_num then
|
|
54
57
|
return old_range # Single column range, OK to change in place
|
|
@@ -59,9 +62,9 @@ module RubyXL
|
|
|
59
62
|
new_range = old_range.dup
|
|
60
63
|
old_range.max -= 1
|
|
61
64
|
else
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
self <<
|
|
65
|
+
prior_range = old_range.dup
|
|
66
|
+
prior_range.max = col_index # col_num - 1
|
|
67
|
+
self << prior_range
|
|
65
68
|
|
|
66
69
|
old_range.min = col_num + 1
|
|
67
70
|
|
|
@@ -83,10 +86,8 @@ module RubyXL
|
|
|
83
86
|
end
|
|
84
87
|
|
|
85
88
|
def before_write_xml
|
|
86
|
-
self.sort_by!
|
|
87
|
-
!
|
|
89
|
+
self.sort_by!(&:min)
|
|
90
|
+
!self.empty?
|
|
88
91
|
end
|
|
89
|
-
|
|
90
92
|
end
|
|
91
|
-
|
|
92
93
|
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
|
|
@@ -59,7 +59,7 @@ module RubyXL
|
|
|
59
59
|
define_attribute(:url, RubyXL::ST_Xstring)
|
|
60
60
|
define_attribute(:post, RubyXL::ST_Xstring)
|
|
61
61
|
define_attribute(:htmlTables, :bool, :default => false)
|
|
62
|
-
define_attribute(:htmlFormat, ssml:ST_HtmlFmt, :default =>
|
|
62
|
+
define_attribute(:htmlFormat, ssml:ST_HtmlFmt, :default => 'none')
|
|
63
63
|
define_attribute(:editPage, RubyXL::ST_Xstring)
|
|
64
64
|
|
|
65
65
|
define_child_node(RubyXL::ConnectionTables)
|
|
@@ -69,7 +69,7 @@ module RubyXL
|
|
|
69
69
|
|
|
70
70
|
# http://www.datypic.com/sc/ooxml/e-ssml_textField-1.html
|
|
71
71
|
class ConnectionTextField < OOXMLObject
|
|
72
|
-
define_attribute(:type, RubyXL::ST_ExternalConnectionType, :default =>
|
|
72
|
+
define_attribute(:type, RubyXL::ST_ExternalConnectionType, :default => 'general')
|
|
73
73
|
define_attribute(:position, :uint, :default => 0)
|
|
74
74
|
end
|
|
75
75
|
|
|
@@ -83,19 +83,19 @@ module RubyXL
|
|
|
83
83
|
# http://www.datypic.com/sc/ooxml/e-ssml_textPr-1.html
|
|
84
84
|
class TextImportSettings < OOXMLObject
|
|
85
85
|
define_attribute(:prompt, :bool, :default => true)
|
|
86
|
-
define_attribute(:fileType, RubyXL::ST_FileType, :default =>
|
|
86
|
+
define_attribute(:fileType, RubyXL::ST_FileType, :default => 'win')
|
|
87
87
|
define_attribute(:codePage, :uint, :default => 1252)
|
|
88
88
|
define_attribute(:firstRow, :uint, :default => 1)
|
|
89
|
-
define_attribute(:sourceFile, RubyXL::ST_Xstring,
|
|
89
|
+
define_attribute(:sourceFile, RubyXL::ST_Xstring, :default => '')
|
|
90
90
|
define_attribute(:delimited, :bool, :default => true)
|
|
91
|
-
define_attribute(:decimal, RubyXL::ST_Xstring, :default =>
|
|
92
|
-
define_attribute(:thousands, RubyXL::ST_Xstring, :default =>
|
|
91
|
+
define_attribute(:decimal, RubyXL::ST_Xstring, :default => '.')
|
|
92
|
+
define_attribute(:thousands, RubyXL::ST_Xstring, :default => ',')
|
|
93
93
|
define_attribute(:tab, :bool, :default => true)
|
|
94
94
|
define_attribute(:space, :bool, :default => false)
|
|
95
95
|
define_attribute(:comma, :bool, :default => false)
|
|
96
96
|
define_attribute(:semicolon, :bool, :default => false)
|
|
97
97
|
define_attribute(:consecutive, :bool, :default => false)
|
|
98
|
-
define_attribute(:qualifier, ssml:ST_Qualifier, :default =>
|
|
98
|
+
define_attribute(:qualifier, ssml:ST_Qualifier, :default => 'doubleQuote')
|
|
99
99
|
define_attribute(:delimiter, RubyXL::ST_Xstring)
|
|
100
100
|
|
|
101
101
|
define_child_node(RubyXL::ConnectionTextFields)
|
|
@@ -107,7 +107,7 @@ module RubyXL
|
|
|
107
107
|
class QueryParameter < OOXMLObject
|
|
108
108
|
define_attribute(:name, RubyXL::ST_Xstring)
|
|
109
109
|
define_attribute(:sqlType, :int, :default => 0)
|
|
110
|
-
define_attribute(:parameterType, RubyXL::ST_ParameterType, :default =>
|
|
110
|
+
define_attribute(:parameterType, RubyXL::ST_ParameterType, :default => 'prompt')
|
|
111
111
|
define_attribute(:refreshOnChange, :bool, :default => false)
|
|
112
112
|
define_attribute(:prompt, RubyXL::ST_Xstring)
|
|
113
113
|
define_attribute(:boolean, :bool)
|
|
@@ -144,7 +144,7 @@ module RubyXL
|
|
|
144
144
|
define_attribute(:background, :bool, :default => false)
|
|
145
145
|
define_attribute(:refreshOnLoad, :bool, :default => false)
|
|
146
146
|
define_attribute(:saveData, :bool, :default => false)
|
|
147
|
-
define_attribute(:credentials, RubyXL::ST_CredMethod, :default =>
|
|
147
|
+
define_attribute(:credentials, RubyXL::ST_CredMethod, :default => 'integrated')
|
|
148
148
|
define_attribute(:singleSignOnId, RubyXL::ST_Xstring)
|
|
149
149
|
|
|
150
150
|
define_child_node(RubyXL::OdbcOleDbProperties)
|
|
@@ -159,8 +159,8 @@ module RubyXL
|
|
|
159
159
|
|
|
160
160
|
# http://www.datypic.com/sc/ooxml/e-ssml_connections.html
|
|
161
161
|
class Connections < OOXMLTopLevelObject
|
|
162
|
-
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'
|
|
163
|
-
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections'
|
|
162
|
+
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'.freeze
|
|
163
|
+
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections'.freeze
|
|
164
164
|
|
|
165
165
|
define_child_node(RubyXL::Connection, :collection => true, :accessor => :connections)
|
|
166
166
|
|
|
@@ -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 BooleanValue < OOXMLObject
|
|
7
6
|
define_attribute(:val, :bool, :required => true, :default => true)
|
|
8
7
|
end
|
|
@@ -46,12 +45,11 @@ module RubyXL
|
|
|
46
45
|
def self.default(v)
|
|
47
46
|
v && self.new(:value => v.to_datetime.iso8601)
|
|
48
47
|
end
|
|
49
|
-
|
|
50
48
|
end
|
|
51
49
|
|
|
52
50
|
# http://www.datypic.com/sc/ooxml/e-docPropsVTypes_variant.html
|
|
53
51
|
class Variant < OOXMLObject
|
|
54
|
-
define_child_node(RubyXL::Variant,
|
|
52
|
+
define_child_node(RubyXL::Variant, :node_name => 'vt:variant')
|
|
55
53
|
|
|
56
54
|
# vector Vector
|
|
57
55
|
# array Array
|
|
@@ -125,11 +123,9 @@ module RubyXL
|
|
|
125
123
|
known_child_nodes.values.each { |v| self.size += self.send(v[:accessor]).size }
|
|
126
124
|
true
|
|
127
125
|
end
|
|
128
|
-
|
|
129
126
|
end
|
|
130
127
|
|
|
131
128
|
class VectorValue < OOXMLObject
|
|
132
129
|
define_child_node(RubyXL::Vector)
|
|
133
130
|
end
|
|
134
|
-
|
|
135
131
|
end
|