rubyXL 3.4.15 → 3.4.20

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.
Files changed (416) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -1
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +75 -43
  5. data/README.rdoc +6 -3
  6. data/Rakefile +3 -3
  7. data/VERSION +1 -1
  8. data/lib/rubyXL/convenience_methods/cell.rb +1 -1
  9. data/lib/rubyXL/convenience_methods/worksheet.rb +65 -0
  10. data/lib/rubyXL/objects/chartsheet.rb +1 -1
  11. data/lib/rubyXL/objects/external_links.rb +25 -1
  12. data/lib/rubyXL/objects/ooxml_object.rb +5 -0
  13. data/lib/rubyXL/objects/reference.rb +2 -5
  14. data/lib/rubyXL/objects/relationships.rb +1 -1
  15. data/lib/rubyXL/objects/sheet_data.rb +2 -1
  16. data/lib/rubyXL/objects/text.rb +2 -1
  17. data/lib/rubyXL/objects/theme.rb +1 -1
  18. data/lib/rubyXL/objects/workbook.rb +8 -5
  19. data/lib/rubyXL/objects/worksheet.rb +7 -7
  20. data/rdoc/README_rdoc.html +18 -11
  21. data/rdoc/RubyXL/AExtension.html +9 -51
  22. data/rdoc/RubyXL/AExtensionStorageArea.html +5 -14
  23. data/rdoc/RubyXL/ActiveX.html +10 -41
  24. data/rdoc/RubyXL/ActiveXBinary.html +5 -19
  25. data/rdoc/RubyXL/AdjustHandleList.html +5 -14
  26. data/rdoc/RubyXL/Alignment.html +5 -14
  27. data/rdoc/RubyXL/AlternateContent.html +5 -14
  28. data/rdoc/RubyXL/Authors.html +5 -14
  29. data/rdoc/RubyXL/AutoFilter.html +5 -14
  30. data/rdoc/RubyXL/AutoFilterColumn.html +5 -14
  31. data/rdoc/RubyXL/BinaryImageFile.html +5 -22
  32. data/rdoc/RubyXL/BodyProperties.html +5 -14
  33. data/rdoc/RubyXL/BooleanNode.html +5 -14
  34. data/rdoc/RubyXL/BooleanValue.html +5 -14
  35. data/rdoc/RubyXL/Border.html +8 -70
  36. data/rdoc/RubyXL/BorderEdge.html +8 -44
  37. data/rdoc/RubyXL/Borders.html +8 -31
  38. data/rdoc/RubyXL/Break.html +5 -14
  39. data/rdoc/RubyXL/BreakList.html +5 -14
  40. data/rdoc/RubyXL/CT_AdjPoint2D.html +5 -14
  41. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +5 -14
  42. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +5 -14
  43. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +5 -14
  44. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +5 -14
  45. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +5 -14
  46. data/rdoc/RubyXL/CT_Backdrop.html +5 -14
  47. data/rdoc/RubyXL/CT_Bevel.html +5 -14
  48. data/rdoc/RubyXL/CT_BiLevelEffect.html +5 -14
  49. data/rdoc/RubyXL/CT_BlendEffect.html +5 -14
  50. data/rdoc/RubyXL/CT_Blip.html +5 -14
  51. data/rdoc/RubyXL/CT_BlipFillProperties.html +5 -14
  52. data/rdoc/RubyXL/CT_BlurEffect.html +5 -14
  53. data/rdoc/RubyXL/CT_Camera.html +5 -14
  54. data/rdoc/RubyXL/CT_Color.html +5 -14
  55. data/rdoc/RubyXL/CT_ColorChangeEffect.html +5 -14
  56. data/rdoc/RubyXL/CT_ColorMapping.html +5 -14
  57. data/rdoc/RubyXL/CT_ColorScheme.html +5 -14
  58. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +5 -14
  59. data/rdoc/RubyXL/CT_ConnectionSite.html +5 -14
  60. data/rdoc/RubyXL/CT_ConnectionSiteList.html +5 -14
  61. data/rdoc/RubyXL/CT_DashStop.html +5 -14
  62. data/rdoc/RubyXL/CT_DashStopList.html +5 -14
  63. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +5 -14
  64. data/rdoc/RubyXL/CT_DuotoneEffect.html +5 -14
  65. data/rdoc/RubyXL/CT_EffectContainer.html +5 -14
  66. data/rdoc/RubyXL/CT_EffectList.html +5 -14
  67. data/rdoc/RubyXL/CT_EffectReference.html +5 -14
  68. data/rdoc/RubyXL/CT_EffectStyleItem.html +5 -14
  69. data/rdoc/RubyXL/CT_EffectStyleList.html +5 -14
  70. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +5 -14
  71. data/rdoc/RubyXL/CT_FillEffect.html +5 -14
  72. data/rdoc/RubyXL/CT_FillOverlayEffect.html +5 -14
  73. data/rdoc/RubyXL/CT_FillStyleList.html +5 -14
  74. data/rdoc/RubyXL/CT_FlatText.html +5 -14
  75. data/rdoc/RubyXL/CT_FontCollection.html +5 -14
  76. data/rdoc/RubyXL/CT_FontReference.html +5 -14
  77. data/rdoc/RubyXL/CT_GeomGuideList.html +5 -14
  78. data/rdoc/RubyXL/CT_GlowEffect.html +5 -14
  79. data/rdoc/RubyXL/CT_GradientFillProperties.html +5 -14
  80. data/rdoc/RubyXL/CT_GradientStop.html +5 -14
  81. data/rdoc/RubyXL/CT_GradientStopList.html +5 -14
  82. data/rdoc/RubyXL/CT_HSLEffect.html +5 -14
  83. data/rdoc/RubyXL/CT_HslColor.html +5 -14
  84. data/rdoc/RubyXL/CT_Hyperlink.html +5 -14
  85. data/rdoc/RubyXL/CT_InnerShadowEffect.html +5 -14
  86. data/rdoc/RubyXL/CT_LightRig.html +5 -14
  87. data/rdoc/RubyXL/CT_LineEndProperties.html +5 -14
  88. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +5 -14
  89. data/rdoc/RubyXL/CT_LineProperties.html +5 -14
  90. data/rdoc/RubyXL/CT_LineStyleList.html +5 -14
  91. data/rdoc/RubyXL/CT_LinearShadeProperties.html +5 -14
  92. data/rdoc/RubyXL/CT_LuminanceEffect.html +5 -14
  93. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +5 -14
  94. data/rdoc/RubyXL/CT_OuterShadowEffect.html +5 -14
  95. data/rdoc/RubyXL/CT_Path2D.html +5 -14
  96. data/rdoc/RubyXL/CT_Path2DArcTo.html +5 -14
  97. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +5 -14
  98. data/rdoc/RubyXL/CT_Path2DList.html +5 -14
  99. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +5 -14
  100. data/rdoc/RubyXL/CT_Path2DTo.html +5 -14
  101. data/rdoc/RubyXL/CT_PathShadeProperties.html +5 -14
  102. data/rdoc/RubyXL/CT_PatternFillProperties.html +5 -14
  103. data/rdoc/RubyXL/CT_Point3D.html +5 -14
  104. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +5 -14
  105. data/rdoc/RubyXL/CT_PresetColor.html +5 -14
  106. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +5 -14
  107. data/rdoc/RubyXL/CT_PresetShadowEffect.html +5 -14
  108. data/rdoc/RubyXL/CT_PresetTextShape.html +5 -14
  109. data/rdoc/RubyXL/CT_ReflectionEffect.html +5 -14
  110. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +5 -14
  111. data/rdoc/RubyXL/CT_RelativeRect.html +5 -14
  112. data/rdoc/RubyXL/CT_SRgbColor.html +5 -14
  113. data/rdoc/RubyXL/CT_ScRgbColor.html +5 -14
  114. data/rdoc/RubyXL/CT_Scene3D.html +5 -14
  115. data/rdoc/RubyXL/CT_SchemeColor.html +5 -14
  116. data/rdoc/RubyXL/CT_Shape3D.html +5 -14
  117. data/rdoc/RubyXL/CT_ShapeStyle.html +5 -14
  118. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +5 -14
  119. data/rdoc/RubyXL/CT_SphereCoords.html +5 -14
  120. data/rdoc/RubyXL/CT_StretchInfoProperties.html +5 -14
  121. data/rdoc/RubyXL/CT_StyleMatrix.html +5 -14
  122. data/rdoc/RubyXL/CT_StyleMatrixReference.html +5 -14
  123. data/rdoc/RubyXL/CT_SupplementalFont.html +5 -14
  124. data/rdoc/RubyXL/CT_SystemColor.html +5 -14
  125. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +5 -14
  126. data/rdoc/RubyXL/CT_TextBlipBullet.html +5 -14
  127. data/rdoc/RubyXL/CT_TextCharBullet.html +5 -14
  128. data/rdoc/RubyXL/CT_TextCharacterProperties.html +5 -14
  129. data/rdoc/RubyXL/CT_TextFont.html +5 -14
  130. data/rdoc/RubyXL/CT_TextListStyle.html +5 -14
  131. data/rdoc/RubyXL/CT_TextNormalAutofit.html +5 -14
  132. data/rdoc/RubyXL/CT_TextParagraphProperties.html +5 -14
  133. data/rdoc/RubyXL/CT_TextSpacing.html +5 -14
  134. data/rdoc/RubyXL/CT_TextTabStop.html +5 -14
  135. data/rdoc/RubyXL/CT_TextTabStopList.html +5 -14
  136. data/rdoc/RubyXL/CT_TileInfoProperties.html +5 -14
  137. data/rdoc/RubyXL/CT_TintEffect.html +5 -14
  138. data/rdoc/RubyXL/CT_Transform2D.html +5 -14
  139. data/rdoc/RubyXL/CT_TransformEffect.html +5 -14
  140. data/rdoc/RubyXL/CT_Vector3D.html +5 -14
  141. data/rdoc/RubyXL/CT_XYAdjustHandle.html +5 -14
  142. data/rdoc/RubyXL/CalculationChain.html +8 -39
  143. data/rdoc/RubyXL/CalculationChainCell.html +5 -14
  144. data/rdoc/RubyXL/CalculationProperties.html +5 -14
  145. data/rdoc/RubyXL/Cell.html +13 -217
  146. data/rdoc/RubyXL/CellConvenienceMethods.html +6 -457
  147. data/rdoc/RubyXL/CellExt.html +5 -14
  148. data/rdoc/RubyXL/CellSmartTag.html +5 -14
  149. data/rdoc/RubyXL/CellSmartTagProperty.html +5 -14
  150. data/rdoc/RubyXL/CellSmartTags.html +5 -14
  151. data/rdoc/RubyXL/CellStyle.html +5 -14
  152. data/rdoc/RubyXL/CellStyleXFs.html +8 -31
  153. data/rdoc/RubyXL/CellStyles.html +8 -31
  154. data/rdoc/RubyXL/CellValue.html +8 -31
  155. data/rdoc/RubyXL/CellWatch.html +5 -14
  156. data/rdoc/RubyXL/CellWatches.html +5 -14
  157. data/rdoc/RubyXL/CellXFs.html +8 -31
  158. data/rdoc/RubyXL/ChartColorsFile.html +5 -22
  159. data/rdoc/RubyXL/ChartFile.html +10 -44
  160. data/rdoc/RubyXL/ChartStyleFile.html +5 -22
  161. data/rdoc/RubyXL/ChartUserShapesFile.html +5 -22
  162. data/rdoc/RubyXL/Chartsheet.html +10 -61
  163. data/rdoc/RubyXL/ChartsheetPageSetup.html +5 -14
  164. data/rdoc/RubyXL/ChartsheetProperties.html +5 -14
  165. data/rdoc/RubyXL/ChartsheetProtection.html +5 -14
  166. data/rdoc/RubyXL/ChartsheetView.html +5 -14
  167. data/rdoc/RubyXL/ChartsheetViews.html +5 -14
  168. data/rdoc/RubyXL/Color.html +9 -37
  169. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +8 -58
  170. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +9 -73
  171. data/rdoc/RubyXL/ColorConvenienceClasses.html +3 -11
  172. data/rdoc/RubyXL/ColorConvenienceMethods.html +6 -28
  173. data/rdoc/RubyXL/ColorFilter.html +5 -14
  174. data/rdoc/RubyXL/ColorScale.html +5 -14
  175. data/rdoc/RubyXL/ColorSet.html +5 -14
  176. data/rdoc/RubyXL/Colors.html +5 -14
  177. data/rdoc/RubyXL/ColumnRange.html +8 -62
  178. data/rdoc/RubyXL/ColumnRanges.html +8 -70
  179. data/rdoc/RubyXL/Comment.html +5 -14
  180. data/rdoc/RubyXL/CommentList.html +5 -14
  181. data/rdoc/RubyXL/CommentsFile.html +8 -44
  182. data/rdoc/RubyXL/ConditionalFormatValue.html +5 -14
  183. data/rdoc/RubyXL/ConditionalFormatting.html +5 -14
  184. data/rdoc/RubyXL/ConditionalFormattingRule.html +5 -14
  185. data/rdoc/RubyXL/Connection.html +5 -14
  186. data/rdoc/RubyXL/ConnectionTable.html +5 -14
  187. data/rdoc/RubyXL/ConnectionTables.html +5 -14
  188. data/rdoc/RubyXL/ConnectionTextField.html +5 -14
  189. data/rdoc/RubyXL/ConnectionTextFields.html +5 -14
  190. data/rdoc/RubyXL/Connections.html +8 -39
  191. data/rdoc/RubyXL/ContentTypeDefault.html +5 -14
  192. data/rdoc/RubyXL/ContentTypeOverride.html +5 -14
  193. data/rdoc/RubyXL/ContentTypes.html +8 -52
  194. data/rdoc/RubyXL/ControlPropertiesFile.html +5 -22
  195. data/rdoc/RubyXL/CorePropertiesFile.html +8 -148
  196. data/rdoc/RubyXL/CustomColor.html +5 -14
  197. data/rdoc/RubyXL/CustomColorList.html +5 -14
  198. data/rdoc/RubyXL/CustomFilter.html +5 -14
  199. data/rdoc/RubyXL/CustomFilters.html +5 -14
  200. data/rdoc/RubyXL/CustomGeometry.html +5 -14
  201. data/rdoc/RubyXL/CustomProperties.html +5 -14
  202. data/rdoc/RubyXL/CustomPropertiesFile.html +5 -22
  203. data/rdoc/RubyXL/CustomProperty.html +5 -14
  204. data/rdoc/RubyXL/CustomPropertyFile.html +5 -22
  205. data/rdoc/RubyXL/CustomSheetView.html +5 -14
  206. data/rdoc/RubyXL/CustomSheetViews.html +5 -14
  207. data/rdoc/RubyXL/CustomWorkbookView.html +5 -14
  208. data/rdoc/RubyXL/CustomWorkbookViews.html +5 -14
  209. data/rdoc/RubyXL/CustomXMLFile.html +5 -19
  210. data/rdoc/RubyXL/DXF.html +5 -14
  211. data/rdoc/RubyXL/DXFs.html +5 -14
  212. data/rdoc/RubyXL/DataBar.html +5 -14
  213. data/rdoc/RubyXL/DataConsolidate.html +5 -14
  214. data/rdoc/RubyXL/DataConsolidationReference.html +5 -14
  215. data/rdoc/RubyXL/DataConsolidationReferences.html +5 -14
  216. data/rdoc/RubyXL/DataType.html +3 -34
  217. data/rdoc/RubyXL/DataValidation.html +5 -14
  218. data/rdoc/RubyXL/DataValidations.html +5 -14
  219. data/rdoc/RubyXL/DateGroupItem.html +5 -14
  220. data/rdoc/RubyXL/DefinedName.html +5 -14
  221. data/rdoc/RubyXL/DefinedNameExt.html +5 -14
  222. data/rdoc/RubyXL/DefinedNames.html +5 -14
  223. data/rdoc/RubyXL/DefinedNamesExt.html +5 -14
  224. data/rdoc/RubyXL/DocumentPropertiesFile.html +8 -57
  225. data/rdoc/RubyXL/DrawingFile.html +10 -44
  226. data/rdoc/RubyXL/DynamicFilter.html +5 -14
  227. data/rdoc/RubyXL/EmbeddedControl.html +5 -14
  228. data/rdoc/RubyXL/EmbeddedControls.html +5 -14
  229. data/rdoc/RubyXL/Extension.html +5 -14
  230. data/rdoc/RubyXL/ExtensionStorageArea.html +5 -14
  231. data/rdoc/RubyXL/Extents.html +5 -14
  232. data/rdoc/RubyXL/ExternalBook.html +5 -14
  233. data/rdoc/RubyXL/ExternalLinksFile.html +11 -45
  234. data/rdoc/RubyXL/ExternalReference.html +5 -14
  235. data/rdoc/RubyXL/ExternalReferences.html +5 -14
  236. data/rdoc/RubyXL/ExtraColorSchemeList.html +5 -14
  237. data/rdoc/RubyXL/FieldItem.html +5 -14
  238. data/rdoc/RubyXL/FileRecoveryProperties.html +5 -14
  239. data/rdoc/RubyXL/FileSharing.html +5 -14
  240. data/rdoc/RubyXL/FileVersion.html +5 -14
  241. data/rdoc/RubyXL/Fill.html +8 -31
  242. data/rdoc/RubyXL/Fills.html +8 -31
  243. data/rdoc/RubyXL/FilterContainer.html +5 -14
  244. data/rdoc/RubyXL/FloatNode.html +5 -14
  245. data/rdoc/RubyXL/FloatValue.html +5 -14
  246. data/rdoc/RubyXL/Font.html +9 -37
  247. data/rdoc/RubyXL/FontConvenienceMethods.html +7 -198
  248. data/rdoc/RubyXL/FontScheme.html +5 -14
  249. data/rdoc/RubyXL/Fonts.html +8 -31
  250. data/rdoc/RubyXL/Formula.html +5 -14
  251. data/rdoc/RubyXL/FunctionGroup.html +5 -14
  252. data/rdoc/RubyXL/FunctionGroups.html +5 -14
  253. data/rdoc/RubyXL/GenericStorageObject.html +9 -75
  254. data/rdoc/RubyXL/GradientFill.html +5 -14
  255. data/rdoc/RubyXL/HeaderFooterSettings.html +5 -14
  256. data/rdoc/RubyXL/Hyperlink.html +5 -14
  257. data/rdoc/RubyXL/HyperlinkRelFile.html +5 -19
  258. data/rdoc/RubyXL/Hyperlinks.html +5 -14
  259. data/rdoc/RubyXL/IconFilter.html +5 -14
  260. data/rdoc/RubyXL/IconSet.html +5 -14
  261. data/rdoc/RubyXL/IgnoredError.html +5 -14
  262. data/rdoc/RubyXL/IgnoredErrors.html +5 -14
  263. data/rdoc/RubyXL/IndexedColors.html +5 -14
  264. data/rdoc/RubyXL/InputCells.html +5 -14
  265. data/rdoc/RubyXL/IntegerNode.html +5 -14
  266. data/rdoc/RubyXL/IntegerValue.html +5 -14
  267. data/rdoc/RubyXL/LegacyCell.html +6 -28
  268. data/rdoc/RubyXL/LegacyWorksheet.html +9 -88
  269. data/rdoc/RubyXL/MRUColors.html +5 -14
  270. data/rdoc/RubyXL/MacrosFile.html +5 -22
  271. data/rdoc/RubyXL/MergedCell.html +5 -14
  272. data/rdoc/RubyXL/MergedCells.html +5 -14
  273. data/rdoc/RubyXL/NumFmt.html +5 -14
  274. data/rdoc/RubyXL/NumberFormat.html +8 -31
  275. data/rdoc/RubyXL/NumberFormats.html +8 -36
  276. data/rdoc/RubyXL/OLEObject.html +5 -14
  277. data/rdoc/RubyXL/OLEObjectFile.html +5 -22
  278. data/rdoc/RubyXL/OLEObjects.html +5 -14
  279. data/rdoc/RubyXL/OLESize.html +5 -14
  280. data/rdoc/RubyXL/OOXMLContainerObject.html +19 -116
  281. data/rdoc/RubyXL/OOXMLIgnored.html +9 -46
  282. data/rdoc/RubyXL/OOXMLObject.html +8 -20
  283. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +34 -86
  284. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +20 -143
  285. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +10 -169
  286. data/rdoc/RubyXL/OOXMLTopLevelObject.html +15 -104
  287. data/rdoc/RubyXL/OdbcOleDbProperties.html +5 -14
  288. data/rdoc/RubyXL/Offset.html +5 -14
  289. data/rdoc/RubyXL/OlapProperties.html +5 -14
  290. data/rdoc/RubyXL/OleItem.html +99 -0
  291. data/rdoc/RubyXL/OleItems.html +99 -0
  292. data/rdoc/RubyXL/OleLink.html +99 -0
  293. data/rdoc/RubyXL/OutlineProperties.html +5 -14
  294. data/rdoc/RubyXL/PageMargins.html +5 -14
  295. data/rdoc/RubyXL/PageSetup.html +5 -14
  296. data/rdoc/RubyXL/PageSetupProperties.html +5 -14
  297. data/rdoc/RubyXL/Pane.html +5 -14
  298. data/rdoc/RubyXL/Parser.html +8 -44
  299. data/rdoc/RubyXL/PatternFill.html +5 -14
  300. data/rdoc/RubyXL/PhoneticProperties.html +5 -14
  301. data/rdoc/RubyXL/PhoneticRun.html +5 -14
  302. data/rdoc/RubyXL/PivotArea.html +5 -14
  303. data/rdoc/RubyXL/PivotCache.html +5 -14
  304. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +7 -27
  305. data/rdoc/RubyXL/PivotCacheRecordsFile.html +5 -22
  306. data/rdoc/RubyXL/PivotCaches.html +5 -14
  307. data/rdoc/RubyXL/PivotReference.html +5 -14
  308. data/rdoc/RubyXL/PivotReferences.html +5 -14
  309. data/rdoc/RubyXL/PivotTableFile.html +7 -27
  310. data/rdoc/RubyXL/PivotTableSelection.html +5 -14
  311. data/rdoc/RubyXL/PresetGeometry.html +5 -14
  312. data/rdoc/RubyXL/PrintOptions.html +5 -14
  313. data/rdoc/RubyXL/PrinterSettingsFile.html +5 -22
  314. data/rdoc/RubyXL/ProtectedRange.html +5 -14
  315. data/rdoc/RubyXL/ProtectedRanges.html +5 -14
  316. data/rdoc/RubyXL/Protection.html +5 -14
  317. data/rdoc/RubyXL/QueryParameter.html +5 -14
  318. data/rdoc/RubyXL/QueryParameters.html +5 -14
  319. data/rdoc/RubyXL/QueryTable.html +10 -44
  320. data/rdoc/RubyXL/QueryTableDeletedField.html +5 -14
  321. data/rdoc/RubyXL/QueryTableDeletedFields.html +5 -14
  322. data/rdoc/RubyXL/QueryTableField.html +5 -14
  323. data/rdoc/RubyXL/QueryTableFields.html +5 -14
  324. data/rdoc/RubyXL/QueryTableRefresh.html +5 -14
  325. data/rdoc/RubyXL/RID.html +5 -14
  326. data/rdoc/RubyXL/RawOOXML.html +9 -51
  327. data/rdoc/RubyXL/Reference.html +11 -197
  328. data/rdoc/RubyXL/Relationship.html +5 -14
  329. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +6 -28
  330. data/rdoc/RubyXL/RelationshipSupport.html +9 -108
  331. data/rdoc/RubyXL/RevisionPointer.html +5 -14
  332. data/rdoc/RubyXL/RichText.html +10 -32
  333. data/rdoc/RubyXL/RichTextRun.html +8 -31
  334. data/rdoc/RubyXL/Row.html +17 -154
  335. data/rdoc/RubyXL/RowExt.html +5 -14
  336. data/rdoc/RubyXL/RunProperties.html +5 -14
  337. data/rdoc/RubyXL/Scenario.html +5 -14
  338. data/rdoc/RubyXL/Scenarios.html +5 -14
  339. data/rdoc/RubyXL/Selection.html +8 -31
  340. data/rdoc/RubyXL/ShapeGuide.html +5 -14
  341. data/rdoc/RubyXL/ShapeTextRectangle.html +5 -14
  342. data/rdoc/RubyXL/SharedStringsTable.html +9 -121
  343. data/rdoc/RubyXL/Sheet.html +5 -14
  344. data/rdoc/RubyXL/SheetCalculationProperties.html +5 -14
  345. data/rdoc/RubyXL/SheetData.html +10 -46
  346. data/rdoc/RubyXL/SheetDataExt.html +5 -14
  347. data/rdoc/RubyXL/SheetDataSet.html +5 -14
  348. data/rdoc/RubyXL/SheetName.html +5 -14
  349. data/rdoc/RubyXL/SheetNames.html +5 -14
  350. data/rdoc/RubyXL/Sheets.html +5 -14
  351. data/rdoc/RubyXL/SlicerCacheFile.html +5 -22
  352. data/rdoc/RubyXL/SlicerFile.html +5 -22
  353. data/rdoc/RubyXL/SmartTagProperties.html +5 -14
  354. data/rdoc/RubyXL/SmartTagType.html +5 -14
  355. data/rdoc/RubyXL/SmartTagTypes.html +5 -14
  356. data/rdoc/RubyXL/SmartTags.html +5 -14
  357. data/rdoc/RubyXL/SortCondition.html +5 -14
  358. data/rdoc/RubyXL/SortState.html +5 -14
  359. data/rdoc/RubyXL/Sqref.html +11 -48
  360. data/rdoc/RubyXL/Stop.html +5 -14
  361. data/rdoc/RubyXL/StringNode.html +5 -14
  362. data/rdoc/RubyXL/StringNodeW3C.html +9 -46
  363. data/rdoc/RubyXL/StringValue.html +5 -14
  364. data/rdoc/RubyXL/Stylesheet.html +9 -94
  365. data/rdoc/RubyXL/TableFile.html +5 -22
  366. data/rdoc/RubyXL/TableParts.html +5 -14
  367. data/rdoc/RubyXL/TableStyle.html +5 -14
  368. data/rdoc/RubyXL/TableStyles.html +5 -14
  369. data/rdoc/RubyXL/Text.html +8 -52
  370. data/rdoc/RubyXL/TextImportSettings.html +5 -14
  371. data/rdoc/RubyXL/Theme.html +9 -67
  372. data/rdoc/RubyXL/ThemeElements.html +5 -14
  373. data/rdoc/RubyXL/ThumbnailFile.html +5 -22
  374. data/rdoc/RubyXL/Top10.html +5 -14
  375. data/rdoc/RubyXL/VMLDrawingFile.html +8 -28
  376. data/rdoc/RubyXL/Variant.html +5 -14
  377. data/rdoc/RubyXL/Vector.html +8 -31
  378. data/rdoc/RubyXL/VectorValue.html +5 -14
  379. data/rdoc/RubyXL/VisualProperties.html +5 -14
  380. data/rdoc/RubyXL/WebPublishObject.html +5 -14
  381. data/rdoc/RubyXL/WebPublishObjects.html +5 -14
  382. data/rdoc/RubyXL/WebPublishingItem.html +5 -14
  383. data/rdoc/RubyXL/WebPublishingItems.html +5 -14
  384. data/rdoc/RubyXL/WebPublishingProperties.html +5 -14
  385. data/rdoc/RubyXL/WebQueryProperties.html +5 -14
  386. data/rdoc/RubyXL/Workbook.html +35 -460
  387. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +7 -224
  388. data/rdoc/RubyXL/WorkbookProperties.html +5 -14
  389. data/rdoc/RubyXL/WorkbookProtection.html +5 -14
  390. data/rdoc/RubyXL/WorkbookRoot.html +11 -101
  391. data/rdoc/RubyXL/WorkbookView.html +5 -14
  392. data/rdoc/RubyXL/WorkbookViews.html +5 -14
  393. data/rdoc/RubyXL/Worksheet.html +11 -132
  394. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +138 -1002
  395. data/rdoc/RubyXL/WorksheetDimensions.html +5 -14
  396. data/rdoc/RubyXL/WorksheetFormatProperties.html +5 -14
  397. data/rdoc/RubyXL/WorksheetProperties.html +5 -14
  398. data/rdoc/RubyXL/WorksheetProtection.html +5 -14
  399. data/rdoc/RubyXL/WorksheetView.html +5 -14
  400. data/rdoc/RubyXL/WorksheetViews.html +5 -14
  401. data/rdoc/RubyXL/XF.html +5 -14
  402. data/rdoc/RubyXL.html +6 -321
  403. data/rdoc/created.rid +16 -16
  404. data/rdoc/css/rdoc.css +21 -1
  405. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  406. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  407. data/rdoc/index.html +8 -391
  408. data/rdoc/js/navigation.js.gz +0 -0
  409. data/rdoc/js/search_index.js +1 -1
  410. data/rdoc/js/search_index.js.gz +0 -0
  411. data/rdoc/js/searcher.js.gz +0 -0
  412. data/rdoc/table_of_contents.html +18 -813
  413. data/rubyXL.gemspec +11 -8
  414. data/spec/lib/cell_spec.rb +18 -0
  415. data/spec/lib/worksheet_spec.rb +301 -0
  416. metadata +7 -4
data/rubyXL.gemspec CHANGED
@@ -1,17 +1,17 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: rubyXL 3.4.15 ruby lib
5
+ # stub: rubyXL 3.4.20 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "rubyXL".freeze
9
- s.version = "3.4.15"
9
+ s.version = "3.4.20"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Vivek Bhagwat".freeze, "Wesha".freeze]
14
- s.date = "2020-08-04"
14
+ s.date = "2022-01-13"
15
15
  s.description = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
16
16
  s.email = "bhagwat.vivek@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -341,6 +341,9 @@ Gem::Specification.new do |s|
341
341
  "rdoc/RubyXL/OdbcOleDbProperties.html",
342
342
  "rdoc/RubyXL/Offset.html",
343
343
  "rdoc/RubyXL/OlapProperties.html",
344
+ "rdoc/RubyXL/OleItem.html",
345
+ "rdoc/RubyXL/OleItems.html",
346
+ "rdoc/RubyXL/OleLink.html",
344
347
  "rdoc/RubyXL/OutlineProperties.html",
345
348
  "rdoc/RubyXL/PageMargins.html",
346
349
  "rdoc/RubyXL/PageSetup.html",
@@ -512,7 +515,7 @@ Gem::Specification.new do |s|
512
515
  ]
513
516
  s.homepage = "http://github.com/gilt/rubyXL".freeze
514
517
  s.licenses = ["MIT".freeze]
515
- s.rubygems_version = "3.1.2".freeze
518
+ s.rubygems_version = "3.1.6".freeze
516
519
  s.summary = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
517
520
 
518
521
  if s.respond_to? :specification_version then
@@ -524,7 +527,7 @@ Gem::Specification.new do |s|
524
527
  s.add_runtime_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
525
528
  s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
526
529
  s.add_development_dependency(%q<rake>.freeze, [">= 0"])
527
- s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
530
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
528
531
  s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
529
532
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
530
533
  s.add_development_dependency(%q<ruby-prof>.freeze, [">= 0"])
@@ -534,7 +537,7 @@ Gem::Specification.new do |s|
534
537
  s.add_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
535
538
  s.add_dependency(%q<bundler>.freeze, [">= 0"])
536
539
  s.add_dependency(%q<rake>.freeze, [">= 0"])
537
- s.add_dependency(%q<jeweler>.freeze, [">= 0"])
540
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
538
541
  s.add_dependency(%q<rspec>.freeze, [">= 0"])
539
542
  s.add_dependency(%q<simplecov>.freeze, [">= 0"])
540
543
  s.add_dependency(%q<ruby-prof>.freeze, [">= 0"])
@@ -54,6 +54,18 @@ describe RubyXL::Cell do
54
54
 
55
55
  # Due to rounding errors, we allow microsecond precision on Time.
56
56
  expect(cell.value - tm.to_datetime).to be_within(1.0/86400e6).of(0)
57
+
58
+ expected_date = "2020-10-15T14:00:00Z"
59
+ expected_datetime = Time.parse(expected_date).utc
60
+ raw_value = "44119.583333333328" # Obtained from parsing a xlsx file with the expected date
61
+ cell = @worksheet.add_cell(r, c, Time.now) # Force a date cell type
62
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
63
+ cell.raw_value = raw_value
64
+ expect(cell.raw_value).to eq(raw_value), "Wrong raw value"
65
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
66
+
67
+ # We expect exactly the same date
68
+ expect(cell.value.to_time.utc.iso8601).to eq(expected_datetime.iso8601)
57
69
  end
58
70
  end
59
71
 
@@ -364,6 +376,12 @@ describe RubyXL::Cell do
364
376
  end
365
377
  end
366
378
 
379
+ context 'with RichText' do
380
+ it 'returns the value of the RichText' do
381
+ cell = RubyXL::Cell.new(is: RubyXL::RichText.new(t: RubyXL::Text.new(value: 'test')))
382
+ expect(cell.value).to eq('test')
383
+ end
384
+ end
367
385
  end
368
386
 
369
387
  describe '.change_contents' do
@@ -653,6 +653,107 @@ describe RubyXL::Worksheet do
653
653
  end
654
654
  }
655
655
  end
656
+
657
+ describe 'merged_cells updating' do
658
+ context 'merged cells in the row' do
659
+ # | A1 | B1 | C1 | D1 | E1 |
660
+ # | A2 | MERGED | E2 |
661
+ # | A3 | B3 | C3 | D3 | E3 |
662
+ before do
663
+ @worksheet.merge_cells(1, 1, 1, 3)
664
+ expect(@worksheet.merged_cells.size).to eq 1
665
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D2"
666
+ end
667
+ it 'should delete merged cell' do
668
+ @worksheet.delete_row(1)
669
+ expect(@worksheet.merged_cells.size).to eq 0
670
+ end
671
+ end
672
+ context 'merged vertical two cells' do
673
+ # | A1 | B1 | C1 |
674
+ # | A2 | MERGED | C2 |
675
+ # | A3 | | C3 |
676
+ # | A4 | B4 | C4 |
677
+ before do
678
+ @worksheet.merge_cells(1, 1, 2, 1)
679
+ expect(@worksheet.merged_cells.size).to eq 1
680
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:B3"
681
+ end
682
+ it 'should delete merged cell' do
683
+ @worksheet.delete_row(1)
684
+ expect(@worksheet.merged_cells.size).to eq 0
685
+ end
686
+ end
687
+
688
+ context 'merged three or more rows' do
689
+ # | A1 | B1 | C1 | D1 | E1 |
690
+ # | A2 | | E2 |
691
+ # | A3 | MERGED | E3 |
692
+ # | A4 | | E4 |
693
+ # | A5 | B5 | C5 | D5 | E5 |
694
+ before do
695
+ @worksheet.merge_cells(1, 1, 3, 3)
696
+ expect(@worksheet.merged_cells.size).to eq 1
697
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D4"
698
+ end
699
+
700
+ # | A2 | | E2 |
701
+ # | A3 | MERGED | E3 |
702
+ # | A4 | | E4 |
703
+ # | A5 | B5 | C5 | D5 | E5 |
704
+ it 'should updates merged cell when delete above the cell' do
705
+ @worksheet.delete_row(0)
706
+ expect(@worksheet.merged_cells.size).to eq 1
707
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B1:D3"
708
+ end
709
+
710
+ # | A1 | B1 | C1 | D1 | E1 |
711
+ # | A3 | MERGED | E3 |
712
+ # | A4 | | E4 |
713
+ # | A5 | B5 | C5 | D5 | E5 |
714
+ it 'should updates merged cell when delete top of the cell' do
715
+ @worksheet.delete_row(1)
716
+ expect(@worksheet.merged_cells.size).to eq 1
717
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D3"
718
+ end
719
+
720
+ # | A1 | B1 | C1 | D1 | E1 |
721
+ # | A2 | MERGED | E2 |
722
+ # | A4 | | E4 |
723
+ # | A5 | B5 | C5 | D5 | E5 |
724
+ it 'should updates merged cell when delete middle of the cell' do
725
+ @worksheet.delete_row(2)
726
+ expect(@worksheet.merged_cells.size).to eq 1
727
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D3"
728
+ end
729
+
730
+ # | A1 | B1 | C1 | D1 | E1 |
731
+ # | A2 | MERGED | E2 |
732
+ # | A3 | | E3 |
733
+ # | A5 | B5 | C5 | D5 | E5 |
734
+ it 'should updates merged cell when delete bottom of the cell' do
735
+ @worksheet.delete_row(3)
736
+ expect(@worksheet.merged_cells.size).to eq 1
737
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D3"
738
+ end
739
+
740
+ # | A1 | B1 | C1 | D1 | E1 |
741
+ # | A2 | | E2 |
742
+ # | A3 | MERGED | E3 |
743
+ # | A4 | | E4 |
744
+ it 'should not updates merged cell when ldelete below the cell' do
745
+ @worksheet.delete_row(4)
746
+ expect(@worksheet.merged_cells.size).to eq 1
747
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D4"
748
+ end
749
+ end
750
+ end
751
+
752
+ it 'should not make empty merged_cells when a worksheet does not have a merged cell' do
753
+ # If a worksheet has empty merged_cells, the xlsx file has an XML error and has to repair.
754
+ @worksheet.delete_row(0)
755
+ expect(@worksheet.merged_cells).to be_nil
756
+ end
656
757
  end
657
758
 
658
759
  describe '.insert_row' do
@@ -713,6 +814,57 @@ describe RubyXL::Worksheet do
713
814
  end
714
815
  }
715
816
  end
817
+
818
+ describe 'merged_cells updating' do
819
+ # | A1 | B1 | C1 | D1 |
820
+ # | A2 | MERGED | D2 |
821
+ # | A3 | | D3 |
822
+ # | A4 | B4 | C4 | D4 |
823
+ before do
824
+ @worksheet.merge_cells(1, 1, 2, 2)
825
+ expect(@worksheet.merged_cells.size).to eq 1
826
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C3"
827
+ end
828
+
829
+ # | A1 | B1 | C1 | D1 |
830
+ # | | | | |
831
+ # | A2 | MERGED | D2 |
832
+ # | A3 | | D3 |
833
+ # | A4 | B4 | C4 | D4 |
834
+ it 'should updates merged cell when insert above the cell' do
835
+ @worksheet.insert_row(1)
836
+ expect(@worksheet.merged_cells.size).to eq 1
837
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B3:C4"
838
+ end
839
+
840
+ # | A1 | B1 | C1 | D1 |
841
+ # | A2 | | D2 |
842
+ # | | MERGED | |
843
+ # | A3 | | D3 |
844
+ # | A4 | B4 | C4 | D4 |
845
+ it 'should updates merged cell when insert into the cell' do
846
+ @worksheet.insert_row(2)
847
+ expect(@worksheet.merged_cells.size).to eq 1
848
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C4"
849
+ end
850
+
851
+ # | A1 | B1 | C1 | D1 |
852
+ # | A2 | MERGED | D2 |
853
+ # | A3 | | D3 |
854
+ # | | | | |
855
+ # | A4 | B4 | C4 | D4 |
856
+ it 'should not updates merged cell when insert below the cell' do
857
+ @worksheet.insert_row(3)
858
+ expect(@worksheet.merged_cells.size).to eq 1
859
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C3"
860
+ end
861
+ end
862
+
863
+ it 'should not make empty merged_cells when a worksheet does not have a merged cell' do
864
+ # If a worksheet has empty merged_cells, the xlsx file has an XML error and has to repair.
865
+ @worksheet.insert_row(0)
866
+ expect(@worksheet.merged_cells).to be_nil
867
+ end
716
868
  end
717
869
 
718
870
  describe '.delete_column' do
@@ -776,6 +928,107 @@ describe RubyXL::Worksheet do
776
928
  end
777
929
  }
778
930
  end
931
+
932
+ describe 'merged_cells updating' do
933
+ context 'merged cells in the column' do
934
+ # | A1 | B1 | C1 |
935
+ # | A2 | | C2 |
936
+ # | A3 | MERGED | C3 |
937
+ # | A4 | | C4 |
938
+ # | A5 | B5 | C5 |
939
+ before do
940
+ @worksheet.merge_cells(1, 1, 3, 1)
941
+ expect(@worksheet.merged_cells.size).to eq 1
942
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:B4"
943
+ end
944
+ it 'should delete merged cell' do
945
+ @worksheet.delete_column(1)
946
+ expect(@worksheet.merged_cells.size).to eq 0
947
+ end
948
+ end
949
+ context 'merged horizontal two cells' do
950
+ # | A1 | B1 | C1 | D1 |
951
+ # | A2 | MERGED | D2 |
952
+ # | A3 | B3 | C3 | D3 |
953
+ before do
954
+ @worksheet.merge_cells(1, 1, 1, 2)
955
+ expect(@worksheet.merged_cells.size).to eq 1
956
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C2"
957
+ end
958
+ it 'should delete merged cell' do
959
+ @worksheet.delete_column(1)
960
+ expect(@worksheet.merged_cells.size).to eq 0
961
+ end
962
+ end
963
+ context 'merged three or more columns' do
964
+ # | A1 | B1 | C1 | D1 | E1 |
965
+ # | A2 | | E2 |
966
+ # | A3 | MERGED | E3 |
967
+ # | A4 | | E4 |
968
+ # | A5 | B5 | C5 | D5 | E5 |
969
+ before do
970
+ @worksheet.merge_cells(1, 1, 3, 3)
971
+ expect(@worksheet.merged_cells.size).to eq 1
972
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D4"
973
+ end
974
+ # | B1 | C1 | D1 | E1 |
975
+ # | | E2 |
976
+ # | MERGED | E3 |
977
+ # | | E4 |
978
+ # | B5 | C5 | D5 | E5 |
979
+ it 'should updates merged cell when delete before the cell' do
980
+ @worksheet.delete_column(0)
981
+ expect(@worksheet.merged_cells.size).to eq 1
982
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "A2:C4"
983
+ end
984
+ # | A1 | C1 | D1 | E1 |
985
+ # | A2 | | E2 |
986
+ # | A3 | MERGED | E3 |
987
+ # | A4 | | E4 |
988
+ # | A5 | C5 | D5 | E5 |
989
+ it 'should updates merged cell when delete left of the cell' do
990
+ @worksheet.delete_column(1)
991
+ expect(@worksheet.merged_cells.size).to eq 1
992
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C4"
993
+ end
994
+ # | A1 | B1 | D1 | E1 |
995
+ # | A2 | | E2 |
996
+ # | A3 | MERGED | E3 |
997
+ # | A4 | | E4 |
998
+ # | A5 | B5 | D5 | E5 |
999
+ it 'should updates merged cell when delete center of the cell' do
1000
+ @worksheet.delete_column(2)
1001
+ expect(@worksheet.merged_cells.size).to eq 1
1002
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C4"
1003
+ end
1004
+ # | A1 | B1 | C1 | E1 |
1005
+ # | A2 | | E2 |
1006
+ # | A3 | MERGED | E3 |
1007
+ # | A4 | | E4 |
1008
+ # | A5 | B5 | C5 | E5 |
1009
+ it 'should updates merged cell when delete right of the cell' do
1010
+ @worksheet.delete_column(3)
1011
+ expect(@worksheet.merged_cells.size).to eq 1
1012
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C4"
1013
+ end
1014
+ # | A1 | B1 | C1 | D1 |
1015
+ # | A2 | |
1016
+ # | A3 | MERGED |
1017
+ # | A4 | |
1018
+ # | A5 | B5 | C5 | D5 |
1019
+ it 'should not updates merged cell when delete after the cell' do
1020
+ @worksheet.delete_column(4)
1021
+ expect(@worksheet.merged_cells.size).to eq 1
1022
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D4"
1023
+ end
1024
+ end
1025
+ end
1026
+
1027
+ it 'should not make empty merged_cells when a worksheet does not have a merged cell' do
1028
+ # If a worksheet has empty merged_cells, the xlsx file has an XML error and has to repair.
1029
+ @worksheet.delete_column(0)
1030
+ expect(@worksheet.merged_cells).to be_nil
1031
+ end
779
1032
  end
780
1033
 
781
1034
  describe '.insert_column' do
@@ -834,6 +1087,54 @@ describe RubyXL::Worksheet do
834
1087
  end
835
1088
  }
836
1089
  end
1090
+
1091
+ describe 'merged_cells updating' do
1092
+ # | A1 | B1 | C1 | D1 |
1093
+ # | A2 | MERGED | D2 |
1094
+ # | A3 | | D3 |
1095
+ # | A4 | B4 | C4 | D4 |
1096
+ before do
1097
+ @worksheet.merge_cells(1, 1, 2, 2)
1098
+ expect(@worksheet.merged_cells.size).to eq 1
1099
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C3"
1100
+ end
1101
+
1102
+ # | A1 | | B1 | C1 | D1 |
1103
+ # | A2 | | MERGED | D2 |
1104
+ # | A3 | | | D3 |
1105
+ # | A4 | | B4 | C4 | D4 |
1106
+ it 'should updates merged cell when insert before the cell' do
1107
+ @worksheet.insert_column(1)
1108
+ expect(@worksheet.merged_cells.size).to eq 1
1109
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "C2:D3"
1110
+ end
1111
+
1112
+ # | A1 | B1 | | C1 | D1 |
1113
+ # | A2 | MERGED | D2 |
1114
+ # | A3 | | D3 |
1115
+ # | A4 | B4 | | C4 | D4 |
1116
+ it 'should updates merged cell when insert into the cell' do
1117
+ @worksheet.insert_column(2)
1118
+ expect(@worksheet.merged_cells.size).to eq 1
1119
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:D3"
1120
+ end
1121
+
1122
+ # | A1 | B1 | C1 | | D1 |
1123
+ # | A2 | MERGED | | D2 |
1124
+ # | A3 | | | D3 |
1125
+ # | A4 | B4 | C4 | | D4 |
1126
+ it 'should not updates merged cell when insert after the cell' do
1127
+ @worksheet.insert_column(3)
1128
+ expect(@worksheet.merged_cells.size).to eq 1
1129
+ expect(@worksheet.merged_cells.first.ref.to_s).to eq "B2:C3"
1130
+ end
1131
+ end
1132
+
1133
+ it 'should not make empty merged_cells when a worksheet does not have a merged cell' do
1134
+ # If a worksheet has empty merged_cells, the xlsx file has an XML error and has to repair.
1135
+ @worksheet.insert_column(0)
1136
+ expect(@worksheet.merged_cells).to be_nil
1137
+ end
837
1138
  end
838
1139
 
839
1140
  describe '.insert_cell' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyXL
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.15
4
+ version: 3.4.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vivek Bhagwat
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-08-04 00:00:00.000000000 Z
12
+ date: 2022-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -68,7 +68,7 @@ dependencies:
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
- name: jeweler
71
+ name: juwelier
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -468,6 +468,9 @@ files:
468
468
  - rdoc/RubyXL/OdbcOleDbProperties.html
469
469
  - rdoc/RubyXL/Offset.html
470
470
  - rdoc/RubyXL/OlapProperties.html
471
+ - rdoc/RubyXL/OleItem.html
472
+ - rdoc/RubyXL/OleItems.html
473
+ - rdoc/RubyXL/OleLink.html
471
474
  - rdoc/RubyXL/OutlineProperties.html
472
475
  - rdoc/RubyXL/PageMargins.html
473
476
  - rdoc/RubyXL/PageSetup.html
@@ -655,7 +658,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
655
658
  - !ruby/object:Gem::Version
656
659
  version: '0'
657
660
  requirements: []
658
- rubygems_version: 3.1.2
661
+ rubygems_version: 3.1.6
659
662
  signing_key:
660
663
  specification_version: 4
661
664
  summary: rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft