rubyXL 3.4.21 → 3.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -8
  3. data/Gemfile.lock +21 -21
  4. data/README.rdoc +14 -9
  5. data/Rakefile +20 -19
  6. data/VERSION +1 -1
  7. data/lib/rubyXL/cell.rb +0 -2
  8. data/lib/rubyXL/convenience_methods/cell.rb +20 -14
  9. data/lib/rubyXL/convenience_methods/color.rb +3 -7
  10. data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
  11. data/lib/rubyXL/convenience_methods/worksheet.rb +2 -3
  12. data/lib/rubyXL/objects/border.rb +0 -3
  13. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  14. data/lib/rubyXL/objects/cell_style.rb +1 -3
  15. data/lib/rubyXL/objects/chartsheet.rb +4 -7
  16. data/lib/rubyXL/objects/color.rb +1 -3
  17. data/lib/rubyXL/objects/column_range.rb +0 -3
  18. data/lib/rubyXL/objects/comments.rb +1 -4
  19. data/lib/rubyXL/objects/connection.rb +11 -11
  20. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  21. data/lib/rubyXL/objects/content_types.rb +3 -6
  22. data/lib/rubyXL/objects/data_validation.rb +0 -2
  23. data/lib/rubyXL/objects/document_properties.rb +9 -13
  24. data/lib/rubyXL/objects/extensions.rb +0 -2
  25. data/lib/rubyXL/objects/external_links.rb +4 -6
  26. data/lib/rubyXL/objects/fill.rb +2 -5
  27. data/lib/rubyXL/objects/filters.rb +5 -7
  28. data/lib/rubyXL/objects/font.rb +1 -3
  29. data/lib/rubyXL/objects/formula.rb +3 -5
  30. data/lib/rubyXL/objects/ooxml_object.rb +6 -13
  31. data/lib/rubyXL/objects/query_table.rb +3 -3
  32. data/lib/rubyXL/objects/reference.rb +5 -4
  33. data/lib/rubyXL/objects/relationships.rb +5 -10
  34. data/lib/rubyXL/objects/root.rb +0 -2
  35. data/lib/rubyXL/objects/shared_strings.rb +3 -6
  36. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  37. data/lib/rubyXL/objects/sheet_data.rb +4 -7
  38. data/lib/rubyXL/objects/simple_types.rb +1 -1
  39. data/lib/rubyXL/objects/storage.rb +51 -51
  40. data/lib/rubyXL/objects/stylesheet.rb +8 -15
  41. data/lib/rubyXL/objects/text.rb +3 -6
  42. data/lib/rubyXL/objects/theme.rb +4 -7
  43. data/lib/rubyXL/objects/workbook.rb +22 -23
  44. data/lib/rubyXL/objects/worksheet.rb +26 -22
  45. data/lib/rubyXL/parser.rb +1 -3
  46. data/lib/rubyXL/worksheet.rb +83 -84
  47. data/lib/rubyXL.rb +0 -1
  48. data/rdoc/README_rdoc.html +20 -20
  49. data/rdoc/RubyXL/AExtension.html +1 -1
  50. data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
  51. data/rdoc/RubyXL/ActiveX.html +3 -3
  52. data/rdoc/RubyXL/ActiveXBinary.html +1 -1
  53. data/rdoc/RubyXL/AdjustHandleList.html +1 -1
  54. data/rdoc/RubyXL/Alignment.html +1 -1
  55. data/rdoc/RubyXL/AlternateContent.html +1 -1
  56. data/rdoc/RubyXL/Authors.html +1 -1
  57. data/rdoc/RubyXL/AutoFilter.html +1 -1
  58. data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
  59. data/rdoc/RubyXL/BinaryImageFile.html +1 -1
  60. data/rdoc/RubyXL/BodyProperties.html +1 -1
  61. data/rdoc/RubyXL/BooleanNode.html +1 -1
  62. data/rdoc/RubyXL/BooleanValue.html +1 -1
  63. data/rdoc/RubyXL/Border.html +5 -5
  64. data/rdoc/RubyXL/BorderEdge.html +3 -3
  65. data/rdoc/RubyXL/Borders.html +2 -2
  66. data/rdoc/RubyXL/Break.html +1 -1
  67. data/rdoc/RubyXL/BreakList.html +1 -1
  68. data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
  69. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
  70. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
  71. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
  72. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
  73. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
  74. data/rdoc/RubyXL/CT_Backdrop.html +1 -1
  75. data/rdoc/RubyXL/CT_Bevel.html +1 -1
  76. data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
  77. data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
  78. data/rdoc/RubyXL/CT_Blip.html +1 -1
  79. data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
  80. data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
  81. data/rdoc/RubyXL/CT_Camera.html +1 -1
  82. data/rdoc/RubyXL/CT_Color.html +1 -1
  83. data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
  84. data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
  85. data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
  86. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
  87. data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
  88. data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
  89. data/rdoc/RubyXL/CT_DashStop.html +1 -1
  90. data/rdoc/RubyXL/CT_DashStopList.html +1 -1
  91. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
  92. data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
  93. data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
  94. data/rdoc/RubyXL/CT_EffectList.html +1 -1
  95. data/rdoc/RubyXL/CT_EffectReference.html +1 -1
  96. data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
  97. data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
  98. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
  99. data/rdoc/RubyXL/CT_FillEffect.html +1 -1
  100. data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
  101. data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
  102. data/rdoc/RubyXL/CT_FlatText.html +1 -1
  103. data/rdoc/RubyXL/CT_FontCollection.html +1 -1
  104. data/rdoc/RubyXL/CT_FontReference.html +1 -1
  105. data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
  106. data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
  107. data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
  108. data/rdoc/RubyXL/CT_GradientStop.html +1 -1
  109. data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
  110. data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
  111. data/rdoc/RubyXL/CT_HslColor.html +1 -1
  112. data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
  113. data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
  114. data/rdoc/RubyXL/CT_LightRig.html +1 -1
  115. data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
  116. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
  117. data/rdoc/RubyXL/CT_LineProperties.html +1 -1
  118. data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
  119. data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
  120. data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
  121. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
  122. data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
  123. data/rdoc/RubyXL/CT_Path2D.html +1 -1
  124. data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
  125. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
  126. data/rdoc/RubyXL/CT_Path2DList.html +1 -1
  127. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
  128. data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
  129. data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
  130. data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
  131. data/rdoc/RubyXL/CT_Point3D.html +1 -1
  132. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
  133. data/rdoc/RubyXL/CT_PresetColor.html +1 -1
  134. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
  135. data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
  136. data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
  137. data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
  138. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
  139. data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
  140. data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
  141. data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
  142. data/rdoc/RubyXL/CT_Scene3D.html +1 -1
  143. data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
  144. data/rdoc/RubyXL/CT_Shape3D.html +1 -1
  145. data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
  146. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
  147. data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
  148. data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
  149. data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
  150. data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
  151. data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
  152. data/rdoc/RubyXL/CT_SystemColor.html +1 -1
  153. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
  154. data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
  155. data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
  156. data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
  157. data/rdoc/RubyXL/CT_TextFont.html +1 -1
  158. data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
  159. data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
  160. data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
  161. data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
  162. data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
  163. data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
  164. data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
  165. data/rdoc/RubyXL/CT_TintEffect.html +1 -1
  166. data/rdoc/RubyXL/CT_Transform2D.html +1 -1
  167. data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
  168. data/rdoc/RubyXL/CT_Vector3D.html +1 -1
  169. data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
  170. data/rdoc/RubyXL/CalculationChain.html +1 -1
  171. data/rdoc/RubyXL/CalculationChainCell.html +1 -1
  172. data/rdoc/RubyXL/CalculationProperties.html +1 -1
  173. data/rdoc/RubyXL/Cell.html +16 -16
  174. data/rdoc/RubyXL/CellConvenienceMethods.html +92 -38
  175. data/rdoc/RubyXL/CellExt.html +1 -1
  176. data/rdoc/RubyXL/CellSmartTag.html +1 -1
  177. data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
  178. data/rdoc/RubyXL/CellSmartTags.html +1 -1
  179. data/rdoc/RubyXL/CellStyle.html +1 -1
  180. data/rdoc/RubyXL/CellStyleXFs.html +2 -2
  181. data/rdoc/RubyXL/CellStyles.html +2 -2
  182. data/rdoc/RubyXL/CellValue.html +2 -2
  183. data/rdoc/RubyXL/CellWatch.html +1 -1
  184. data/rdoc/RubyXL/CellWatches.html +1 -1
  185. data/rdoc/RubyXL/CellXFs.html +3 -5
  186. data/rdoc/RubyXL/ChartColorsFile.html +1 -1
  187. data/rdoc/RubyXL/ChartFile.html +2 -2
  188. data/rdoc/RubyXL/ChartStyleFile.html +1 -1
  189. data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
  190. data/rdoc/RubyXL/Chartsheet.html +2 -2
  191. data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
  192. data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
  193. data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
  194. data/rdoc/RubyXL/ChartsheetView.html +1 -1
  195. data/rdoc/RubyXL/ChartsheetViews.html +1 -1
  196. data/rdoc/RubyXL/Color.html +2 -2
  197. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +3 -3
  198. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +7 -7
  199. data/rdoc/RubyXL/ColorConvenienceClasses.html +1 -1
  200. data/rdoc/RubyXL/ColorConvenienceMethods.html +2 -2
  201. data/rdoc/RubyXL/ColorFilter.html +1 -1
  202. data/rdoc/RubyXL/ColorScale.html +1 -1
  203. data/rdoc/RubyXL/ColorSet.html +1 -1
  204. data/rdoc/RubyXL/Colors.html +1 -1
  205. data/rdoc/RubyXL/ColumnRange.html +4 -4
  206. data/rdoc/RubyXL/ColumnRanges.html +5 -5
  207. data/rdoc/RubyXL/Comment.html +1 -1
  208. data/rdoc/RubyXL/CommentList.html +1 -1
  209. data/rdoc/RubyXL/CommentsFile.html +2 -2
  210. data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
  211. data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
  212. data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
  213. data/rdoc/RubyXL/Connection.html +1 -1
  214. data/rdoc/RubyXL/ConnectionTable.html +1 -1
  215. data/rdoc/RubyXL/ConnectionTables.html +1 -1
  216. data/rdoc/RubyXL/ConnectionTextField.html +1 -1
  217. data/rdoc/RubyXL/ConnectionTextFields.html +1 -1
  218. data/rdoc/RubyXL/Connections.html +1 -1
  219. data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
  220. data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
  221. data/rdoc/RubyXL/ContentTypes.html +5 -5
  222. data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
  223. data/rdoc/RubyXL/CorePropertiesFile.html +10 -10
  224. data/rdoc/RubyXL/CustomColor.html +1 -1
  225. data/rdoc/RubyXL/CustomColorList.html +1 -1
  226. data/rdoc/RubyXL/CustomFilter.html +1 -1
  227. data/rdoc/RubyXL/CustomFilters.html +1 -1
  228. data/rdoc/RubyXL/CustomGeometry.html +1 -1
  229. data/rdoc/RubyXL/CustomProperties.html +1 -1
  230. data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
  231. data/rdoc/RubyXL/CustomProperty.html +1 -1
  232. data/rdoc/RubyXL/CustomPropertyFile.html +1 -1
  233. data/rdoc/RubyXL/CustomSheetView.html +1 -1
  234. data/rdoc/RubyXL/CustomSheetViews.html +1 -1
  235. data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
  236. data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
  237. data/rdoc/RubyXL/CustomXMLFile.html +1 -1
  238. data/rdoc/RubyXL/DXF.html +1 -1
  239. data/rdoc/RubyXL/DXFs.html +1 -1
  240. data/rdoc/RubyXL/DataBar.html +1 -1
  241. data/rdoc/RubyXL/DataConsolidate.html +1 -1
  242. data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
  243. data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
  244. data/rdoc/RubyXL/DataType.html +1 -1
  245. data/rdoc/RubyXL/DataValidation.html +1 -1
  246. data/rdoc/RubyXL/DataValidations.html +1 -1
  247. data/rdoc/RubyXL/DateGroupItem.html +1 -1
  248. data/rdoc/RubyXL/DefinedName.html +1 -1
  249. data/rdoc/RubyXL/DefinedNameExt.html +1 -1
  250. data/rdoc/RubyXL/DefinedNames.html +1 -1
  251. data/rdoc/RubyXL/DefinedNamesExt.html +1 -1
  252. data/rdoc/RubyXL/DocumentPropertiesFile.html +3 -3
  253. data/rdoc/RubyXL/DrawingFile.html +2 -2
  254. data/rdoc/RubyXL/DynamicFilter.html +1 -1
  255. data/rdoc/RubyXL/EmbeddedControl.html +1 -1
  256. data/rdoc/RubyXL/EmbeddedControls.html +1 -1
  257. data/rdoc/RubyXL/Extension.html +1 -1
  258. data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
  259. data/rdoc/RubyXL/Extents.html +1 -1
  260. data/rdoc/RubyXL/ExternalBook.html +1 -1
  261. data/rdoc/RubyXL/ExternalLinksFile.html +2 -2
  262. data/rdoc/RubyXL/ExternalReference.html +1 -1
  263. data/rdoc/RubyXL/ExternalReferences.html +1 -1
  264. data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
  265. data/rdoc/RubyXL/FieldItem.html +1 -1
  266. data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
  267. data/rdoc/RubyXL/FileSharing.html +1 -1
  268. data/rdoc/RubyXL/FileVersion.html +1 -1
  269. data/rdoc/RubyXL/Fill.html +2 -2
  270. data/rdoc/RubyXL/Fills.html +2 -2
  271. data/rdoc/RubyXL/FilterContainer.html +1 -1
  272. data/rdoc/RubyXL/FloatNode.html +1 -1
  273. data/rdoc/RubyXL/FloatValue.html +1 -1
  274. data/rdoc/RubyXL/Font.html +3 -3
  275. data/rdoc/RubyXL/FontConvenienceMethods.html +1 -1
  276. data/rdoc/RubyXL/FontScheme.html +1 -1
  277. data/rdoc/RubyXL/Fonts.html +2 -2
  278. data/rdoc/RubyXL/Formula.html +1 -1
  279. data/rdoc/RubyXL/FunctionGroup.html +1 -1
  280. data/rdoc/RubyXL/FunctionGroups.html +1 -1
  281. data/rdoc/RubyXL/GenericStorageObject.html +4 -4
  282. data/rdoc/RubyXL/GradientFill.html +1 -1
  283. data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
  284. data/rdoc/RubyXL/Hyperlink.html +1 -1
  285. data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
  286. data/rdoc/RubyXL/Hyperlinks.html +1 -1
  287. data/rdoc/RubyXL/IconFilter.html +1 -1
  288. data/rdoc/RubyXL/IconSet.html +1 -1
  289. data/rdoc/RubyXL/IgnoredError.html +1 -1
  290. data/rdoc/RubyXL/IgnoredErrors.html +1 -1
  291. data/rdoc/RubyXL/IndexedColors.html +1 -1
  292. data/rdoc/RubyXL/InputCells.html +1 -1
  293. data/rdoc/RubyXL/IntegerNode.html +1 -1
  294. data/rdoc/RubyXL/IntegerValue.html +1 -1
  295. data/rdoc/RubyXL/LegacyCell.html +2 -2
  296. data/rdoc/RubyXL/LegacyWorksheet.html +2 -2
  297. data/rdoc/RubyXL/MRUColors.html +1 -1
  298. data/rdoc/RubyXL/MacrosFile.html +1 -1
  299. data/rdoc/RubyXL/MergedCell.html +1 -1
  300. data/rdoc/RubyXL/MergedCells.html +1 -1
  301. data/rdoc/RubyXL/NumFmt.html +1 -1
  302. data/rdoc/RubyXL/NumberFormat.html +3 -3
  303. data/rdoc/RubyXL/NumberFormats.html +2 -2
  304. data/rdoc/RubyXL/OLEObject.html +1 -1
  305. data/rdoc/RubyXL/OLEObjectFile.html +1 -1
  306. data/rdoc/RubyXL/OLEObjects.html +1 -1
  307. data/rdoc/RubyXL/OLESize.html +1 -1
  308. data/rdoc/RubyXL/OOXMLContainerObject.html +7 -7
  309. data/rdoc/RubyXL/OOXMLIgnored.html +3 -3
  310. data/rdoc/RubyXL/OOXMLObject.html +1 -1
  311. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +2 -3
  312. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +9 -10
  313. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +15 -15
  314. data/rdoc/RubyXL/OOXMLTopLevelObject.html +6 -6
  315. data/rdoc/RubyXL/OdbcOleDbProperties.html +1 -1
  316. data/rdoc/RubyXL/Offset.html +1 -1
  317. data/rdoc/RubyXL/OlapProperties.html +1 -1
  318. data/rdoc/RubyXL/OleItem.html +1 -1
  319. data/rdoc/RubyXL/OleItems.html +1 -1
  320. data/rdoc/RubyXL/OleLink.html +1 -1
  321. data/rdoc/RubyXL/OutlineProperties.html +1 -1
  322. data/rdoc/RubyXL/PageMargins.html +1 -1
  323. data/rdoc/RubyXL/PageSetup.html +1 -1
  324. data/rdoc/RubyXL/PageSetupProperties.html +1 -1
  325. data/rdoc/RubyXL/Pane.html +1 -1
  326. data/rdoc/RubyXL/Parser.html +4 -4
  327. data/rdoc/RubyXL/PatternFill.html +1 -1
  328. data/rdoc/RubyXL/PhoneticProperties.html +1 -1
  329. data/rdoc/RubyXL/PhoneticRun.html +1 -1
  330. data/rdoc/RubyXL/PivotArea.html +1 -1
  331. data/rdoc/RubyXL/PivotCache.html +1 -1
  332. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
  333. data/rdoc/RubyXL/PivotCacheRecordsFile.html +1 -1
  334. data/rdoc/RubyXL/PivotCaches.html +1 -1
  335. data/rdoc/RubyXL/PivotReference.html +1 -1
  336. data/rdoc/RubyXL/PivotReferences.html +1 -1
  337. data/rdoc/RubyXL/PivotTableFile.html +1 -1
  338. data/rdoc/RubyXL/PivotTableSelection.html +1 -1
  339. data/rdoc/RubyXL/PresetGeometry.html +1 -1
  340. data/rdoc/RubyXL/PrintOptions.html +1 -1
  341. data/rdoc/RubyXL/PrinterSettingsFile.html +1 -1
  342. data/rdoc/RubyXL/ProtectedRange.html +1 -1
  343. data/rdoc/RubyXL/ProtectedRanges.html +1 -1
  344. data/rdoc/RubyXL/Protection.html +1 -1
  345. data/rdoc/RubyXL/QueryParameter.html +1 -1
  346. data/rdoc/RubyXL/QueryParameters.html +1 -1
  347. data/rdoc/RubyXL/QueryTable.html +1 -1
  348. data/rdoc/RubyXL/QueryTableDeletedField.html +1 -1
  349. data/rdoc/RubyXL/QueryTableDeletedFields.html +1 -1
  350. data/rdoc/RubyXL/QueryTableField.html +1 -1
  351. data/rdoc/RubyXL/QueryTableFields.html +1 -1
  352. data/rdoc/RubyXL/QueryTableRefresh.html +1 -1
  353. data/rdoc/RubyXL/RID.html +1 -1
  354. data/rdoc/RubyXL/RawOOXML.html +3 -3
  355. data/rdoc/RubyXL/Reference.html +34 -12
  356. data/rdoc/RubyXL/Relationship.html +1 -1
  357. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +2 -2
  358. data/rdoc/RubyXL/RelationshipSupport.html +7 -7
  359. data/rdoc/RubyXL/RevisionPointer.html +1 -1
  360. data/rdoc/RubyXL/RichText.html +2 -2
  361. data/rdoc/RubyXL/RichTextRun.html +2 -2
  362. data/rdoc/RubyXL/Row.html +10 -10
  363. data/rdoc/RubyXL/RowExt.html +1 -1
  364. data/rdoc/RubyXL/RunProperties.html +1 -1
  365. data/rdoc/RubyXL/Scenario.html +1 -1
  366. data/rdoc/RubyXL/Scenarios.html +1 -1
  367. data/rdoc/RubyXL/Selection.html +2 -2
  368. data/rdoc/RubyXL/ShapeGuide.html +1 -1
  369. data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
  370. data/rdoc/RubyXL/SharedStringsTable.html +8 -8
  371. data/rdoc/RubyXL/Sheet.html +1 -1
  372. data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
  373. data/rdoc/RubyXL/SheetData.html +3 -3
  374. data/rdoc/RubyXL/SheetDataExt.html +1 -1
  375. data/rdoc/RubyXL/SheetDataSet.html +1 -1
  376. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  377. data/rdoc/RubyXL/SheetName.html +1 -1
  378. data/rdoc/RubyXL/SheetNames.html +1 -1
  379. data/rdoc/RubyXL/Sheets.html +1 -1
  380. data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
  381. data/rdoc/RubyXL/SlicerFile.html +1 -1
  382. data/rdoc/RubyXL/SmartTagProperties.html +1 -1
  383. data/rdoc/RubyXL/SmartTagType.html +1 -1
  384. data/rdoc/RubyXL/SmartTagTypes.html +1 -1
  385. data/rdoc/RubyXL/SmartTags.html +1 -1
  386. data/rdoc/RubyXL/SortCondition.html +1 -1
  387. data/rdoc/RubyXL/SortState.html +1 -1
  388. data/rdoc/RubyXL/Sqref.html +3 -3
  389. data/rdoc/RubyXL/Stop.html +1 -1
  390. data/rdoc/RubyXL/StringNode.html +1 -1
  391. data/rdoc/RubyXL/StringNodeW3C.html +3 -3
  392. data/rdoc/RubyXL/StringValue.html +1 -1
  393. data/rdoc/RubyXL/Stylesheet.html +6 -6
  394. data/rdoc/RubyXL/TableFile.html +1 -1
  395. data/rdoc/RubyXL/TableParts.html +1 -1
  396. data/rdoc/RubyXL/TableStyle.html +1 -1
  397. data/rdoc/RubyXL/TableStyles.html +1 -1
  398. data/rdoc/RubyXL/Text.html +5 -5
  399. data/rdoc/RubyXL/TextImportSettings.html +1 -1
  400. data/rdoc/RubyXL/Theme.html +4 -4
  401. data/rdoc/RubyXL/ThemeElements.html +1 -1
  402. data/rdoc/RubyXL/ThumbnailFile.html +1 -1
  403. data/rdoc/RubyXL/Top10.html +1 -1
  404. data/rdoc/RubyXL/VMLDrawingFile.html +2 -2
  405. data/rdoc/RubyXL/Variant.html +1 -1
  406. data/rdoc/RubyXL/Vector.html +2 -2
  407. data/rdoc/RubyXL/VectorValue.html +1 -1
  408. data/rdoc/RubyXL/VisualProperties.html +1 -1
  409. data/rdoc/RubyXL/WebPublishObject.html +1 -1
  410. data/rdoc/RubyXL/WebPublishObjects.html +1 -1
  411. data/rdoc/RubyXL/WebPublishingItem.html +1 -1
  412. data/rdoc/RubyXL/WebPublishingItems.html +1 -1
  413. data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
  414. data/rdoc/RubyXL/WebQueryProperties.html +1 -1
  415. data/rdoc/RubyXL/Workbook.html +29 -26
  416. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +63 -19
  417. data/rdoc/RubyXL/WorkbookProperties.html +1 -1
  418. data/rdoc/RubyXL/WorkbookProtection.html +1 -1
  419. data/rdoc/RubyXL/WorkbookRoot.html +6 -6
  420. data/rdoc/RubyXL/WorkbookView.html +1 -1
  421. data/rdoc/RubyXL/WorkbookViews.html +1 -1
  422. data/rdoc/RubyXL/Worksheet.html +31 -7
  423. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +72 -72
  424. data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
  425. data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
  426. data/rdoc/RubyXL/WorksheetProperties.html +1 -1
  427. data/rdoc/RubyXL/WorksheetProtection.html +1 -1
  428. data/rdoc/RubyXL/WorksheetView.html +1 -1
  429. data/rdoc/RubyXL/WorksheetViews.html +1 -1
  430. data/rdoc/RubyXL/XF.html +1 -1
  431. data/rdoc/RubyXL.html +1 -1
  432. data/rdoc/created.rid +44 -44
  433. data/rdoc/index.html +3 -2
  434. data/rdoc/js/search_index.js +1 -1
  435. data/rdoc/js/search_index.js.gz +0 -0
  436. data/rdoc/table_of_contents.html +36 -2
  437. data/rubyXL.gemspec +5 -4
  438. data/spec/lib/cell_spec.rb +14 -7
  439. data/spec/lib/parser_spec.rb +22 -26
  440. data/spec/lib/reference_spec.rb +8 -2
  441. data/spec/lib/rgb_color_spec.rb +13 -2
  442. data/spec/lib/stylesheet_spec.rb +3 -6
  443. data/spec/lib/text_spec.rb +1 -5
  444. data/spec/lib/workbook_spec.rb +12 -2
  445. data/spec/lib/worksheet_spec.rb +577 -535
  446. data/spec/spec_helper.rb +2 -0
  447. data/test/test_parse_write.rb +3 -3
  448. metadata +4 -3
@@ -15,7 +15,6 @@ require 'rubyXL/objects/query_table'
15
15
  require 'rubyXL/worksheet'
16
16
 
17
17
  module RubyXL
18
-
19
18
  # Eventually, the entire code for Worksheet will be moved here. One small step at a time!
20
19
 
21
20
  # http://www.datypic.com/sc/ooxml/e-ssml_outlinePr-1.html
@@ -58,7 +57,7 @@ module RubyXL
58
57
  end
59
58
 
60
59
  class WorksheetFormatProperties < OOXMLObject
61
- define_attribute(:baseColWidth, :int, :default => 8)
60
+ define_attribute(:baseColWidth, :int, :default => 8)
62
61
  define_attribute(:defaultColWidth, :double)
63
62
  define_attribute(:defaultRowHeight, :double, :required => true)
64
63
  define_attribute(:customHeight, :bool, :default => false)
@@ -83,7 +82,7 @@ module RubyXL
83
82
  define_attribute(:blackAndWhite, :bool, :default => false)
84
83
  define_attribute(:draft, :bool, :default => false)
85
84
  define_attribute(:cellComments, RubyXL::ST_CellComments, :default => 'none')
86
- define_attribute(:useFirstPageNumber, :bool, :default => false)
85
+ define_attribute(:useFirstPageNumber, :bool, :default => false)
87
86
  define_attribute(:errors, RubyXL::ST_PrintError, :default => 'displayed')
88
87
  define_attribute(:horizontalDpi, :int, :default => 600)
89
88
  define_attribute(:verticalDpi, :int, :default => 600)
@@ -166,7 +165,7 @@ module RubyXL
166
165
  class ConditionalFormatValue < OOXMLObject
167
166
  define_attribute(:type, RubyXL::ST_CfvoType, :required => true)
168
167
  define_attribute(:val, :string)
169
- define_attribute(:gte, :bool, :default => true)
168
+ define_attribute(:gte, :bool, :default => true)
170
169
  define_child_node(RubyXL::ExtensionStorageArea)
171
170
  define_element_name 'cfvo'
172
171
  end
@@ -212,7 +211,7 @@ module RubyXL
212
211
  define_attribute(:timePeriod, RubyXL::ST_TimePeriod)
213
212
  define_attribute(:rank, :int)
214
213
  define_attribute(:stdDev, :int)
215
- define_attribute(:equalAverage, :bool, :default => false)
214
+ define_attribute(:equalAverage, :bool, :default => false)
216
215
  define_child_node(RubyXL::Formula, :collection => true, :node_name => :formula, :accessor => :formulas)
217
216
  define_child_node(RubyXL::ColorScale)
218
217
  define_child_node(RubyXL::DataBar)
@@ -301,7 +300,7 @@ module RubyXL
301
300
 
302
301
  # http://www.datypic.com/sc/ooxml/e-ssml_hyperlink-1.html
303
302
  class Hyperlink < OOXMLObject
304
- define_attribute(:ref, :ref, :required => true)
303
+ define_attribute(:ref, :ref, :required => true)
305
304
  define_relationship
306
305
  define_attribute(:location, :string)
307
306
  define_attribute(:tooltip, :string)
@@ -408,9 +407,9 @@ module RubyXL
408
407
  define_attribute(:hiddenRows, :bool, :default => false)
409
408
  define_attribute(:hiddenColumns, :bool, :default => false)
410
409
  define_attribute(:state, RubyXL::ST_Visibility, :default => 'visible')
411
- define_attribute(:filterUnique, :bool, :default => false)
410
+ define_attribute(:filterUnique, :bool, :default => false)
412
411
  define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
413
- define_attribute(:showRuler, :bool, :default => true)
412
+ define_attribute(:showRuler, :bool, :default => true)
414
413
  define_attribute(:topLeftCell, :ref)
415
414
  define_child_node(RubyXL::Pane)
416
415
  define_child_node(RubyXL::Selection)
@@ -433,9 +432,9 @@ module RubyXL
433
432
 
434
433
  # http://www.datypic.com/sc/ooxml/e-ssml_control-1.html
435
434
  class EmbeddedControl < OOXMLObject
436
- define_attribute(:shapeId, :int, :required => true)
435
+ define_attribute(:shapeId, :int, :required => true)
437
436
  define_relationship(:required => true)
438
- define_attribute(:name, :string)
437
+ define_attribute(:name, :string)
439
438
  define_element_name 'control'
440
439
  end
441
440
 
@@ -489,7 +488,7 @@ module RubyXL
489
488
 
490
489
  # http://www.datypic.com/sc/ooxml/e-ssml_customPr-1.html
491
490
  class CustomProperty < OOXMLObject
492
- define_attribute(:name, :string, :required => true)
491
+ define_attribute(:name, :string, :required => true)
493
492
  define_relationship(:required => true)
494
493
  define_element_name 'customPr'
495
494
  end
@@ -546,7 +545,7 @@ module RubyXL
546
545
  define_attribute(:cacheIndex, :bool, :default => false)
547
546
  define_attribute(:outline, :bool, :default => true)
548
547
  define_attribute(:offset, :ref)
549
- define_attribute(:collapsedLevelsAreSubtotals, :bool, :default => false)
548
+ define_attribute(:collapsedLevelsAreSubtotals, :bool, :default => false)
550
549
  define_attribute(:axis, RubyXL::ST_Axis)
551
550
  define_attribute(:fieldPosition, :int, :default => 0)
552
551
  define_child_node(RubyXL::PivotReferences)
@@ -597,10 +596,10 @@ module RubyXL
597
596
  define_attribute(:zoomScaleNormal, :uint, :default => 0)
598
597
  define_attribute(:zoomScaleSheetLayoutView, :uint, :default => 0)
599
598
  define_attribute(:zoomScalePageLayoutView, :uint, :default => 0)
600
- define_attribute(:workbookViewId, :uint, :required => true, :default => 0 )
599
+ define_attribute(:workbookViewId, :uint, :required => true, :default => 0)
601
600
  define_child_node(RubyXL::Pane)
602
601
  define_child_node(RubyXL::Selection, :collection => true, :accessor => :selections)
603
- define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections )
602
+ define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections)
604
603
  define_child_node(RubyXL::ExtensionStorageArea)
605
604
  define_element_name 'sheetView'
606
605
  end
@@ -614,8 +613,8 @@ module RubyXL
614
613
 
615
614
  # http://www.datypic.com/sc/ooxml/e-ssml_worksheet.html
616
615
  class Worksheet < OOXMLTopLevelObject
617
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
618
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
616
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'.freeze
617
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'.freeze
619
618
 
620
619
  include RubyXL::RelationshipSupport
621
620
 
@@ -651,7 +650,7 @@ module RubyXL
651
650
  define_child_node(RubyXL::SortState)
652
651
  define_child_node(RubyXL::DataConsolidate)
653
652
  define_child_node(RubyXL::CustomSheetViews)
654
- define_child_node(RubyXL::MergedCells, :accessor => :merged_cells)
653
+ define_child_node(RubyXL::MergedCells, :accessor => :merged_cells)
655
654
  define_child_node(RubyXL::PhoneticProperties)
656
655
  define_child_node(RubyXL::ConditionalFormatting, :collection => [0..-1])
657
656
  define_child_node(RubyXL::DataValidations)
@@ -677,11 +676,11 @@ module RubyXL
677
676
  define_child_node(RubyXL::ExtensionStorageArea)
678
677
  define_child_node(RubyXL::AlternateContent)
679
678
  define_element_name 'worksheet'
680
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
679
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
681
680
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
682
- 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
683
- 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
684
- 'urn:schemas-microsoft-com:mac:vml' => 'mv')
681
+ 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
682
+ 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
683
+ 'urn:schemas-microsoft-com:mac:vml' => 'mv')
685
684
 
686
685
  attr_accessor :workbook, :state, :sheet_name, :sheet_id, :rels
687
686
 
@@ -752,7 +751,12 @@ module RubyXL
752
751
  workbook.stylesheet.cell_xfs[get_row_style(row)]
753
752
  end
754
753
 
754
+ def cell_at(ref)
755
+ reference = RubyXL::Reference.new(ref)
756
+ raise "Invalid reference: #{ref}" unless reference.valid? && reference.single_cell?
757
+ sheet_data&.rows&.[](reference.first_row)&.cells&.[](reference.first_col)
758
+ end
759
+
755
760
  include LegacyWorksheet
756
761
  end
757
-
758
762
  end
data/lib/rubyXL/parser.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  module RubyXL
2
2
  class Parser
3
-
4
3
  # Parse <tt>.xslx</tt> file by reading it from local disk.
5
4
  def self.parse(src_file_path)
6
5
  begin
@@ -18,12 +17,11 @@ module RubyXL
18
17
  def self.parse_buffer(buffer)
19
18
  root = nil # Zip::File.open_buffer somehow fails to return the value from the block :(
20
19
  begin
21
- ::Zip::File.open_buffer(buffer) { |zip_file| root = RubyXL::WorkbookRoot.parse_zip_file(zip_file) }
20
+ ::Zip::File.open_buffer(buffer) { |zip_file| root = RubyXL::WorkbookRoot.parse_zip_file(zip_file) }
22
21
  root.workbook
23
22
  rescue ::Zip::Error => e
24
23
  raise e, "XLSX file format error: #{e}", e.backtrace
25
24
  end
26
25
  end
27
-
28
26
  end
29
27
  end
@@ -1,98 +1,97 @@
1
1
  module RubyXL
2
- module LegacyWorksheet
3
- include Enumerable
4
-
5
- def initialize(params = {})
6
- super
7
- self.workbook = params[:workbook]
8
- self.sheet_name = params[:sheet_name]
9
- self.sheet_id = params[:sheet_id]
10
- self.sheet_data = RubyXL::SheetData.new
11
- self.cols = RubyXL::ColumnRanges.new
12
- @comments = [] # Do not optimize! These are arrays, so they will share the pointer!
13
- @printer_settings = []
14
- @generic_storage = []
15
- end
16
-
17
- # allows for easier access to sheet_data
18
- def [](row = 0)
19
- sheet_data[row]
20
- end
21
-
22
- def each
23
- sheet_data.rows.each { |row| yield(row) }
24
- end
25
-
26
- def add_row(row_index = 0, params = {})
27
- new_row = RubyXL::Row.new(params)
28
- new_row.worksheet = self
29
- sheet_data.rows[row_index] = new_row
30
- end
31
-
32
- def add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true)
33
- validate_workbook
34
- validate_nonnegative(row_index)
35
- validate_nonnegative(column_index)
36
- row = sheet_data.rows[row_index] || add_row(row_index)
37
-
38
- c = row.cells[column_index]
39
-
40
- if overwrite || c.nil?
41
- c = RubyXL::Cell.new
42
- c.worksheet = self
43
- c.row = row_index
44
- c.column = column_index
45
-
46
- if formula then
47
- c.formula = RubyXL::Formula.new(:expression => formula)
48
- c.raw_value = data
49
- else
50
- case data
51
- when Numeric then c.raw_value = data
52
- when String then
2
+ module LegacyWorksheet
3
+ include Enumerable
4
+
5
+ def initialize(params = {})
6
+ super
7
+ self.workbook = params[:workbook]
8
+ self.sheet_name = params[:sheet_name]
9
+ self.sheet_id = params[:sheet_id]
10
+ self.sheet_data = RubyXL::SheetData.new
11
+ self.cols = RubyXL::ColumnRanges.new
12
+ @comments = [] # Do not optimize! These are arrays, so they will share the pointer!
13
+ @printer_settings = []
14
+ @generic_storage = []
15
+ end
16
+
17
+ # allows for easier access to sheet_data
18
+ def [](row = 0)
19
+ sheet_data[row]
20
+ end
21
+
22
+ def each
23
+ sheet_data.rows.each { |row| yield(row) }
24
+ end
25
+
26
+ def add_row(row_index = 0, params = {})
27
+ new_row = RubyXL::Row.new(params)
28
+ new_row.worksheet = self
29
+ sheet_data.rows[row_index] = new_row
30
+ end
31
+
32
+ def add_cell(row_index = 0, column_index = 0, data = '', formula = nil, overwrite = true)
33
+ validate_workbook
34
+ validate_nonnegative(row_index)
35
+ validate_nonnegative(column_index)
36
+ row = sheet_data.rows[row_index] || add_row(row_index)
37
+
38
+ c = row.cells[column_index]
39
+
40
+ if overwrite || c.nil?
41
+ c = RubyXL::Cell.new
42
+ c.worksheet = self
43
+ c.row = row_index
44
+ c.column = column_index
45
+
46
+ if formula then
47
+ c.formula = RubyXL::Formula.new(:expression => formula)
53
48
  c.raw_value = data
54
- c.datatype = RubyXL::DataType::RAW_STRING
55
- when RubyXL::RichText then
56
- c.is = data
57
- c.datatype = RubyXL::DataType::INLINE_STRING
58
- when Time, Date, DateTime then
59
- c.raw_value = workbook.date_to_num(data)
60
- when NilClass then nil
49
+ else
50
+ case data
51
+ when Numeric then c.raw_value = data
52
+ when String then
53
+ c.raw_value = data
54
+ c.datatype = RubyXL::DataType::RAW_STRING
55
+ when RubyXL::RichText then
56
+ c.is = data
57
+ c.datatype = RubyXL::DataType::INLINE_STRING
58
+ when Time, Date, DateTime then
59
+ c.raw_value = workbook.date_to_num(data)
60
+ when NilClass then nil
61
+ end
61
62
  end
63
+
64
+ range = cols && cols.locate_range(column_index)
65
+ c.style_index = row.style_index || (range && range.style_index) || 0
66
+ row.cells[column_index] = c
62
67
  end
63
68
 
64
- range = cols && cols.locate_range(column_index)
65
- c.style_index = row.style_index || (range && range.style_index) || 0
66
- row.cells[column_index] = c
69
+ c
67
70
  end
68
71
 
69
- c
70
- end
72
+ private
71
73
 
72
- private
74
+ # validates Workbook, ensures that this worksheet is in @workbook
75
+ def validate_workbook()
76
+ unless @workbook.nil? || @workbook.worksheets.nil?
77
+ return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
78
+ end
73
79
 
74
- #validates Workbook, ensures that this worksheet is in @workbook
75
- def validate_workbook()
76
- unless @workbook.nil? || @workbook.worksheets.nil?
77
- return if @workbook.worksheets.any? { |sheet| sheet.equal?(self) }
80
+ raise "This worksheet #{self} is not in workbook #{@workbook}"
78
81
  end
79
82
 
80
- raise "This worksheet #{self} is not in workbook #{@workbook}"
81
- end
83
+ # Ensures that storage space for a cell with +row_index+ and +column_index+
84
+ # exists in +sheet_data+ arrays, growing them up if necessary.
85
+ def ensure_cell_exists(row_index, column_index = 0)
86
+ validate_nonnegative(row_index)
87
+ validate_nonnegative(column_index)
82
88
 
83
- # Ensures that storage space for a cell with +row_index+ and +column_index+
84
- # exists in +sheet_data+ arrays, growing them up if necessary.
85
- def ensure_cell_exists(row_index, column_index = 0)
86
- validate_nonnegative(row_index)
87
- validate_nonnegative(column_index)
88
-
89
- sheet_data.rows[row_index] || add_row(row_index)
90
- end
91
-
92
- def validate_nonnegative(row_or_col)
93
- raise 'Row and Column arguments must be nonnegative' if row_or_col < 0
94
- end
95
- private :validate_nonnegative
89
+ sheet_data.rows[row_index] || add_row(row_index)
90
+ end
96
91
 
97
- end #end class
92
+ def validate_nonnegative(row_or_col)
93
+ raise 'Row and Column arguments must be nonnegative' if row_or_col < 0
94
+ end
95
+ private :validate_nonnegative
96
+ end # end class
98
97
  end
data/lib/rubyXL.rb CHANGED
@@ -9,5 +9,4 @@ module RubyXL
9
9
  return path unless path.absolute?
10
10
  path.relative_path_from(OOXMLTopLevelObject::ROOT)
11
11
  end
12
-
13
12
  end
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>README - rubyXL 3.4.21</title>
7
+ <title>README - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "./";
@@ -93,6 +93,7 @@
93
93
  <li><a href="#label-Insert+Cell">Insert Cell</a>
94
94
  <li><a href="#label-Delete+Cell">Delete Cell</a>
95
95
  <li><a href="#label-Modifying+Cell+Format">Modifying Cell Format</a>
96
+ <li><a href="#label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell</a>
96
97
  <li><a href="#label-I-2FO">I/O</a>
97
98
  <li><a href="#label-Miscellaneous">Miscellaneous</a>
98
99
  <li><a href="#label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files</a>
@@ -297,38 +298,30 @@
297
298
 
298
299
  <h5 id="label-Horizontal">Horizontal<span><a href="#label-Horizontal">&para;</a> <a href="#top">&uarr;</a></span></h5>
299
300
 
300
- <p>center, distributed, justify, left, right</p>
301
-
302
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_horizontal_alignment</span>(<span class="ruby-string">&#39;center&#39;</span>) <span class="ruby-comment"># Sets A1 to be centered</span>
301
+ <pre class="ruby"><span class="ruby-comment"># Possible alignments: center, distributed, justify, left, right</span>
302
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_horizontal_alignment</span>(<span class="ruby-string">&#39;center&#39;</span>) <span class="ruby-comment"># Sets A1 to be centered</span>
303
303
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_horizontal_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">&#39;justify&#39;</span>) <span class="ruby-comment"># Sets first row to be justified</span>
304
304
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_horizontal_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">&#39;right&#39;</span>) <span class="ruby-comment"># Sets first column to be right-aligned</span>
305
305
  </pre>
306
306
 
307
307
  <h5 id="label-Vertical">Vertical<span><a href="#label-Vertical">&para;</a> <a href="#top">&uarr;</a></span></h5>
308
308
 
309
- <p>bottom, center, distributed, top</p>
310
-
311
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_vertical_alignment</span>(<span class="ruby-string">&#39;bottom&#39;</span>) <span class="ruby-comment"># Sets A1 to be bottom aligned</span>
309
+ <pre class="ruby"><span class="ruby-comment"># Possible alignments: bottom, center, distributed, top</span>
310
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_vertical_alignment</span>(<span class="ruby-string">&#39;bottom&#39;</span>) <span class="ruby-comment"># Sets A1 to be bottom aligned</span>
312
311
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_vertical_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">&#39;distributed&#39;</span>) <span class="ruby-comment"># Sets first row to be distributed vertically</span>
313
312
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_vertical_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-string">&#39;top&#39;</span>) <span class="ruby-comment"># Sets first column to be top aligned</span>
314
313
  </pre>
315
314
 
316
315
  <h5 id="label-Rotation">Rotation<span><a href="#label-Rotation">&para;</a> <a href="#top">&uarr;</a></span></h5>
317
316
 
318
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_text_rotation</span>(<span class="ruby-value">90</span>) <span class="ruby-comment"># Sets A1 to be rotated by 90 degrees</span>
317
+ <pre class="ruby"><span class="ruby-comment"># Possible values:</span>
318
+ <span class="ruby-comment"># * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</span>
319
+ <span class="ruby-comment"># * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</span>
320
+ <span class="ruby-comment"># * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</span>
321
+ <span class="ruby-comment"># * 255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.</span>
322
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>].<span class="ruby-identifier">change_text_rotation</span>(<span class="ruby-value">90</span>) <span class="ruby-comment"># Sets A1 to be rotated by 90 degrees</span>
319
323
  </pre>
320
324
 
321
- <p>Values:</p>
322
- <ul><li>
323
- <p>0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</p>
324
- </li><li>
325
- <p>91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</p>
326
- </li><li>
327
- <p>180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</p>
328
- </li><li>
329
- <p>255 - text is in normal rotation but displayed vertically (one letter under another), line feed starts new line to the right of the previous.</p>
330
- </li></ul>
331
-
332
325
  <h4 id="label-Changing+Row+Height">Changing Row Height<span><a href="#label-Changing+Row+Height">&para;</a> <a href="#top">&uarr;</a></span></h4>
333
326
 
334
327
  <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_height</span>(<span class="ruby-value">0</span>, <span class="ruby-value">30</span>) <span class="ruby-comment"># Sets first row height to 30</span>
@@ -407,9 +400,16 @@
407
400
  <pre class="ruby"><span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
408
401
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">set_number_format</span> <span class="ruby-string">&#39;0.0000%&#39;</span> <span class="ruby-comment"># For formats, see https://support.office.com/en-us/article/5026bbd6-04bc-48cd-bf33-80f18b4eae68</span>
409
402
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_text_wrap</span>(<span class="ruby-keyword">true</span>) <span class="ruby-comment"># Makes the text in the cell to wrap.</span>
403
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_shrink_to_fit</span>(<span class="ruby-keyword">true</span>) <span class="ruby-comment"># Makes the text in the cell to shrink to fit.</span>
410
404
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">change_text_indent</span>(<span class="ruby-value">1</span>) <span class="ruby-comment"># Indents the text in the cell by 1 level</span>
411
405
  </pre>
412
406
 
407
+ <h4 id="label-Add+hyperlink+to+a+Cell">Add hyperlink to a Cell<span><a href="#label-Add+hyperlink+to+a+Cell">&para;</a> <a href="#top">&uarr;</a></span></h4>
408
+
409
+ <pre class="ruby"><span class="ruby-identifier">cell</span>.<span class="ruby-identifier">add_hyperlink</span>(<span class="ruby-string">&#39;http://example.com&#39;</span>)
410
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">add_hyperlink</span>(<span class="ruby-string">&#39;http://example.com&#39;</span>, <span class="ruby-string">&#39;Some tooltip text&#39;</span>)
411
+ </pre>
412
+
413
413
  <h2 id="label-I-2FO">I/O<span><a href="#label-I-2FO">&para;</a> <a href="#top">&uarr;</a></span></h2>
414
414
 
415
415
  <p>By default, the gem operates with files on the local filesystem:</p>
@@ -463,7 +463,7 @@
463
463
 
464
464
  <h2 id="label-Copyright">Copyright<span><a href="#label-Copyright">&para;</a> <a href="#top">&uarr;</a></span></h2>
465
465
 
466
- <p>Copyright © 2011 Vivek Bhagwat, 2013-2021 Wesha. See LICENSE.txt for further details.</p>
466
+ <p>Copyright © 2011 Vivek Bhagwat, 2013-2022 Wesha. See LICENSE.txt for further details.</p>
467
467
 
468
468
  </main>
469
469
 
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AExtension - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AExtension - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AExtensionStorageArea - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AExtensionStorageArea - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::ActiveX - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::ActiveX - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -127,10 +127,10 @@
127
127
 
128
128
 
129
129
  <div class="method-source-code" id="attach_relationship-source">
130
- <pre><span class="ruby-comment"># File lib/rubyXL/objects/storage.rb, line 175</span>
130
+ <pre><span class="ruby-comment"># File lib/rubyXL/objects/storage.rb, line 177</span>
131
131
  <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">attach_relationship</span>(<span class="ruby-identifier">rid</span>, <span class="ruby-identifier">rf</span>)
132
132
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">rf</span>
133
- <span class="ruby-keyword">when</span> <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">ChartFile</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">store_relationship</span>(<span class="ruby-identifier">rf</span>) <span class="ruby-comment"># TODO</span>
133
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">ChartFile</span> <span class="ruby-keyword">then</span> <span class="ruby-identifier">store_relationship</span>(<span class="ruby-identifier">rf</span>) <span class="ruby-comment"># TODO</span>
134
134
  <span class="ruby-keyword">else</span> <span class="ruby-identifier">store_relationship</span>(<span class="ruby-identifier">rf</span>, <span class="ruby-value">:unknown</span>)
135
135
  <span class="ruby-keyword">end</span>
136
136
  <span class="ruby-keyword">end</span></pre>
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::ActiveXBinary - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::ActiveXBinary - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AdjustHandleList - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AdjustHandleList - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::Alignment - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::Alignment - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AlternateContent - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AlternateContent - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::Authors - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::Authors - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AutoFilter - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AutoFilter - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::AutoFilterColumn - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::AutoFilterColumn - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::BinaryImageFile - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::BinaryImageFile - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::BodyProperties - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::BodyProperties - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::BooleanNode - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::BooleanNode - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";
@@ -4,7 +4,7 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>class RubyXL::BooleanValue - rubyXL 3.4.21</title>
7
+ <title>class RubyXL::BooleanValue - rubyXL 3.4.24</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "../";