rubyXL 3.4.14 → 3.4.18

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 (415) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -1
  3. data/Gemfile +1 -1
  4. data/Gemfile.lock +69 -44
  5. data/README.rdoc +9 -1
  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 +77 -0
  10. data/lib/rubyXL/objects/chartsheet.rb +1 -1
  11. data/lib/rubyXL/objects/data_validation.rb +2 -0
  12. data/lib/rubyXL/objects/external_links.rb +25 -1
  13. data/lib/rubyXL/objects/ooxml_object.rb +5 -0
  14. data/lib/rubyXL/objects/relationships.rb +1 -1
  15. data/lib/rubyXL/objects/sheet_data.rb +2 -1
  16. data/lib/rubyXL/objects/storage.rb +1 -0
  17. data/lib/rubyXL/objects/theme.rb +1 -1
  18. data/lib/rubyXL/objects/workbook.rb +12 -6
  19. data/lib/rubyXL/objects/worksheet.rb +7 -7
  20. data/lib/rubyXL/worksheet.rb +1 -1
  21. data/rdoc/README_rdoc.html +16 -7
  22. data/rdoc/RubyXL.html +6 -319
  23. data/rdoc/RubyXL/AExtension.html +9 -49
  24. data/rdoc/RubyXL/AExtensionStorageArea.html +5 -12
  25. data/rdoc/RubyXL/ActiveX.html +11 -40
  26. data/rdoc/RubyXL/ActiveXBinary.html +5 -17
  27. data/rdoc/RubyXL/AdjustHandleList.html +5 -12
  28. data/rdoc/RubyXL/Alignment.html +5 -12
  29. data/rdoc/RubyXL/AlternateContent.html +5 -12
  30. data/rdoc/RubyXL/Authors.html +5 -12
  31. data/rdoc/RubyXL/AutoFilter.html +5 -12
  32. data/rdoc/RubyXL/AutoFilterColumn.html +5 -12
  33. data/rdoc/RubyXL/BinaryImageFile.html +5 -20
  34. data/rdoc/RubyXL/BodyProperties.html +5 -12
  35. data/rdoc/RubyXL/BooleanNode.html +5 -12
  36. data/rdoc/RubyXL/BooleanValue.html +5 -12
  37. data/rdoc/RubyXL/Border.html +8 -68
  38. data/rdoc/RubyXL/BorderEdge.html +8 -42
  39. data/rdoc/RubyXL/Borders.html +8 -29
  40. data/rdoc/RubyXL/Break.html +5 -12
  41. data/rdoc/RubyXL/BreakList.html +5 -12
  42. data/rdoc/RubyXL/CT_AdjPoint2D.html +5 -12
  43. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +5 -12
  44. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +5 -12
  45. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +5 -12
  46. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +5 -12
  47. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +5 -12
  48. data/rdoc/RubyXL/CT_Backdrop.html +5 -12
  49. data/rdoc/RubyXL/CT_Bevel.html +5 -12
  50. data/rdoc/RubyXL/CT_BiLevelEffect.html +5 -12
  51. data/rdoc/RubyXL/CT_BlendEffect.html +5 -12
  52. data/rdoc/RubyXL/CT_Blip.html +5 -12
  53. data/rdoc/RubyXL/CT_BlipFillProperties.html +5 -12
  54. data/rdoc/RubyXL/CT_BlurEffect.html +5 -12
  55. data/rdoc/RubyXL/CT_Camera.html +5 -12
  56. data/rdoc/RubyXL/CT_Color.html +5 -12
  57. data/rdoc/RubyXL/CT_ColorChangeEffect.html +5 -12
  58. data/rdoc/RubyXL/CT_ColorMapping.html +5 -12
  59. data/rdoc/RubyXL/CT_ColorScheme.html +5 -12
  60. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +5 -12
  61. data/rdoc/RubyXL/CT_ConnectionSite.html +5 -12
  62. data/rdoc/RubyXL/CT_ConnectionSiteList.html +5 -12
  63. data/rdoc/RubyXL/CT_DashStop.html +5 -12
  64. data/rdoc/RubyXL/CT_DashStopList.html +5 -12
  65. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +5 -12
  66. data/rdoc/RubyXL/CT_DuotoneEffect.html +5 -12
  67. data/rdoc/RubyXL/CT_EffectContainer.html +5 -12
  68. data/rdoc/RubyXL/CT_EffectList.html +5 -12
  69. data/rdoc/RubyXL/CT_EffectReference.html +5 -12
  70. data/rdoc/RubyXL/CT_EffectStyleItem.html +5 -12
  71. data/rdoc/RubyXL/CT_EffectStyleList.html +5 -12
  72. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +5 -12
  73. data/rdoc/RubyXL/CT_FillEffect.html +5 -12
  74. data/rdoc/RubyXL/CT_FillOverlayEffect.html +5 -12
  75. data/rdoc/RubyXL/CT_FillStyleList.html +5 -12
  76. data/rdoc/RubyXL/CT_FlatText.html +5 -12
  77. data/rdoc/RubyXL/CT_FontCollection.html +5 -12
  78. data/rdoc/RubyXL/CT_FontReference.html +5 -12
  79. data/rdoc/RubyXL/CT_GeomGuideList.html +5 -12
  80. data/rdoc/RubyXL/CT_GlowEffect.html +5 -12
  81. data/rdoc/RubyXL/CT_GradientFillProperties.html +5 -12
  82. data/rdoc/RubyXL/CT_GradientStop.html +5 -12
  83. data/rdoc/RubyXL/CT_GradientStopList.html +5 -12
  84. data/rdoc/RubyXL/CT_HSLEffect.html +5 -12
  85. data/rdoc/RubyXL/CT_HslColor.html +5 -12
  86. data/rdoc/RubyXL/CT_Hyperlink.html +5 -12
  87. data/rdoc/RubyXL/CT_InnerShadowEffect.html +5 -12
  88. data/rdoc/RubyXL/CT_LightRig.html +5 -12
  89. data/rdoc/RubyXL/CT_LineEndProperties.html +5 -12
  90. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +5 -12
  91. data/rdoc/RubyXL/CT_LineProperties.html +5 -12
  92. data/rdoc/RubyXL/CT_LineStyleList.html +5 -12
  93. data/rdoc/RubyXL/CT_LinearShadeProperties.html +5 -12
  94. data/rdoc/RubyXL/CT_LuminanceEffect.html +5 -12
  95. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +5 -12
  96. data/rdoc/RubyXL/CT_OuterShadowEffect.html +5 -12
  97. data/rdoc/RubyXL/CT_Path2D.html +5 -12
  98. data/rdoc/RubyXL/CT_Path2DArcTo.html +5 -12
  99. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +5 -12
  100. data/rdoc/RubyXL/CT_Path2DList.html +5 -12
  101. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +5 -12
  102. data/rdoc/RubyXL/CT_Path2DTo.html +5 -12
  103. data/rdoc/RubyXL/CT_PathShadeProperties.html +5 -12
  104. data/rdoc/RubyXL/CT_PatternFillProperties.html +5 -12
  105. data/rdoc/RubyXL/CT_Point3D.html +5 -12
  106. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +5 -12
  107. data/rdoc/RubyXL/CT_PresetColor.html +5 -12
  108. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +5 -12
  109. data/rdoc/RubyXL/CT_PresetShadowEffect.html +5 -12
  110. data/rdoc/RubyXL/CT_PresetTextShape.html +5 -12
  111. data/rdoc/RubyXL/CT_ReflectionEffect.html +5 -12
  112. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +5 -12
  113. data/rdoc/RubyXL/CT_RelativeRect.html +5 -12
  114. data/rdoc/RubyXL/CT_SRgbColor.html +5 -12
  115. data/rdoc/RubyXL/CT_ScRgbColor.html +5 -12
  116. data/rdoc/RubyXL/CT_Scene3D.html +5 -12
  117. data/rdoc/RubyXL/CT_SchemeColor.html +5 -12
  118. data/rdoc/RubyXL/CT_Shape3D.html +5 -12
  119. data/rdoc/RubyXL/CT_ShapeStyle.html +5 -12
  120. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +5 -12
  121. data/rdoc/RubyXL/CT_SphereCoords.html +5 -12
  122. data/rdoc/RubyXL/CT_StretchInfoProperties.html +5 -12
  123. data/rdoc/RubyXL/CT_StyleMatrix.html +5 -12
  124. data/rdoc/RubyXL/CT_StyleMatrixReference.html +5 -12
  125. data/rdoc/RubyXL/CT_SupplementalFont.html +5 -12
  126. data/rdoc/RubyXL/CT_SystemColor.html +5 -12
  127. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +5 -12
  128. data/rdoc/RubyXL/CT_TextBlipBullet.html +5 -12
  129. data/rdoc/RubyXL/CT_TextCharBullet.html +5 -12
  130. data/rdoc/RubyXL/CT_TextCharacterProperties.html +5 -12
  131. data/rdoc/RubyXL/CT_TextFont.html +5 -12
  132. data/rdoc/RubyXL/CT_TextListStyle.html +5 -12
  133. data/rdoc/RubyXL/CT_TextNormalAutofit.html +5 -12
  134. data/rdoc/RubyXL/CT_TextParagraphProperties.html +5 -12
  135. data/rdoc/RubyXL/CT_TextSpacing.html +5 -12
  136. data/rdoc/RubyXL/CT_TextTabStop.html +5 -12
  137. data/rdoc/RubyXL/CT_TextTabStopList.html +5 -12
  138. data/rdoc/RubyXL/CT_TileInfoProperties.html +5 -12
  139. data/rdoc/RubyXL/CT_TintEffect.html +5 -12
  140. data/rdoc/RubyXL/CT_Transform2D.html +5 -12
  141. data/rdoc/RubyXL/CT_TransformEffect.html +5 -12
  142. data/rdoc/RubyXL/CT_Vector3D.html +5 -12
  143. data/rdoc/RubyXL/CT_XYAdjustHandle.html +5 -12
  144. data/rdoc/RubyXL/CalculationChain.html +8 -37
  145. data/rdoc/RubyXL/CalculationChainCell.html +5 -12
  146. data/rdoc/RubyXL/CalculationProperties.html +5 -12
  147. data/rdoc/RubyXL/Cell.html +13 -215
  148. data/rdoc/RubyXL/CellConvenienceMethods.html +6 -455
  149. data/rdoc/RubyXL/CellExt.html +5 -12
  150. data/rdoc/RubyXL/CellSmartTag.html +5 -12
  151. data/rdoc/RubyXL/CellSmartTagProperty.html +5 -12
  152. data/rdoc/RubyXL/CellSmartTags.html +5 -12
  153. data/rdoc/RubyXL/CellStyle.html +5 -12
  154. data/rdoc/RubyXL/CellStyleXFs.html +8 -29
  155. data/rdoc/RubyXL/CellStyles.html +8 -29
  156. data/rdoc/RubyXL/CellValue.html +8 -29
  157. data/rdoc/RubyXL/CellWatch.html +5 -12
  158. data/rdoc/RubyXL/CellWatches.html +5 -12
  159. data/rdoc/RubyXL/CellXFs.html +8 -29
  160. data/rdoc/RubyXL/ChartColorsFile.html +5 -20
  161. data/rdoc/RubyXL/ChartFile.html +10 -42
  162. data/rdoc/RubyXL/ChartStyleFile.html +5 -20
  163. data/rdoc/RubyXL/ChartUserShapesFile.html +5 -20
  164. data/rdoc/RubyXL/Chartsheet.html +10 -59
  165. data/rdoc/RubyXL/ChartsheetPageSetup.html +5 -12
  166. data/rdoc/RubyXL/ChartsheetProperties.html +5 -12
  167. data/rdoc/RubyXL/ChartsheetProtection.html +5 -12
  168. data/rdoc/RubyXL/ChartsheetView.html +5 -12
  169. data/rdoc/RubyXL/ChartsheetViews.html +5 -12
  170. data/rdoc/RubyXL/Color.html +8 -34
  171. data/rdoc/RubyXL/ColorConvenienceClasses.html +3 -9
  172. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +8 -56
  173. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +9 -71
  174. data/rdoc/RubyXL/ColorConvenienceMethods.html +6 -26
  175. data/rdoc/RubyXL/ColorFilter.html +5 -12
  176. data/rdoc/RubyXL/ColorScale.html +5 -12
  177. data/rdoc/RubyXL/ColorSet.html +5 -12
  178. data/rdoc/RubyXL/Colors.html +5 -12
  179. data/rdoc/RubyXL/ColumnRange.html +8 -60
  180. data/rdoc/RubyXL/ColumnRanges.html +8 -68
  181. data/rdoc/RubyXL/Comment.html +5 -12
  182. data/rdoc/RubyXL/CommentList.html +5 -12
  183. data/rdoc/RubyXL/CommentsFile.html +8 -42
  184. data/rdoc/RubyXL/ConditionalFormatValue.html +5 -12
  185. data/rdoc/RubyXL/ConditionalFormatting.html +5 -12
  186. data/rdoc/RubyXL/ConditionalFormattingRule.html +5 -12
  187. data/rdoc/RubyXL/Connection.html +5 -12
  188. data/rdoc/RubyXL/ConnectionTable.html +5 -12
  189. data/rdoc/RubyXL/ConnectionTables.html +5 -12
  190. data/rdoc/RubyXL/ConnectionTextField.html +5 -12
  191. data/rdoc/RubyXL/ConnectionTextFields.html +5 -12
  192. data/rdoc/RubyXL/Connections.html +8 -37
  193. data/rdoc/RubyXL/ContentTypeDefault.html +5 -12
  194. data/rdoc/RubyXL/ContentTypeOverride.html +5 -12
  195. data/rdoc/RubyXL/ContentTypes.html +8 -50
  196. data/rdoc/RubyXL/ControlPropertiesFile.html +7 -17
  197. data/rdoc/RubyXL/CorePropertiesFile.html +8 -146
  198. data/rdoc/RubyXL/CustomColor.html +5 -12
  199. data/rdoc/RubyXL/CustomColorList.html +5 -12
  200. data/rdoc/RubyXL/CustomFilter.html +5 -12
  201. data/rdoc/RubyXL/CustomFilters.html +5 -12
  202. data/rdoc/RubyXL/CustomGeometry.html +5 -12
  203. data/rdoc/RubyXL/CustomProperties.html +5 -12
  204. data/rdoc/RubyXL/CustomPropertiesFile.html +5 -20
  205. data/rdoc/RubyXL/CustomProperty.html +5 -12
  206. data/rdoc/RubyXL/CustomPropertyFile.html +5 -20
  207. data/rdoc/RubyXL/CustomSheetView.html +5 -12
  208. data/rdoc/RubyXL/CustomSheetViews.html +5 -12
  209. data/rdoc/RubyXL/CustomWorkbookView.html +5 -12
  210. data/rdoc/RubyXL/CustomWorkbookViews.html +5 -12
  211. data/rdoc/RubyXL/CustomXMLFile.html +5 -17
  212. data/rdoc/RubyXL/DXF.html +5 -12
  213. data/rdoc/RubyXL/DXFs.html +5 -12
  214. data/rdoc/RubyXL/DataBar.html +5 -12
  215. data/rdoc/RubyXL/DataConsolidate.html +5 -12
  216. data/rdoc/RubyXL/DataConsolidationReference.html +5 -12
  217. data/rdoc/RubyXL/DataConsolidationReferences.html +5 -12
  218. data/rdoc/RubyXL/DataType.html +3 -32
  219. data/rdoc/RubyXL/DataValidation.html +5 -12
  220. data/rdoc/RubyXL/DataValidations.html +5 -12
  221. data/rdoc/RubyXL/DateGroupItem.html +5 -12
  222. data/rdoc/RubyXL/DefinedName.html +5 -12
  223. data/rdoc/RubyXL/DefinedNameExt.html +5 -12
  224. data/rdoc/RubyXL/DefinedNames.html +5 -12
  225. data/rdoc/RubyXL/DefinedNamesExt.html +5 -12
  226. data/rdoc/RubyXL/DocumentPropertiesFile.html +8 -55
  227. data/rdoc/RubyXL/DrawingFile.html +10 -42
  228. data/rdoc/RubyXL/DynamicFilter.html +5 -12
  229. data/rdoc/RubyXL/EmbeddedControl.html +5 -12
  230. data/rdoc/RubyXL/EmbeddedControls.html +5 -12
  231. data/rdoc/RubyXL/Extension.html +5 -12
  232. data/rdoc/RubyXL/ExtensionStorageArea.html +5 -12
  233. data/rdoc/RubyXL/Extents.html +5 -12
  234. data/rdoc/RubyXL/ExternalBook.html +5 -12
  235. data/rdoc/RubyXL/ExternalLinksFile.html +11 -43
  236. data/rdoc/RubyXL/ExternalReference.html +5 -12
  237. data/rdoc/RubyXL/ExternalReferences.html +5 -12
  238. data/rdoc/RubyXL/ExtraColorSchemeList.html +5 -12
  239. data/rdoc/RubyXL/FieldItem.html +5 -12
  240. data/rdoc/RubyXL/FileRecoveryProperties.html +5 -12
  241. data/rdoc/RubyXL/FileSharing.html +5 -12
  242. data/rdoc/RubyXL/FileVersion.html +5 -12
  243. data/rdoc/RubyXL/Fill.html +8 -29
  244. data/rdoc/RubyXL/Fills.html +8 -29
  245. data/rdoc/RubyXL/FilterContainer.html +5 -12
  246. data/rdoc/RubyXL/FloatNode.html +5 -12
  247. data/rdoc/RubyXL/FloatValue.html +5 -12
  248. data/rdoc/RubyXL/Font.html +8 -34
  249. data/rdoc/RubyXL/FontConvenienceMethods.html +6 -195
  250. data/rdoc/RubyXL/FontScheme.html +5 -12
  251. data/rdoc/RubyXL/Fonts.html +8 -29
  252. data/rdoc/RubyXL/Formula.html +5 -12
  253. data/rdoc/RubyXL/FunctionGroup.html +5 -12
  254. data/rdoc/RubyXL/FunctionGroups.html +5 -12
  255. data/rdoc/RubyXL/GenericStorageObject.html +9 -73
  256. data/rdoc/RubyXL/GradientFill.html +5 -12
  257. data/rdoc/RubyXL/HeaderFooterSettings.html +5 -12
  258. data/rdoc/RubyXL/Hyperlink.html +5 -12
  259. data/rdoc/RubyXL/HyperlinkRelFile.html +5 -17
  260. data/rdoc/RubyXL/Hyperlinks.html +5 -12
  261. data/rdoc/RubyXL/IconFilter.html +5 -12
  262. data/rdoc/RubyXL/IconSet.html +5 -12
  263. data/rdoc/RubyXL/IgnoredError.html +5 -12
  264. data/rdoc/RubyXL/IgnoredErrors.html +5 -12
  265. data/rdoc/RubyXL/IndexedColors.html +5 -12
  266. data/rdoc/RubyXL/InputCells.html +5 -12
  267. data/rdoc/RubyXL/IntegerNode.html +5 -12
  268. data/rdoc/RubyXL/IntegerValue.html +5 -12
  269. data/rdoc/RubyXL/LegacyCell.html +6 -26
  270. data/rdoc/RubyXL/LegacyWorksheet.html +10 -87
  271. data/rdoc/RubyXL/MRUColors.html +5 -12
  272. data/rdoc/RubyXL/MacrosFile.html +5 -20
  273. data/rdoc/RubyXL/MergedCell.html +5 -12
  274. data/rdoc/RubyXL/MergedCells.html +5 -12
  275. data/rdoc/RubyXL/NumFmt.html +5 -12
  276. data/rdoc/RubyXL/NumberFormat.html +8 -29
  277. data/rdoc/RubyXL/NumberFormats.html +8 -34
  278. data/rdoc/RubyXL/OLEObject.html +5 -12
  279. data/rdoc/RubyXL/OLEObjectFile.html +5 -20
  280. data/rdoc/RubyXL/OLEObjects.html +5 -12
  281. data/rdoc/RubyXL/OLESize.html +5 -12
  282. data/rdoc/RubyXL/OOXMLContainerObject.html +19 -114
  283. data/rdoc/RubyXL/OOXMLIgnored.html +9 -44
  284. data/rdoc/RubyXL/OOXMLObject.html +7 -17
  285. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +31 -81
  286. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +18 -139
  287. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +10 -167
  288. data/rdoc/RubyXL/OOXMLTopLevelObject.html +14 -101
  289. data/rdoc/RubyXL/OdbcOleDbProperties.html +5 -12
  290. data/rdoc/RubyXL/Offset.html +5 -12
  291. data/rdoc/RubyXL/OlapProperties.html +5 -12
  292. data/rdoc/RubyXL/OleItem.html +99 -0
  293. data/rdoc/RubyXL/OleItems.html +99 -0
  294. data/rdoc/RubyXL/OleLink.html +99 -0
  295. data/rdoc/RubyXL/OutlineProperties.html +5 -12
  296. data/rdoc/RubyXL/PageMargins.html +5 -12
  297. data/rdoc/RubyXL/PageSetup.html +5 -12
  298. data/rdoc/RubyXL/PageSetupProperties.html +5 -12
  299. data/rdoc/RubyXL/Pane.html +5 -12
  300. data/rdoc/RubyXL/Parser.html +8 -42
  301. data/rdoc/RubyXL/PatternFill.html +5 -12
  302. data/rdoc/RubyXL/PhoneticProperties.html +5 -12
  303. data/rdoc/RubyXL/PhoneticRun.html +5 -12
  304. data/rdoc/RubyXL/PivotArea.html +5 -12
  305. data/rdoc/RubyXL/PivotCache.html +5 -12
  306. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +7 -25
  307. data/rdoc/RubyXL/PivotCacheRecordsFile.html +5 -20
  308. data/rdoc/RubyXL/PivotCaches.html +5 -12
  309. data/rdoc/RubyXL/PivotReference.html +5 -12
  310. data/rdoc/RubyXL/PivotReferences.html +5 -12
  311. data/rdoc/RubyXL/PivotTableFile.html +7 -25
  312. data/rdoc/RubyXL/PivotTableSelection.html +5 -12
  313. data/rdoc/RubyXL/PresetGeometry.html +5 -12
  314. data/rdoc/RubyXL/PrintOptions.html +5 -12
  315. data/rdoc/RubyXL/PrinterSettingsFile.html +5 -20
  316. data/rdoc/RubyXL/ProtectedRange.html +5 -12
  317. data/rdoc/RubyXL/ProtectedRanges.html +5 -12
  318. data/rdoc/RubyXL/Protection.html +5 -12
  319. data/rdoc/RubyXL/QueryParameter.html +5 -12
  320. data/rdoc/RubyXL/QueryParameters.html +5 -12
  321. data/rdoc/RubyXL/QueryTable.html +10 -42
  322. data/rdoc/RubyXL/QueryTableDeletedField.html +5 -12
  323. data/rdoc/RubyXL/QueryTableDeletedFields.html +5 -12
  324. data/rdoc/RubyXL/QueryTableField.html +5 -12
  325. data/rdoc/RubyXL/QueryTableFields.html +5 -12
  326. data/rdoc/RubyXL/QueryTableRefresh.html +5 -12
  327. data/rdoc/RubyXL/RID.html +5 -12
  328. data/rdoc/RubyXL/RawOOXML.html +9 -49
  329. data/rdoc/RubyXL/Reference.html +9 -190
  330. data/rdoc/RubyXL/Relationship.html +5 -12
  331. data/rdoc/RubyXL/RelationshipSupport.html +9 -106
  332. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +6 -26
  333. data/rdoc/RubyXL/RevisionPointer.html +5 -12
  334. data/rdoc/RubyXL/RichText.html +8 -29
  335. data/rdoc/RubyXL/RichTextRun.html +8 -29
  336. data/rdoc/RubyXL/Row.html +17 -152
  337. data/rdoc/RubyXL/RowExt.html +5 -12
  338. data/rdoc/RubyXL/RunProperties.html +5 -12
  339. data/rdoc/RubyXL/Scenario.html +5 -12
  340. data/rdoc/RubyXL/Scenarios.html +5 -12
  341. data/rdoc/RubyXL/Selection.html +8 -29
  342. data/rdoc/RubyXL/ShapeGuide.html +5 -12
  343. data/rdoc/RubyXL/ShapeTextRectangle.html +5 -12
  344. data/rdoc/RubyXL/SharedStringsTable.html +9 -119
  345. data/rdoc/RubyXL/Sheet.html +5 -12
  346. data/rdoc/RubyXL/SheetCalculationProperties.html +5 -12
  347. data/rdoc/RubyXL/SheetData.html +10 -44
  348. data/rdoc/RubyXL/SheetDataExt.html +5 -12
  349. data/rdoc/RubyXL/SheetDataSet.html +5 -12
  350. data/rdoc/RubyXL/SheetName.html +5 -12
  351. data/rdoc/RubyXL/SheetNames.html +5 -12
  352. data/rdoc/RubyXL/Sheets.html +5 -12
  353. data/rdoc/RubyXL/SlicerCacheFile.html +5 -20
  354. data/rdoc/RubyXL/SlicerFile.html +5 -20
  355. data/rdoc/RubyXL/SmartTagProperties.html +5 -12
  356. data/rdoc/RubyXL/SmartTagType.html +5 -12
  357. data/rdoc/RubyXL/SmartTagTypes.html +5 -12
  358. data/rdoc/RubyXL/SmartTags.html +5 -12
  359. data/rdoc/RubyXL/SortCondition.html +5 -12
  360. data/rdoc/RubyXL/SortState.html +5 -12
  361. data/rdoc/RubyXL/Sqref.html +9 -44
  362. data/rdoc/RubyXL/Stop.html +5 -12
  363. data/rdoc/RubyXL/StringNode.html +5 -12
  364. data/rdoc/RubyXL/StringNodeW3C.html +9 -44
  365. data/rdoc/RubyXL/StringValue.html +5 -12
  366. data/rdoc/RubyXL/Stylesheet.html +9 -92
  367. data/rdoc/RubyXL/TableFile.html +5 -20
  368. data/rdoc/RubyXL/TableParts.html +5 -12
  369. data/rdoc/RubyXL/TableStyle.html +5 -12
  370. data/rdoc/RubyXL/TableStyles.html +5 -12
  371. data/rdoc/RubyXL/Text.html +8 -50
  372. data/rdoc/RubyXL/TextImportSettings.html +5 -12
  373. data/rdoc/RubyXL/Theme.html +9 -65
  374. data/rdoc/RubyXL/ThemeElements.html +5 -12
  375. data/rdoc/RubyXL/ThumbnailFile.html +5 -20
  376. data/rdoc/RubyXL/Top10.html +5 -12
  377. data/rdoc/RubyXL/VMLDrawingFile.html +7 -25
  378. data/rdoc/RubyXL/Variant.html +5 -12
  379. data/rdoc/RubyXL/Vector.html +8 -29
  380. data/rdoc/RubyXL/VectorValue.html +5 -12
  381. data/rdoc/RubyXL/VisualProperties.html +5 -12
  382. data/rdoc/RubyXL/WebPublishObject.html +5 -12
  383. data/rdoc/RubyXL/WebPublishObjects.html +5 -12
  384. data/rdoc/RubyXL/WebPublishingItem.html +5 -12
  385. data/rdoc/RubyXL/WebPublishingItems.html +5 -12
  386. data/rdoc/RubyXL/WebPublishingProperties.html +5 -12
  387. data/rdoc/RubyXL/WebQueryProperties.html +5 -12
  388. data/rdoc/RubyXL/Workbook.html +40 -460
  389. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +6 -221
  390. data/rdoc/RubyXL/WorkbookProperties.html +5 -12
  391. data/rdoc/RubyXL/WorkbookProtection.html +5 -12
  392. data/rdoc/RubyXL/WorkbookRoot.html +11 -99
  393. data/rdoc/RubyXL/WorkbookView.html +5 -12
  394. data/rdoc/RubyXL/WorkbookViews.html +5 -12
  395. data/rdoc/RubyXL/Worksheet.html +11 -130
  396. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +166 -985
  397. data/rdoc/RubyXL/WorksheetDimensions.html +5 -12
  398. data/rdoc/RubyXL/WorksheetFormatProperties.html +5 -12
  399. data/rdoc/RubyXL/WorksheetProperties.html +5 -12
  400. data/rdoc/RubyXL/WorksheetProtection.html +5 -12
  401. data/rdoc/RubyXL/WorksheetView.html +5 -12
  402. data/rdoc/RubyXL/WorksheetViews.html +5 -12
  403. data/rdoc/RubyXL/XF.html +5 -12
  404. data/rdoc/created.rid +19 -19
  405. data/rdoc/css/rdoc.css +21 -1
  406. data/rdoc/index.html +8 -388
  407. data/rdoc/js/navigation.js.gz +0 -0
  408. data/rdoc/js/search_index.js +1 -1
  409. data/rdoc/js/search_index.js.gz +0 -0
  410. data/rdoc/js/searcher.js.gz +0 -0
  411. data/rdoc/table_of_contents.html +23 -5
  412. data/rubyXL.gemspec +21 -28
  413. data/spec/lib/cell_spec.rb +27 -2
  414. data/spec/lib/worksheet_spec.rb +301 -0
  415. metadata +7 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6d7d1c02347b372b277757fa2fdc86362f4084c6d2aaaa5e34cb5f43d95f105
4
- data.tar.gz: cc4169e2863565f21aeb0a32e3b7f485bbc234a81c3376de91fb657fe52a1794
3
+ metadata.gz: 333f7f90125b86bfef6f8f87b70009a2e77cd44e70eb84fc22d9c3a820e69b5b
4
+ data.tar.gz: eead0bf9e502b9df52536d9f34582f2637071d8b4cb1d8902f57f79a95badbc1
5
5
  SHA512:
6
- metadata.gz: a782eb58f6a39b6a72de09a0cf14e65832efd968953083d051fd3b555a9f848b46af80806af586f28d4429825a12e53c9569a3ec3d0e55a48c8dbc031c21595a
7
- data.tar.gz: 8bf1ac6bcbe54d4f56c8378684cb4934beefe7c4ef2f703a84f22206d8b192629398b02ce996efe8c815c3fcc33e9cbe5b1aef56c749b2b151d25e20710c4bba
6
+ metadata.gz: 533d23c78736a6320243772d38b0a322bb071005f34448903a1f93da7ab5c4ee51f10dd47419a4bd18f192f44b1d90df0d38ce77bd16dbc7e362e02faab6c971
7
+ data.tar.gz: 10a36c58a4b4d74f3d6d63c58e24c4e90664487337d049bfabf36b7ddb40032538d78271faf614d246983e50de0f9502369ee434ed47e11160039e38658548f8
data/.circleci/config.yml CHANGED
@@ -7,7 +7,7 @@ jobs:
7
7
  build:
8
8
  docker:
9
9
  # specify the version you desire here
10
- - image: circleci/ruby:2.4.1-node-browsers
10
+ - image: circleci/ruby:2.6.6-buster
11
11
 
12
12
  # Specify service dependencies here if necessary
13
13
  # CircleCI maintains a library of pre-built images
@@ -29,6 +29,7 @@ jobs:
29
29
  - run:
30
30
  name: install dependencies
31
31
  command: |
32
+ gem install bundler
32
33
  bundle install --jobs=4 --retry=3 --path vendor/bundle
33
34
 
34
35
  - save_cache:
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ gem "rubyzip", ">= 1.3.0" , :require => 'zip'
8
8
  group :development, :test do
9
9
  gem "bundler"
10
10
  gem "rake"
11
- gem "jeweler"
11
+ gem "juwelier"
12
12
  gem "rspec"
13
13
  gem "simplecov"
14
14
 
data/Gemfile.lock CHANGED
@@ -1,77 +1,102 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- addressable (2.4.0)
4
+ addressable (2.8.0)
5
+ public_suffix (>= 2.0.2, < 5.0)
5
6
  builder (3.2.4)
6
7
  descendants_tracker (0.0.4)
7
8
  thread_safe (~> 0.3, >= 0.3.1)
8
- diff-lcs (1.3)
9
- docile (1.3.2)
10
- faraday (0.9.2)
9
+ diff-lcs (1.4.4)
10
+ docile (1.4.0)
11
+ faraday (1.6.0)
12
+ faraday-em_http (~> 1.0)
13
+ faraday-em_synchrony (~> 1.0)
14
+ faraday-excon (~> 1.1)
15
+ faraday-httpclient (~> 1.0.1)
16
+ faraday-net_http (~> 1.0)
17
+ faraday-net_http_persistent (~> 1.1)
18
+ faraday-patron (~> 1.0)
19
+ faraday-rack (~> 1.0)
11
20
  multipart-post (>= 1.2, < 3)
12
- git (1.6.0)
21
+ ruby2_keywords (>= 0.0.4)
22
+ faraday-em_http (1.0.0)
23
+ faraday-em_synchrony (1.0.0)
24
+ faraday-excon (1.1.0)
25
+ faraday-httpclient (1.0.1)
26
+ faraday-net_http (1.0.1)
27
+ faraday-net_http_persistent (1.2.0)
28
+ faraday-patron (1.0.0)
29
+ faraday-rack (1.0.0)
30
+ git (1.9.1)
13
31
  rchardet (~> 1.8)
14
- github_api (0.16.0)
15
- addressable (~> 2.4.0)
32
+ github_api (0.19.0)
33
+ addressable (~> 2.4)
16
34
  descendants_tracker (~> 0.0.4)
17
- faraday (~> 0.8, < 0.10)
18
- hashie (>= 3.4)
19
- mime-types (>= 1.16, < 3.0)
35
+ faraday (>= 0.8, < 2)
36
+ hashie (~> 3.5, >= 3.5.2)
20
37
  oauth2 (~> 1.0)
21
- hashie (4.1.0)
38
+ hashie (3.6.0)
22
39
  highline (2.0.3)
23
- jeweler (2.3.9)
40
+ juwelier (2.4.9)
24
41
  builder
25
42
  bundler
26
- git (>= 1.2.5)
27
- github_api (~> 0.16.0)
28
- highline (>= 1.6.15)
29
- nokogiri (>= 1.5.10)
43
+ git
44
+ github_api
45
+ highline
46
+ kamelcase (~> 0)
47
+ nokogiri
30
48
  psych
31
49
  rake
32
50
  rdoc
33
51
  semver2
34
- jwt (2.2.1)
35
- mime-types (2.99.3)
36
- mini_portile2 (2.4.0)
37
- multi_json (1.14.1)
52
+ jwt (2.2.3)
53
+ kamelcase (0.0.2)
54
+ semver2 (~> 3)
55
+ mini_portile2 (2.6.1)
56
+ multi_json (1.15.0)
38
57
  multi_xml (0.6.0)
39
58
  multipart-post (2.1.1)
40
- nokogiri (1.10.8)
41
- mini_portile2 (~> 2.4.0)
42
- oauth2 (1.4.4)
59
+ nokogiri (1.12.1)
60
+ mini_portile2 (~> 2.6.1)
61
+ racc (~> 1.4)
62
+ oauth2 (1.4.7)
43
63
  faraday (>= 0.8, < 2.0)
44
64
  jwt (>= 1.0, < 3.0)
45
65
  multi_json (~> 1.3)
46
66
  multi_xml (~> 0.5)
47
67
  rack (>= 1.2, < 3)
48
- psych (3.1.0)
49
- rack (2.2.2)
50
- rake (13.0.1)
68
+ psych (4.0.1)
69
+ public_suffix (4.0.6)
70
+ racc (1.5.2)
71
+ rack (2.2.3)
72
+ rake (13.0.6)
51
73
  rchardet (1.8.0)
52
- rdoc (6.2.1)
53
- rspec (3.9.0)
54
- rspec-core (~> 3.9.0)
55
- rspec-expectations (~> 3.9.0)
56
- rspec-mocks (~> 3.9.0)
57
- rspec-core (3.9.1)
58
- rspec-support (~> 3.9.1)
59
- rspec-expectations (3.9.0)
74
+ rdoc (6.3.2)
75
+ rspec (3.10.0)
76
+ rspec-core (~> 3.10.0)
77
+ rspec-expectations (~> 3.10.0)
78
+ rspec-mocks (~> 3.10.0)
79
+ rspec-core (3.10.1)
80
+ rspec-support (~> 3.10.0)
81
+ rspec-expectations (3.10.1)
60
82
  diff-lcs (>= 1.2.0, < 2.0)
61
- rspec-support (~> 3.9.0)
62
- rspec-mocks (3.9.1)
83
+ rspec-support (~> 3.10.0)
84
+ rspec-mocks (3.10.2)
63
85
  diff-lcs (>= 1.2.0, < 2.0)
64
- rspec-support (~> 3.9.0)
65
- rspec-support (3.9.2)
86
+ rspec-support (~> 3.10.0)
87
+ rspec-support (3.10.2)
66
88
  rspec_junit_formatter (0.4.1)
67
89
  rspec-core (>= 2, < 4, != 2.12.0)
68
- ruby-prof (1.3.0)
69
- rubyzip (2.2.0)
90
+ ruby-prof (1.4.3)
91
+ ruby2_keywords (0.0.5)
92
+ rubyzip (2.3.2)
70
93
  semver2 (3.4.2)
71
- simplecov (0.18.5)
94
+ simplecov (0.21.2)
72
95
  docile (~> 1.1)
73
96
  simplecov-html (~> 0.11)
74
- simplecov-html (0.12.1)
97
+ simplecov_json_formatter (~> 0.1)
98
+ simplecov-html (0.12.3)
99
+ simplecov_json_formatter (0.1.3)
75
100
  thread_safe (0.3.6)
76
101
 
77
102
  PLATFORMS
@@ -79,7 +104,7 @@ PLATFORMS
79
104
 
80
105
  DEPENDENCIES
81
106
  bundler
82
- jeweler
107
+ juwelier
83
108
  nokogiri (>= 1.10.8)
84
109
  rake
85
110
  rspec
@@ -89,4 +114,4 @@ DEPENDENCIES
89
114
  simplecov
90
115
 
91
116
  BUNDLED WITH
92
- 1.17.3
117
+ 2.2.25
data/README.rdoc CHANGED
@@ -55,6 +55,10 @@ Please note that row is a _sparse_ array of cells. Your code *must* expect that
55
55
  worksheet.sheet_data[0][0] # Returns cell A1 in the worksheet
56
56
  worksheet[0][0] # Returns cell A1 in the worksheet
57
57
 
58
+ cell = worksheet[0][0]
59
+ cell.value # Returns a properly converted value in the cell (if the file claims that the cell
60
+ # is holding a number, returns a respective Integer or Float, and so on).
61
+
58
62
  ==== Wrappers for accessing Cell properties
59
63
  cell = workbook[0][0][0]
60
64
  cell.is_struckthrough # Returns +true+ if the cell is struckthrough, other boolean properties have same syntax
@@ -229,6 +233,10 @@ It can also operate on +StringIO+ objects, thus eliminating the need to save the
229
233
 
230
234
  RubyXL.class_variable_set(:@@suppress_warnings, true)
231
235
 
236
+ == Data validation (colloquially referred to as "dropdown list")
237
+
238
+ worksheet.add_validation_list("A1", [ "value1", "value2" ])
239
+
232
240
  == For more information
233
241
  Take a look at the files in spec/lib/ for rspecs on most methods
234
242
 
@@ -244,5 +252,5 @@ Take a look at the files in spec/lib/ for rspecs on most methods
244
252
 
245
253
  == Copyright
246
254
 
247
- Copyright (c) 2011 Vivek Bhagwat, 2013-2020 Wesha.
255
+ Copyright (c) 2011 Vivek Bhagwat, 2013-2021 Wesha.
248
256
  See LICENSE.txt for further details.
data/Rakefile CHANGED
@@ -10,8 +10,8 @@ rescue Bundler::BundlerError => e
10
10
  exit e.status_code
11
11
  end
12
12
 
13
- require 'jeweler'
14
- Jeweler::Tasks.new do |gem|
13
+ require 'juwelier'
14
+ Juwelier::Tasks.new do |gem|
15
15
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
16
16
  gem.name = "rubyXL"
17
17
  gem.homepage = "http://github.com/gilt/rubyXL"
@@ -23,7 +23,7 @@ Jeweler::Tasks.new do |gem|
23
23
  # gem.required_ruby_version = '>2.1'
24
24
  # dependencies defined in Gemfile
25
25
  end
26
- Jeweler::RubygemsDotOrgTasks.new
26
+ Juwelier::RubygemsDotOrgTasks.new
27
27
 
28
28
  require 'rake/testtask'
29
29
  Rake::TestTask.new(:test) do |test|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.4.14
1
+ 3.4.18
@@ -253,7 +253,7 @@ module RubyXL
253
253
  def add_hyperlink(l)
254
254
  worksheet.hyperlinks ||= RubyXL::Hyperlinks.new
255
255
  worksheet.hyperlinks << RubyXL::Hyperlink.new(:ref => self.r, :location => l)
256
- # define_attribute(:'r:id', :string)
256
+ # define_relationship
257
257
  # define_attribute(:location, :string)
258
258
  # define_attribute(:tooltip, :string)
259
259
  # define_attribute(:display, :string)
@@ -106,6 +106,21 @@ module RubyXL
106
106
  }
107
107
  }
108
108
 
109
+ # Update merged cells for all rows below
110
+ if self.merged_cells then
111
+ merged_cells.each { |mc|
112
+ next if mc.ref.row_range.last < row_index
113
+
114
+ in_merged_cell = mc.ref.row_range.first < row_index
115
+ mc.ref = RubyXL::Reference.new(
116
+ mc.ref.row_range.first + (in_merged_cell ? 0 : 1),
117
+ mc.ref.row_range.last + 1,
118
+ mc.ref.col_range.first,
119
+ mc.ref.col_range.last,
120
+ )
121
+ }
122
+ end
123
+
109
124
  return new_row
110
125
  end
111
126
 
@@ -121,6 +136,23 @@ module RubyXL
121
136
  row && row.cells.each{ |c| c.row -= 1 unless c.nil? }
122
137
  }
123
138
 
139
+ # Update row number of merged cells
140
+ if self.merged_cells then
141
+ merged_cells.delete_if { |mc| mc.ref.row_range == (row_index..row_index) }
142
+ merged_cells.each { |mc|
143
+ next if mc.ref.row_range.last < row_index
144
+
145
+ in_merged_cell = mc.ref.row_range.first <= row_index
146
+ mc.ref = RubyXL::Reference.new(
147
+ mc.ref.row_range.first - (in_merged_cell ? 0 : 1),
148
+ mc.ref.row_range.last - 1,
149
+ mc.ref.col_range.first,
150
+ mc.ref.col_range.last,
151
+ )
152
+ }
153
+ merged_cells.delete_if { |mc| mc.ref.single_cell? }
154
+ end
155
+
124
156
  return deleted
125
157
  end
126
158
 
@@ -152,6 +184,21 @@ module RubyXL
152
184
 
153
185
  cols.insert_column(column_index)
154
186
 
187
+ # Update merged cells for all rows below
188
+ if self.merged_cells then
189
+ merged_cells.each { |mc|
190
+ next if mc.ref.col_range.last < column_index
191
+
192
+ in_merged_cell = mc.ref.row_range.first < column_index
193
+ mc.ref = RubyXL::Reference.new(
194
+ mc.ref.row_range.first,
195
+ mc.ref.row_range.last,
196
+ mc.ref.col_range.first + (in_merged_cell ? 0 : 1),
197
+ mc.ref.col_range.last + 1,
198
+ )
199
+ }
200
+ end
201
+
155
202
  # TODO: update column numbers
156
203
  end
157
204
 
@@ -171,6 +218,24 @@ module RubyXL
171
218
  }
172
219
 
173
220
  cols.each { |range| range.delete_column(column_index) }
221
+
222
+ # Update row number of merged cells
223
+ return unless self.merged_cells
224
+
225
+ merged_cells.delete_if { |mc| mc.ref.col_range == (column_index..column_index) }
226
+ merged_cells.each { |mc|
227
+ next if mc.ref.col_range.last < column_index
228
+
229
+ in_merged_cell = mc.ref.col_range.first <= column_index
230
+ mc.ref = RubyXL::Reference.new(
231
+ mc.ref.row_range.first,
232
+ mc.ref.row_range.last,
233
+ mc.ref.col_range.first - (in_merged_cell ? 0 : 1),
234
+ mc.ref.col_range.last - 1,
235
+ )
236
+ }
237
+
238
+ merged_cells.delete_if { |mc| mc.ref.single_cell? }
174
239
  end
175
240
 
176
241
  def get_row_style(row_index)
@@ -632,6 +697,18 @@ module RubyXL
632
697
  # TODO: add validation to make sure ranges are not intersecting with existing ones
633
698
  merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(start_row, end_row, start_col, end_col))
634
699
  end
700
+
701
+ def add_validation_list(ref, list_arr)
702
+ # "Any double quote characters in the value should be escaped with another double quote.
703
+ # If the value does not contain a comma, newline or double quote, then the String value should be returned unchanged.
704
+ # If the value contains a comma, newline or double quote, then the String value should be returned enclosed in double quotes."
705
+ expr = '"' + list_arr.collect{|str| str.gsub('"', '""')}.join(',') + '"'
706
+ self.data_validations ||= RubyXL::DataValidations.new
707
+ self.data_validations <<
708
+ RubyXL::DataValidation.new({:sqref => RubyXL::Reference.new(ref),
709
+ :formula1 => RubyXL::Formula.new(:expression => expr),
710
+ :type => 'list'})
711
+ end
635
712
  end
636
713
 
637
714
  RubyXL::Worksheet.send(:include, RubyXL::WorksheetConvenienceMethods) # ruby 2.1 compat
@@ -34,7 +34,7 @@ module RubyXL
34
34
  define_attribute(:horizontalDpi, :int, :default => 600)
35
35
  define_attribute(:verticalDpi, :int, :default => 600)
36
36
  define_attribute(:copies, :int, :default => 1)
37
- define_attribute(:'r:id', :string)
37
+ define_relationship
38
38
  define_element_name 'pageSetup'
39
39
  end
40
40
 
@@ -11,6 +11,8 @@ module RubyXL
11
11
  define_attribute(:imeMode, RubyXL::ST_DataValidationImeMode, :default => 'noControl')
12
12
  define_attribute(:operator, RubyXL::ST_DataValidationOperator, :default => 'between')
13
13
  define_attribute(:allowBlank, :bool, :default => false)
14
+ # Documentation lies. This property should have been called "HIDE dropdown",
15
+ # since that's what happens when it is set to true.
14
16
  define_attribute(:showDropDown, :bool, :default => false)
15
17
  define_attribute(:showInputMessage, :bool, :default => false)
16
18
  define_attribute(:showErrorMessage, :bool, :default => false)
@@ -61,16 +61,40 @@ module RubyXL
61
61
  define_child_node(RubyXL::SheetNames)
62
62
  define_child_node(RubyXL::DefinedNamesExt)
63
63
  define_child_node(RubyXL::SheetDataSet)
64
- define_attribute(:'r:id', :string, :required => true)
64
+ define_relationship(:required => true)
65
65
  define_element_name 'externalBook'
66
66
  end
67
67
 
68
+ # http://www.datypic.com/sc/ooxml/e-ssml_oleItem-1.html
69
+ class OleItem < OOXMLObject
70
+ define_attribute(:name, :string, :required => true)
71
+ define_attribute(:icon, :bool)
72
+ define_attribute(:advise, :bool)
73
+ define_attribute(:preferPic, :bool)
74
+ define_element_name 'oleItem'
75
+ end
76
+
77
+ # http://www.datypic.com/sc/ooxml/e-ssml_oleItems-1.html
78
+ class OleItems < OOXMLContainerObject
79
+ define_child_node(RubyXL::OleItem)
80
+ define_element_name 'oleItems'
81
+ end
82
+
83
+ # http://www.datypic.com/sc/ooxml/t-ssml_CT_OleLink.html
84
+ class OleLink < OOXMLObject
85
+ define_child_node(RubyXL::OleItems, :collection => true)
86
+ define_relationship(:required => true)
87
+ define_attribute(:progId, :string, :required => true)
88
+ define_element_name 'oleLink'
89
+ end
90
+
68
91
  class ExternalLinksFile < OOXMLTopLevelObject
69
92
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml'
70
93
  REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink'
71
94
 
72
95
  include RubyXL::RelationshipSupport
73
96
  define_child_node(RubyXL::ExternalBook)
97
+ define_child_node(RubyXL::OleLink)
74
98
 
75
99
  define_element_name 'externalLink'
76
100
  set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
@@ -53,6 +53,11 @@ module RubyXL
53
53
  self.send(:attr_accessor, attr_hash[:accessor]) unless attr_hash[:computed]
54
54
  end
55
55
 
56
+ # Defines a `r:id` attribute
57
+ def define_relationship(extra_params = {})
58
+ define_attribute(:'r:id', :string, extra_params)
59
+ end
60
+
56
61
  # Defines a child node of OOXML object.
57
62
  # === Parameters
58
63
  # * +klass+ - Class (descendant of RubyXL::OOXMLObject) of the child nodes. Child node objects will be produced by calling +parse+ method of that class.