rubyXL 3.3.33 → 3.4.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (463) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +60 -0
  3. data/Gemfile +9 -8
  4. data/Gemfile.lock +124 -0
  5. data/LICENSE.txt +1 -1
  6. data/README.rdoc +46 -22
  7. data/Rakefile +29 -29
  8. data/VERSION +1 -1
  9. data/lib/rubyXL/cell.rb +2 -29
  10. data/lib/rubyXL/convenience_methods/cell.rb +276 -0
  11. data/lib/rubyXL/convenience_methods/color.rb +156 -0
  12. data/lib/rubyXL/convenience_methods/font.rb +63 -0
  13. data/lib/rubyXL/convenience_methods/workbook.rb +141 -0
  14. data/lib/rubyXL/convenience_methods/worksheet.rb +714 -0
  15. data/lib/rubyXL/convenience_methods.rb +5 -1301
  16. data/lib/rubyXL/objects/border.rb +0 -3
  17. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  18. data/lib/rubyXL/objects/cell_style.rb +1 -3
  19. data/lib/rubyXL/objects/chartsheet.rb +8 -12
  20. data/lib/rubyXL/objects/color.rb +3 -7
  21. data/lib/rubyXL/objects/column_range.rb +0 -3
  22. data/lib/rubyXL/objects/comments.rb +1 -4
  23. data/lib/rubyXL/objects/connection.rb +175 -0
  24. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  25. data/lib/rubyXL/objects/content_types.rb +3 -6
  26. data/lib/rubyXL/objects/data_validation.rb +2 -2
  27. data/lib/rubyXL/objects/document_properties.rb +11 -15
  28. data/lib/rubyXL/objects/extensions.rb +0 -2
  29. data/lib/rubyXL/objects/external_links.rb +30 -8
  30. data/lib/rubyXL/objects/fill.rb +2 -5
  31. data/lib/rubyXL/objects/filters.rb +5 -7
  32. data/lib/rubyXL/objects/font.rb +2 -7
  33. data/lib/rubyXL/objects/formula.rb +3 -5
  34. data/lib/rubyXL/objects/ooxml_object.rb +26 -19
  35. data/lib/rubyXL/objects/query_table.rb +104 -0
  36. data/lib/rubyXL/objects/reference.rb +6 -8
  37. data/lib/rubyXL/objects/relationships.rb +13 -13
  38. data/lib/rubyXL/objects/root.rb +0 -2
  39. data/lib/rubyXL/objects/shared_strings.rb +3 -6
  40. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  41. data/lib/rubyXL/objects/sheet_data.rb +38 -11
  42. data/lib/rubyXL/objects/simple_types.rb +16 -1
  43. data/lib/rubyXL/objects/storage.rb +51 -50
  44. data/lib/rubyXL/objects/stylesheet.rb +8 -15
  45. data/lib/rubyXL/objects/text.rb +5 -7
  46. data/lib/rubyXL/objects/theme.rb +5 -8
  47. data/lib/rubyXL/objects/workbook.rb +140 -33
  48. data/lib/rubyXL/objects/worksheet.rb +44 -31
  49. data/lib/rubyXL/parser.rb +1 -3
  50. data/lib/rubyXL/worksheet.rb +83 -91
  51. data/lib/rubyXL.rb +1 -1
  52. data/rdoc/README_rdoc.html +111 -126
  53. data/rdoc/RubyXL/AExtension.html +20 -60
  54. data/rdoc/RubyXL/AExtensionStorageArea.html +11 -17
  55. data/rdoc/RubyXL/ActiveX.html +19 -47
  56. data/rdoc/RubyXL/ActiveXBinary.html +11 -22
  57. data/rdoc/RubyXL/AdjustHandleList.html +12 -19
  58. data/rdoc/RubyXL/Alignment.html +12 -19
  59. data/rdoc/RubyXL/AlternateContent.html +11 -17
  60. data/rdoc/RubyXL/Authors.html +12 -19
  61. data/rdoc/RubyXL/AutoFilter.html +12 -19
  62. data/rdoc/RubyXL/AutoFilterColumn.html +12 -19
  63. data/rdoc/RubyXL/BinaryImageFile.html +11 -25
  64. data/rdoc/RubyXL/BodyProperties.html +12 -19
  65. data/rdoc/RubyXL/BooleanNode.html +11 -17
  66. data/rdoc/RubyXL/BooleanValue.html +11 -17
  67. data/rdoc/RubyXL/Border.html +24 -84
  68. data/rdoc/RubyXL/BorderEdge.html +19 -52
  69. data/rdoc/RubyXL/Borders.html +18 -39
  70. data/rdoc/RubyXL/Break.html +12 -19
  71. data/rdoc/RubyXL/BreakList.html +12 -19
  72. data/rdoc/RubyXL/CT_AdjPoint2D.html +12 -19
  73. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +12 -19
  74. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +12 -19
  75. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +12 -19
  76. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +12 -19
  77. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +12 -19
  78. data/rdoc/RubyXL/CT_Backdrop.html +12 -19
  79. data/rdoc/RubyXL/CT_Bevel.html +12 -19
  80. data/rdoc/RubyXL/CT_BiLevelEffect.html +12 -19
  81. data/rdoc/RubyXL/CT_BlendEffect.html +12 -19
  82. data/rdoc/RubyXL/CT_Blip.html +12 -19
  83. data/rdoc/RubyXL/CT_BlipFillProperties.html +12 -19
  84. data/rdoc/RubyXL/CT_BlurEffect.html +12 -19
  85. data/rdoc/RubyXL/CT_Camera.html +12 -19
  86. data/rdoc/RubyXL/CT_Color.html +12 -19
  87. data/rdoc/RubyXL/CT_ColorChangeEffect.html +12 -19
  88. data/rdoc/RubyXL/CT_ColorMapping.html +12 -19
  89. data/rdoc/RubyXL/CT_ColorScheme.html +12 -19
  90. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +12 -19
  91. data/rdoc/RubyXL/CT_ConnectionSite.html +12 -19
  92. data/rdoc/RubyXL/CT_ConnectionSiteList.html +12 -19
  93. data/rdoc/RubyXL/CT_DashStop.html +12 -19
  94. data/rdoc/RubyXL/CT_DashStopList.html +12 -19
  95. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +12 -19
  96. data/rdoc/RubyXL/CT_DuotoneEffect.html +12 -19
  97. data/rdoc/RubyXL/CT_EffectContainer.html +12 -19
  98. data/rdoc/RubyXL/CT_EffectList.html +12 -19
  99. data/rdoc/RubyXL/CT_EffectReference.html +12 -19
  100. data/rdoc/RubyXL/CT_EffectStyleItem.html +12 -19
  101. data/rdoc/RubyXL/CT_EffectStyleList.html +12 -19
  102. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +12 -19
  103. data/rdoc/RubyXL/CT_FillEffect.html +12 -19
  104. data/rdoc/RubyXL/CT_FillOverlayEffect.html +12 -19
  105. data/rdoc/RubyXL/CT_FillStyleList.html +12 -19
  106. data/rdoc/RubyXL/CT_FlatText.html +12 -19
  107. data/rdoc/RubyXL/CT_FontCollection.html +12 -19
  108. data/rdoc/RubyXL/CT_FontReference.html +12 -19
  109. data/rdoc/RubyXL/CT_GeomGuideList.html +12 -19
  110. data/rdoc/RubyXL/CT_GlowEffect.html +12 -19
  111. data/rdoc/RubyXL/CT_GradientFillProperties.html +12 -19
  112. data/rdoc/RubyXL/CT_GradientStop.html +12 -19
  113. data/rdoc/RubyXL/CT_GradientStopList.html +12 -19
  114. data/rdoc/RubyXL/CT_HSLEffect.html +12 -19
  115. data/rdoc/RubyXL/CT_HslColor.html +12 -19
  116. data/rdoc/RubyXL/CT_Hyperlink.html +12 -19
  117. data/rdoc/RubyXL/CT_InnerShadowEffect.html +12 -19
  118. data/rdoc/RubyXL/CT_LightRig.html +12 -19
  119. data/rdoc/RubyXL/CT_LineEndProperties.html +12 -19
  120. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +12 -19
  121. data/rdoc/RubyXL/CT_LineProperties.html +12 -19
  122. data/rdoc/RubyXL/CT_LineStyleList.html +12 -19
  123. data/rdoc/RubyXL/CT_LinearShadeProperties.html +12 -19
  124. data/rdoc/RubyXL/CT_LuminanceEffect.html +12 -19
  125. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +12 -19
  126. data/rdoc/RubyXL/CT_OuterShadowEffect.html +12 -19
  127. data/rdoc/RubyXL/CT_Path2D.html +12 -19
  128. data/rdoc/RubyXL/CT_Path2DArcTo.html +12 -19
  129. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +12 -19
  130. data/rdoc/RubyXL/CT_Path2DList.html +12 -19
  131. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +12 -19
  132. data/rdoc/RubyXL/CT_Path2DTo.html +12 -19
  133. data/rdoc/RubyXL/CT_PathShadeProperties.html +12 -19
  134. data/rdoc/RubyXL/CT_PatternFillProperties.html +12 -19
  135. data/rdoc/RubyXL/CT_Point3D.html +12 -19
  136. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +12 -19
  137. data/rdoc/RubyXL/CT_PresetColor.html +12 -19
  138. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +12 -19
  139. data/rdoc/RubyXL/CT_PresetShadowEffect.html +12 -19
  140. data/rdoc/RubyXL/CT_PresetTextShape.html +12 -19
  141. data/rdoc/RubyXL/CT_ReflectionEffect.html +12 -19
  142. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +12 -19
  143. data/rdoc/RubyXL/CT_RelativeRect.html +12 -19
  144. data/rdoc/RubyXL/CT_SRgbColor.html +12 -19
  145. data/rdoc/RubyXL/CT_ScRgbColor.html +12 -19
  146. data/rdoc/RubyXL/CT_Scene3D.html +12 -19
  147. data/rdoc/RubyXL/CT_SchemeColor.html +12 -19
  148. data/rdoc/RubyXL/CT_Shape3D.html +12 -19
  149. data/rdoc/RubyXL/CT_ShapeStyle.html +12 -19
  150. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +12 -19
  151. data/rdoc/RubyXL/CT_SphereCoords.html +12 -19
  152. data/rdoc/RubyXL/CT_StretchInfoProperties.html +12 -19
  153. data/rdoc/RubyXL/CT_StyleMatrix.html +12 -19
  154. data/rdoc/RubyXL/CT_StyleMatrixReference.html +12 -19
  155. data/rdoc/RubyXL/CT_SupplementalFont.html +12 -19
  156. data/rdoc/RubyXL/CT_SystemColor.html +12 -19
  157. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +12 -19
  158. data/rdoc/RubyXL/CT_TextBlipBullet.html +12 -19
  159. data/rdoc/RubyXL/CT_TextCharBullet.html +12 -19
  160. data/rdoc/RubyXL/CT_TextCharacterProperties.html +12 -19
  161. data/rdoc/RubyXL/CT_TextFont.html +12 -19
  162. data/rdoc/RubyXL/CT_TextListStyle.html +12 -19
  163. data/rdoc/RubyXL/CT_TextNormalAutofit.html +12 -19
  164. data/rdoc/RubyXL/CT_TextParagraphProperties.html +12 -19
  165. data/rdoc/RubyXL/CT_TextSpacing.html +12 -19
  166. data/rdoc/RubyXL/CT_TextTabStop.html +12 -19
  167. data/rdoc/RubyXL/CT_TextTabStopList.html +12 -19
  168. data/rdoc/RubyXL/CT_TileInfoProperties.html +12 -19
  169. data/rdoc/RubyXL/CT_TintEffect.html +12 -19
  170. data/rdoc/RubyXL/CT_Transform2D.html +12 -19
  171. data/rdoc/RubyXL/CT_TransformEffect.html +12 -19
  172. data/rdoc/RubyXL/CT_Vector3D.html +12 -19
  173. data/rdoc/RubyXL/CT_XYAdjustHandle.html +12 -19
  174. data/rdoc/RubyXL/CalculationChain.html +16 -45
  175. data/rdoc/RubyXL/CalculationChainCell.html +12 -19
  176. data/rdoc/RubyXL/CalculationProperties.html +12 -19
  177. data/rdoc/RubyXL/Cell.html +133 -209
  178. data/rdoc/RubyXL/CellConvenienceMethods.html +168 -522
  179. data/rdoc/RubyXL/CellExt.html +12 -19
  180. data/rdoc/RubyXL/CellSmartTag.html +12 -19
  181. data/rdoc/RubyXL/CellSmartTagProperty.html +12 -19
  182. data/rdoc/RubyXL/CellSmartTags.html +12 -19
  183. data/rdoc/RubyXL/CellStyle.html +12 -19
  184. data/rdoc/RubyXL/CellStyleXFs.html +18 -39
  185. data/rdoc/RubyXL/CellStyles.html +18 -39
  186. data/rdoc/RubyXL/CellValue.html +17 -38
  187. data/rdoc/RubyXL/CellWatch.html +12 -19
  188. data/rdoc/RubyXL/CellWatches.html +12 -19
  189. data/rdoc/RubyXL/CellXFs.html +19 -42
  190. data/rdoc/RubyXL/ChartColorsFile.html +11 -25
  191. data/rdoc/RubyXL/ChartFile.html +18 -49
  192. data/rdoc/RubyXL/ChartStyleFile.html +11 -25
  193. data/rdoc/RubyXL/ChartUserShapesFile.html +11 -25
  194. data/rdoc/RubyXL/Chartsheet.html +19 -68
  195. data/rdoc/RubyXL/ChartsheetPageSetup.html +12 -19
  196. data/rdoc/RubyXL/ChartsheetProperties.html +12 -19
  197. data/rdoc/RubyXL/ChartsheetProtection.html +12 -19
  198. data/rdoc/RubyXL/ChartsheetView.html +12 -19
  199. data/rdoc/RubyXL/ChartsheetViews.html +12 -19
  200. data/rdoc/RubyXL/Color.html +18 -55
  201. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +18 -65
  202. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +28 -88
  203. data/rdoc/RubyXL/ColorConvenienceClasses.html +9 -14
  204. data/rdoc/RubyXL/ColorConvenienceMethods.html +14 -33
  205. data/rdoc/RubyXL/ColorFilter.html +12 -19
  206. data/rdoc/RubyXL/ColorScale.html +12 -19
  207. data/rdoc/RubyXL/ColorSet.html +12 -19
  208. data/rdoc/RubyXL/Colors.html +12 -19
  209. data/rdoc/RubyXL/ColumnRange.html +22 -74
  210. data/rdoc/RubyXL/ColumnRanges.html +23 -83
  211. data/rdoc/RubyXL/Comment.html +12 -19
  212. data/rdoc/RubyXL/CommentList.html +12 -19
  213. data/rdoc/RubyXL/CommentsFile.html +17 -51
  214. data/rdoc/RubyXL/ConditionalFormatValue.html +12 -19
  215. data/rdoc/RubyXL/ConditionalFormatting.html +12 -19
  216. data/rdoc/RubyXL/ConditionalFormattingRule.html +12 -19
  217. data/rdoc/RubyXL/Connection.html +99 -0
  218. data/rdoc/RubyXL/ConnectionTable.html +99 -0
  219. data/rdoc/RubyXL/ConnectionTables.html +99 -0
  220. data/rdoc/RubyXL/ConnectionTextField.html +99 -0
  221. data/rdoc/RubyXL/ConnectionTextFields.html +99 -0
  222. data/rdoc/RubyXL/Connections.html +147 -0
  223. data/rdoc/RubyXL/ContentTypeDefault.html +11 -17
  224. data/rdoc/RubyXL/ContentTypeOverride.html +11 -17
  225. data/rdoc/RubyXL/ContentTypes.html +22 -63
  226. data/rdoc/RubyXL/ControlPropertiesFile.html +13 -22
  227. data/rdoc/RubyXL/CorePropertiesFile.html +34 -171
  228. data/rdoc/RubyXL/CustomColor.html +12 -19
  229. data/rdoc/RubyXL/CustomColorList.html +12 -19
  230. data/rdoc/RubyXL/CustomFilter.html +12 -19
  231. data/rdoc/RubyXL/CustomFilters.html +12 -19
  232. data/rdoc/RubyXL/CustomGeometry.html +12 -19
  233. data/rdoc/RubyXL/CustomProperties.html +12 -19
  234. data/rdoc/RubyXL/CustomPropertiesFile.html +11 -25
  235. data/rdoc/RubyXL/CustomProperty.html +12 -19
  236. data/rdoc/RubyXL/CustomPropertyFile.html +11 -25
  237. data/rdoc/RubyXL/CustomSheetView.html +12 -19
  238. data/rdoc/RubyXL/CustomSheetViews.html +12 -19
  239. data/rdoc/RubyXL/CustomWorkbookView.html +12 -19
  240. data/rdoc/RubyXL/CustomWorkbookViews.html +12 -19
  241. data/rdoc/RubyXL/CustomXMLFile.html +11 -22
  242. data/rdoc/RubyXL/DXF.html +12 -19
  243. data/rdoc/RubyXL/DXFs.html +12 -19
  244. data/rdoc/RubyXL/DataBar.html +12 -19
  245. data/rdoc/RubyXL/DataConsolidate.html +12 -19
  246. data/rdoc/RubyXL/DataConsolidationReference.html +12 -19
  247. data/rdoc/RubyXL/DataConsolidationReferences.html +12 -19
  248. data/rdoc/RubyXL/DataType.html +10 -39
  249. data/rdoc/RubyXL/DataValidation.html +12 -19
  250. data/rdoc/RubyXL/DataValidations.html +12 -19
  251. data/rdoc/RubyXL/DateGroupItem.html +12 -19
  252. data/rdoc/RubyXL/DefinedName.html +12 -19
  253. data/rdoc/RubyXL/DefinedNameExt.html +12 -19
  254. data/rdoc/RubyXL/DefinedNames.html +12 -19
  255. data/rdoc/RubyXL/DefinedNamesExt.html +12 -19
  256. data/rdoc/RubyXL/DocumentPropertiesFile.html +21 -68
  257. data/rdoc/RubyXL/DrawingFile.html +18 -49
  258. data/rdoc/RubyXL/DynamicFilter.html +12 -19
  259. data/rdoc/RubyXL/EmbeddedControl.html +12 -19
  260. data/rdoc/RubyXL/EmbeddedControls.html +12 -19
  261. data/rdoc/RubyXL/Extension.html +12 -19
  262. data/rdoc/RubyXL/ExtensionStorageArea.html +12 -19
  263. data/rdoc/RubyXL/Extents.html +12 -19
  264. data/rdoc/RubyXL/ExternalBook.html +12 -19
  265. data/rdoc/RubyXL/ExternalLinksFile.html +18 -49
  266. data/rdoc/RubyXL/ExternalReference.html +12 -19
  267. data/rdoc/RubyXL/ExternalReferences.html +12 -19
  268. data/rdoc/RubyXL/ExtraColorSchemeList.html +12 -19
  269. data/rdoc/RubyXL/FieldItem.html +12 -19
  270. data/rdoc/RubyXL/FileRecoveryProperties.html +12 -19
  271. data/rdoc/RubyXL/FileSharing.html +12 -19
  272. data/rdoc/RubyXL/FileVersion.html +12 -19
  273. data/rdoc/RubyXL/Fill.html +18 -39
  274. data/rdoc/RubyXL/Fills.html +18 -39
  275. data/rdoc/RubyXL/FilterContainer.html +12 -19
  276. data/rdoc/RubyXL/FloatNode.html +11 -17
  277. data/rdoc/RubyXL/FloatValue.html +11 -17
  278. data/rdoc/RubyXL/Font.html +21 -59
  279. data/rdoc/RubyXL/FontConvenienceMethods.html +48 -237
  280. data/rdoc/RubyXL/FontScheme.html +12 -19
  281. data/rdoc/RubyXL/Fonts.html +18 -39
  282. data/rdoc/RubyXL/Formula.html +12 -19
  283. data/rdoc/RubyXL/FunctionGroup.html +12 -19
  284. data/rdoc/RubyXL/FunctionGroups.html +12 -19
  285. data/rdoc/RubyXL/GenericStorageObject.html +21 -84
  286. data/rdoc/RubyXL/GradientFill.html +12 -19
  287. data/rdoc/RubyXL/HeaderFooterSettings.html +12 -19
  288. data/rdoc/RubyXL/Hyperlink.html +12 -19
  289. data/rdoc/RubyXL/HyperlinkRelFile.html +11 -22
  290. data/rdoc/RubyXL/Hyperlinks.html +12 -19
  291. data/rdoc/RubyXL/IconFilter.html +12 -19
  292. data/rdoc/RubyXL/IconSet.html +12 -19
  293. data/rdoc/RubyXL/IgnoredError.html +12 -19
  294. data/rdoc/RubyXL/IgnoredErrors.html +12 -19
  295. data/rdoc/RubyXL/IndexedColors.html +12 -19
  296. data/rdoc/RubyXL/InputCells.html +12 -19
  297. data/rdoc/RubyXL/IntegerNode.html +11 -17
  298. data/rdoc/RubyXL/IntegerValue.html +11 -17
  299. data/rdoc/RubyXL/LegacyCell.html +13 -66
  300. data/rdoc/RubyXL/LegacyWorksheet.html +25 -99
  301. data/rdoc/RubyXL/MRUColors.html +12 -19
  302. data/rdoc/RubyXL/MacrosFile.html +11 -25
  303. data/rdoc/RubyXL/MergedCell.html +12 -19
  304. data/rdoc/RubyXL/MergedCells.html +12 -19
  305. data/rdoc/RubyXL/NumFmt.html +12 -19
  306. data/rdoc/RubyXL/NumberFormat.html +18 -39
  307. data/rdoc/RubyXL/NumberFormats.html +18 -45
  308. data/rdoc/RubyXL/OLEObject.html +12 -19
  309. data/rdoc/RubyXL/OLEObjectFile.html +11 -25
  310. data/rdoc/RubyXL/OLEObjects.html +12 -19
  311. data/rdoc/RubyXL/OLESize.html +12 -19
  312. data/rdoc/RubyXL/OOXMLContainerObject.html +35 -132
  313. data/rdoc/RubyXL/OOXMLIgnored.html +19 -53
  314. data/rdoc/RubyXL/OOXMLObject.html +14 -25
  315. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +91 -183
  316. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +48 -185
  317. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +47 -200
  318. data/rdoc/RubyXL/OOXMLTopLevelObject.html +36 -133
  319. data/rdoc/RubyXL/OdbcOleDbProperties.html +99 -0
  320. data/rdoc/RubyXL/Offset.html +12 -19
  321. data/rdoc/RubyXL/OlapProperties.html +99 -0
  322. data/rdoc/RubyXL/OleItem.html +99 -0
  323. data/rdoc/RubyXL/OleItems.html +99 -0
  324. data/rdoc/RubyXL/OleLink.html +99 -0
  325. data/rdoc/RubyXL/OutlineProperties.html +12 -19
  326. data/rdoc/RubyXL/PageMargins.html +12 -19
  327. data/rdoc/RubyXL/PageSetup.html +12 -19
  328. data/rdoc/RubyXL/PageSetupProperties.html +12 -19
  329. data/rdoc/RubyXL/Pane.html +12 -19
  330. data/rdoc/RubyXL/Parser.html +22 -56
  331. data/rdoc/RubyXL/PatternFill.html +12 -19
  332. data/rdoc/RubyXL/PhoneticProperties.html +12 -19
  333. data/rdoc/RubyXL/PhoneticRun.html +12 -19
  334. data/rdoc/RubyXL/PivotArea.html +12 -19
  335. data/rdoc/RubyXL/PivotCache.html +12 -19
  336. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +13 -30
  337. data/rdoc/RubyXL/PivotCacheRecordsFile.html +11 -25
  338. data/rdoc/RubyXL/PivotCaches.html +12 -19
  339. data/rdoc/RubyXL/PivotReference.html +12 -19
  340. data/rdoc/RubyXL/PivotReferences.html +12 -19
  341. data/rdoc/RubyXL/PivotTableFile.html +13 -30
  342. data/rdoc/RubyXL/PivotTableSelection.html +12 -19
  343. data/rdoc/RubyXL/PresetGeometry.html +12 -19
  344. data/rdoc/RubyXL/PrintOptions.html +12 -19
  345. data/rdoc/RubyXL/PrinterSettingsFile.html +11 -25
  346. data/rdoc/RubyXL/ProtectedRange.html +12 -19
  347. data/rdoc/RubyXL/ProtectedRanges.html +12 -19
  348. data/rdoc/RubyXL/Protection.html +12 -19
  349. data/rdoc/RubyXL/QueryParameter.html +99 -0
  350. data/rdoc/RubyXL/QueryParameters.html +99 -0
  351. data/rdoc/RubyXL/QueryTable.html +155 -0
  352. data/rdoc/RubyXL/QueryTableDeletedField.html +99 -0
  353. data/rdoc/RubyXL/QueryTableDeletedFields.html +99 -0
  354. data/rdoc/RubyXL/QueryTableField.html +99 -0
  355. data/rdoc/RubyXL/QueryTableFields.html +99 -0
  356. data/rdoc/RubyXL/QueryTableRefresh.html +99 -0
  357. data/rdoc/RubyXL/RID.html +11 -17
  358. data/rdoc/RubyXL/RawOOXML.html +20 -60
  359. data/rdoc/RubyXL/Reference.html +62 -228
  360. data/rdoc/RubyXL/Relationship.html +11 -17
  361. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +13 -32
  362. data/rdoc/RubyXL/RelationshipSupport.html +25 -120
  363. data/rdoc/RubyXL/RevisionPointer.html +12 -22
  364. data/rdoc/RubyXL/RichText.html +19 -39
  365. data/rdoc/RubyXL/RichTextRun.html +17 -38
  366. data/rdoc/RubyXL/Row.html +33 -168
  367. data/rdoc/RubyXL/RowExt.html +12 -19
  368. data/rdoc/RubyXL/RunProperties.html +12 -19
  369. data/rdoc/RubyXL/Scenario.html +12 -19
  370. data/rdoc/RubyXL/Scenarios.html +12 -19
  371. data/rdoc/RubyXL/Selection.html +16 -37
  372. data/rdoc/RubyXL/ShapeGuide.html +12 -19
  373. data/rdoc/RubyXL/ShapeTextRectangle.html +12 -19
  374. data/rdoc/RubyXL/SharedStringsTable.html +37 -147
  375. data/rdoc/RubyXL/Sheet.html +12 -19
  376. data/rdoc/RubyXL/SheetCalculationProperties.html +12 -19
  377. data/rdoc/RubyXL/SheetData.html +19 -53
  378. data/rdoc/RubyXL/SheetDataExt.html +12 -19
  379. data/rdoc/RubyXL/SheetDataSet.html +12 -19
  380. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  381. data/rdoc/RubyXL/SheetName.html +12 -19
  382. data/rdoc/RubyXL/SheetNames.html +12 -19
  383. data/rdoc/RubyXL/Sheets.html +12 -19
  384. data/rdoc/RubyXL/SlicerCacheFile.html +11 -25
  385. data/rdoc/RubyXL/SlicerFile.html +11 -25
  386. data/rdoc/RubyXL/SmartTagProperties.html +12 -19
  387. data/rdoc/RubyXL/SmartTagType.html +12 -19
  388. data/rdoc/RubyXL/SmartTagTypes.html +12 -19
  389. data/rdoc/RubyXL/SmartTags.html +12 -19
  390. data/rdoc/RubyXL/SortCondition.html +12 -19
  391. data/rdoc/RubyXL/SortState.html +12 -19
  392. data/rdoc/RubyXL/Sqref.html +19 -53
  393. data/rdoc/RubyXL/Stop.html +12 -19
  394. data/rdoc/RubyXL/StringNode.html +11 -17
  395. data/rdoc/RubyXL/StringNodeW3C.html +20 -54
  396. data/rdoc/RubyXL/StringValue.html +11 -17
  397. data/rdoc/RubyXL/Stylesheet.html +34 -117
  398. data/rdoc/RubyXL/TableFile.html +11 -25
  399. data/rdoc/RubyXL/TableParts.html +11 -17
  400. data/rdoc/RubyXL/TableStyle.html +12 -19
  401. data/rdoc/RubyXL/TableStyles.html +12 -19
  402. data/rdoc/RubyXL/Text.html +22 -67
  403. data/rdoc/RubyXL/TextImportSettings.html +99 -0
  404. data/rdoc/RubyXL/Theme.html +19 -75
  405. data/rdoc/RubyXL/ThemeElements.html +12 -19
  406. data/rdoc/RubyXL/ThumbnailFile.html +11 -25
  407. data/rdoc/RubyXL/Top10.html +12 -19
  408. data/rdoc/RubyXL/VMLDrawingFile.html +14 -32
  409. data/rdoc/RubyXL/Variant.html +12 -19
  410. data/rdoc/RubyXL/Vector.html +17 -38
  411. data/rdoc/RubyXL/VectorValue.html +11 -17
  412. data/rdoc/RubyXL/VisualProperties.html +12 -19
  413. data/rdoc/RubyXL/WebPublishObject.html +12 -19
  414. data/rdoc/RubyXL/WebPublishObjects.html +12 -19
  415. data/rdoc/RubyXL/WebPublishingItem.html +12 -19
  416. data/rdoc/RubyXL/WebPublishingItems.html +12 -19
  417. data/rdoc/RubyXL/WebPublishingProperties.html +12 -19
  418. data/rdoc/RubyXL/WebQueryProperties.html +99 -0
  419. data/rdoc/RubyXL/Workbook.html +486 -227
  420. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +130 -888
  421. data/rdoc/RubyXL/WorkbookProperties.html +12 -19
  422. data/rdoc/RubyXL/WorkbookProtection.html +12 -19
  423. data/rdoc/RubyXL/WorkbookRoot.html +27 -114
  424. data/rdoc/RubyXL/WorkbookView.html +12 -19
  425. data/rdoc/RubyXL/WorkbookViews.html +12 -19
  426. data/rdoc/RubyXL/Worksheet.html +92 -121
  427. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +298 -1109
  428. data/rdoc/RubyXL/WorksheetDimensions.html +12 -19
  429. data/rdoc/RubyXL/WorksheetFormatProperties.html +11 -17
  430. data/rdoc/RubyXL/WorksheetProperties.html +12 -19
  431. data/rdoc/RubyXL/WorksheetProtection.html +12 -19
  432. data/rdoc/RubyXL/WorksheetView.html +12 -19
  433. data/rdoc/RubyXL/WorksheetViews.html +12 -19
  434. data/rdoc/RubyXL/XF.html +12 -19
  435. data/rdoc/RubyXL.html +39 -318
  436. data/rdoc/created.rid +45 -38
  437. data/rdoc/css/rdoc.css +55 -6
  438. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  439. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  440. data/rdoc/index.html +33 -373
  441. data/rdoc/js/darkfish.js +22 -99
  442. data/rdoc/js/navigation.js +4 -41
  443. data/rdoc/js/navigation.js.gz +0 -0
  444. data/rdoc/js/search.js +32 -31
  445. data/rdoc/js/search_index.js +1 -1
  446. data/rdoc/js/search_index.js.gz +0 -0
  447. data/rdoc/js/searcher.js +6 -6
  448. data/rdoc/js/searcher.js.gz +0 -0
  449. data/rdoc/table_of_contents.html +205 -45
  450. data/rubyXL.gemspec +53 -29
  451. data/spec/lib/cell_spec.rb +57 -6
  452. data/spec/lib/color_spec.rb +2 -1
  453. data/spec/lib/parser_spec.rb +24 -27
  454. data/spec/lib/reference_spec.rb +9 -3
  455. data/spec/lib/rgb_color_spec.rb +27 -0
  456. data/spec/lib/stylesheet_spec.rb +8 -11
  457. data/spec/lib/text_spec.rb +1 -5
  458. data/spec/lib/workbook_spec.rb +25 -4
  459. data/spec/lib/worksheet_spec.rb +873 -479
  460. data/spec/spec_helper.rb +2 -0
  461. data/test/test_parse_write.rb +15 -15
  462. metadata +54 -10
  463. data/rdoc/js/jquery.js +0 -4
@@ -4,21 +4,23 @@
4
4
  <head>
5
5
  <meta charset="UTF-8">
6
6
 
7
- <title>README - rubyXL 3.3.33</title>
7
+ <title>README - rubyXL 3.4.25</title>
8
8
 
9
9
  <script type="text/javascript">
10
10
  var rdoc_rel_prefix = "./";
11
11
  var index_rel_prefix = "./";
12
12
  </script>
13
13
 
14
- <script src="./js/jquery.js"></script>
15
- <script src="./js/darkfish.js"></script>
14
+ <script src="./js/navigation.js" defer></script>
15
+ <script src="./js/search.js" defer></script>
16
+ <script src="./js/search_index.js" defer></script>
17
+ <script src="./js/searcher.js" defer></script>
18
+ <script src="./js/darkfish.js" defer></script>
16
19
 
17
20
  <link href="./css/fonts.css" rel="stylesheet">
18
21
  <link href="./css/rdoc.css" rel="stylesheet">
19
22
 
20
23
 
21
-
22
24
  <body id="top" role="document" class="file">
23
25
  <nav role="navigation">
24
26
  <div id="project-navigation">
@@ -59,6 +61,7 @@
59
61
  <li><a href="#label-rubyXL">rubyXL</a>
60
62
  <li><a href="#label-To+Install-3A">To Install:</a>
61
63
  <li><a href="#label-To+Use-3A">To Use:</a>
64
+ <li><a href="#label-Convenience+methods">Convenience methods</a>
62
65
  <li><a href="#label-Parsing+an+existing+workbook">Parsing an existing workbook</a>
63
66
  <li><a href="#label-Creating+a+new+Workbook">Creating a new Workbook</a>
64
67
  <li><a href="#label-Accessing">Accessing</a>
@@ -68,7 +71,6 @@
68
71
  <li><a href="#label-Wrappers+for+accessing+Cell+properties">Wrappers for accessing Cell properties</a>
69
72
  <li><a href="#label-Wrappers+for+accessing+Row+properties+">Wrappers for accessing Row properties </a>
70
73
  <li><a href="#label-Accessing+column+properties">Accessing column properties</a>
71
- <li><a href="#label-Table+reading">Table reading</a>
72
74
  <li><a href="#label-Modifying">Modifying</a>
73
75
  <li><a href="#label-Adding+Worksheets">Adding Worksheets</a>
74
76
  <li><a href="#label-Renaming+Worksheets">Renaming Worksheets</a>
@@ -91,8 +93,11 @@
91
93
  <li><a href="#label-Insert+Cell">Insert Cell</a>
92
94
  <li><a href="#label-Delete+Cell">Delete Cell</a>
93
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>
94
97
  <li><a href="#label-I-2FO">I/O</a>
95
98
  <li><a href="#label-Miscellaneous">Miscellaneous</a>
99
+ <li><a href="#label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files</a>
100
+ <li><a href="#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)</a>
96
101
  <li><a href="#label-For+more+information">For more information</a>
97
102
  <li><a href="#label-Contributing+to+rubyXL">Contributing to rubyXL</a>
98
103
  <li><a href="#label-Copyright">Copyright</a>
@@ -101,13 +106,12 @@
101
106
 
102
107
 
103
108
  <div id="project-metadata">
104
- <div id="fileindex-section" class="nav-section">
109
+
110
+ <div id="fileindex-section" class="nav-section">
105
111
  <h3>Pages</h3>
106
112
 
107
113
  <ul class="link-list">
108
-
109
114
  <li><a href="./README_rdoc.html">README</a>
110
-
111
115
  </ul>
112
116
  </div>
113
117
 
@@ -118,20 +122,11 @@
118
122
 
119
123
  <h1 id="label-rubyXL">rubyXL<span><a href="#label-rubyXL">&para;</a> <a href="#top">&uarr;</a></span></h1>
120
124
 
121
- <p><a href="http://badge.fury.io/rb/rubyXL"><img
122
- src="https://badge.fury.io/rb/rubyXL.svg" alt="Gem Version" /></a> <a
123
- href="https://codeclimate.com/github/weshatheleopard/rubyXL"><img
124
- src="https://codeclimate.com/github/weshatheleopard/rubyXL.png" alt="Code
125
- Climate" /></a></p>
125
+ <p><a href="http://badge.fury.io/rb/rubyXL"><img src="https://badge.fury.io/rb/rubyXL.svg" alt="Gem Version" /></a> <a href="https://codeclimate.com/github/weshatheleopard/rubyXL"><img src="https://codeclimate.com/github/weshatheleopard/rubyXL.png" alt="Code Climate" /></a> <a href="https://circleci.com/gh/weshatheleopard/rubyXL"><img src="https://circleci.com/gh/weshatheleopard/rubyXL.svg?style=svg" alt="CircleCI" /></a></p>
126
126
 
127
- <p>This gem supports operating on <code>xlsx</code> files (Open XML format).
128
- While it is capable of properly parsing the entire OOXML structure, its
129
- current main emphasis is on reading files produced by MS Excel, making
130
- minor modifications to them and saving them to be opened again, while
131
- preserving as much of the structure as possible.</p>
127
+ <p>This gem supports operating on <code>xlsx</code> files (Open XML format). While it is capable of properly parsing the entire OOXML structure, its current main emphasis is on reading files produced by MS Excel, making minor modifications to them and saving them to be opened again, while preserving as much of the structure as possible.</p>
132
128
 
133
- <p>Please note that proprietary binary <code>xls</code> format is
134
- <strong>not</strong> supported.</p>
129
+ <p>Please note that proprietary binary <code>xls</code> format is <strong>not</strong> supported by this gem. If you need to parse those files, try <a href="https://github.com/zdavatz/spreadsheet">spreadsheet</a> gem.</p>
135
130
 
136
131
  <h2 id="label-To+Install-3A">To Install:<span><a href="#label-To+Install-3A">&para;</a> <a href="#top">&uarr;</a></span></h2>
137
132
 
@@ -143,6 +138,22 @@ preserving as much of the structure as possible.</p>
143
138
  <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL&#39;</span> <span class="ruby-comment"># Assuming rubygems is already required</span>
144
139
  </pre>
145
140
 
141
+ <h3 id="label-Convenience+methods">Convenience methods<span><a href="#label-Convenience+methods">&para;</a> <a href="#top">&uarr;</a></span></h3>
142
+
143
+ <p>Starting with version 3.4.0, the main data structure has been separated from the convenience methods that provide access to individual features of the <code>xlsx</code> format, in order to decrease the memory footprint. If you intend to use these features, you will need to additionally include the respective files:</p>
144
+
145
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods/cell&#39;</span>
146
+ <span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods/color&#39;</span>
147
+ <span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods/font&#39;</span>
148
+ <span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods/workbook&#39;</span>
149
+ <span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods/worksheet&#39;</span>
150
+ </pre>
151
+
152
+ <p>If you do not care about your RAM usage, just include them all at once by adding the following line to your code so it can continue operating just as before:</p>
153
+
154
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">&#39;rubyXL/convenience_methods&#39;</span>
155
+ </pre>
156
+
146
157
  <h3 id="label-Parsing+an+existing+workbook">Parsing an existing workbook<span><a href="#label-Parsing+an+existing+workbook">&para;</a> <a href="#top">&uarr;</a></span></h3>
147
158
 
148
159
  <pre class="ruby"><span class="ruby-identifier">workbook</span> = <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Parser</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-string">&quot;path/to/Excel/file.xlsx&quot;</span>)
@@ -159,14 +170,12 @@ preserving as much of the structure as possible.</p>
159
170
 
160
171
  <pre class="ruby"><span class="ruby-identifier">workbook</span>.<span class="ruby-identifier">worksheets</span>[<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns first worksheet</span>
161
172
  <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns first worksheet</span>
162
- <span class="ruby-identifier">workbook</span>[<span class="ruby-string">&#39;Sheet1&#39;</span>] <span class="ruby-comment"># Finds and returns worksheet titled &quot;Sheet1&quot;</span>
173
+ <span class="ruby-identifier">workbook</span>[<span class="ruby-string">&#39;Sheet1&#39;</span>] <span class="ruby-comment"># Finds and returns worksheet titled &quot;Sheet1&quot;. Note that sheet names in Excel are limited to 31 character.</span>
163
174
  </pre>
164
175
 
165
176
  <h4 id="label-Accessing+a+Row+-28Array+of+Cells-29">Accessing a Row (Array of Cells)<span><a href="#label-Accessing+a+Row+-28Array+of+Cells-29">&para;</a> <a href="#top">&uarr;</a></span></h4>
166
177
 
167
- <p>Please note that worksheet is a <em>sparse</em> array of rows. Your code
168
- <strong>must</strong> expect that any row it plucks from the array may be
169
- <code>nil</code>.</p>
178
+ <p>Please note that worksheet is a <em>sparse</em> array of rows. Your code <strong>must</strong> expect that any row it plucks from the array may be <code>nil</code>.</p>
170
179
 
171
180
  <pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
172
181
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_data</span>[<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns first row of the worksheet</span>
@@ -175,13 +184,20 @@ preserving as much of the structure as possible.</p>
175
184
 
176
185
  <h4 id="label-Accessing+a+Cell+object">Accessing a Cell object<span><a href="#label-Accessing+a+Cell+object">&para;</a> <a href="#top">&uarr;</a></span></h4>
177
186
 
178
- <p>Please note that row is a <em>sparse</em> array of cells. Your code
179
- <strong>must</strong> expect that any cell it plucks from the array may be
180
- <code>nil</code>.</p>
187
+ <p>Please note that row is a <em>sparse</em> array of cells. Your code <strong>must</strong> expect that any cell it plucks from the array may be <code>nil</code>.</p>
181
188
 
182
189
  <pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
183
190
  <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-comment"># Returns cell A1 in the worksheet</span>
184
191
  <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>] <span class="ruby-comment"># Returns cell A1 in the worksheet</span>
192
+
193
+ <span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
194
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">value</span> <span class="ruby-comment"># Returns a properly converted value in the cell (if the file claims that the cell</span>
195
+ <span class="ruby-comment"># is holding a number, returns a respective Integer or Float, and so on).</span>
196
+ </pre>
197
+
198
+ <p>Or, if you prefer Excel-style references (single-cell only!)</p>
199
+
200
+ <pre class="ruby"><span class="ruby-identifier">cell</span> = <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">cell_at</span>(<span class="ruby-string">&#39;B11&#39;</span>)
185
201
  </pre>
186
202
 
187
203
  <h4 id="label-Wrappers+for+accessing+Cell+properties">Wrappers for accessing Cell properties<span><a href="#label-Wrappers+for+accessing+Cell+properties">&para;</a> <a href="#top">&uarr;</a></span></h4>
@@ -194,15 +210,14 @@ preserving as much of the structure as possible.</p>
194
210
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">fill_color</span>
195
211
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">horizontal_alignment</span>
196
212
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">vertical_alignment</span>
197
- <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">get_border</span>(:<span class="ruby-identifier">top</span>)
198
- <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">get_border_color</span>(:<span class="ruby-identifier">top</span>)
213
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">get_border</span>(<span class="ruby-value">:top</span>)
214
+ <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">get_border_color</span>(<span class="ruby-value">:top</span>)
199
215
  <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">text_rotation</span>
200
216
  </pre>
201
217
 
202
218
  <h4 id="label-Wrappers+for+accessing+Row+properties+">Wrappers for accessing Row properties <span><a href="#label-Wrappers+for+accessing+Row+properties+">&para;</a> <a href="#top">&uarr;</a></span></h4>
203
219
 
204
- <p>Please note: these methods are being phased out in favor of the OOXML
205
- object model.</p>
220
+ <p>Please note: these methods are being phased out in favor of the OOXML object model.</p>
206
221
 
207
222
  <pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
208
223
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_fill</span>(<span class="ruby-value">0</span>)
@@ -213,14 +228,13 @@ object model.</p>
213
228
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_height</span>(<span class="ruby-value">0</span>)
214
229
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword">true</span>)
215
230
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-keyword">false</span>)
216
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_border</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">right</span>)
217
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_border_color</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">right</span>)
231
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_border</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:right</span>)
232
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_row_border_color</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:right</span>)
218
233
  </pre>
219
234
 
220
235
  <h4 id="label-Accessing+column+properties">Accessing column properties<span><a href="#label-Accessing+column+properties">&para;</a> <a href="#top">&uarr;</a></span></h4>
221
236
 
222
- <p>Please note: these methods are being phased out in favor of the OOXML
223
- object model.</p>
237
+ <p>Please note: these methods are being phased out in favor of the OOXML object model.</p>
224
238
 
225
239
  <pre class="ruby"><span class="ruby-identifier">worksheet</span> = <span class="ruby-identifier">workbook</span>[<span class="ruby-value">0</span>]
226
240
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_fill</span>(<span class="ruby-value">0</span>)
@@ -229,24 +243,10 @@ object model.</p>
229
243
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_font_color</span>(<span class="ruby-value">0</span>)
230
244
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">is_column_underlined</span>(<span class="ruby-value">0</span>)
231
245
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_width</span>(<span class="ruby-value">0</span>)
232
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_alignment</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">horizontal</span>)
233
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_alignment</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">vertical</span>)
234
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_border</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">right</span>)
235
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_border_color</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">right</span>)
236
- </pre>
237
-
238
- <h4 id="label-Table+reading">Table reading<span><a href="#label-Table+reading">&para;</a> <a href="#top">&uarr;</a></span></h4>
239
-
240
- <p>In order to discourage unnecessary reshuffling of data in memory, methods
241
- <code>extract_data</code> and <code>get_table</code> are being deprecated.
242
- You should access and iterate through rows and cells directly:</p>
243
-
244
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span>
245
- <span class="ruby-identifier">row</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">row</span>.<span class="ruby-identifier">cells</span>.<span class="ruby-identifier">each</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">cell</span><span class="ruby-operator">|</span>
246
- <span class="ruby-identifier">val</span> = <span class="ruby-identifier">cell</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">cell</span>.<span class="ruby-identifier">value</span>
247
- <span class="ruby-identifier">do_whatever_you_want</span>(<span class="ruby-identifier">val</span>)
248
- }
249
- }
246
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:horizontal</span>)
247
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_alignment</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:vertical</span>)
248
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_border</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:right</span>)
249
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">get_column_border_color</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:right</span>)
250
250
  </pre>
251
251
 
252
252
  <h3 id="label-Modifying">Modifying<span><a href="#label-Modifying">&para;</a> <a href="#top">&uarr;</a></span></h3>
@@ -258,7 +258,7 @@ You should access and iterate through rows and cells directly:</p>
258
258
 
259
259
  <h4 id="label-Renaming+Worksheets">Renaming Worksheets<span><a href="#label-Renaming+Worksheets">&para;</a> <a href="#top">&uarr;</a></span></h4>
260
260
 
261
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_name</span> = <span class="ruby-string">&#39;Cool New Name&#39;</span>
261
+ <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">sheet_name</span> = <span class="ruby-string">&#39;Cool New Name&#39;</span> <span class="ruby-comment"># Note that sheet name is limited to 31 characters by Excel.</span>
262
262
  </pre>
263
263
 
264
264
  <h4 id="label-Adding+Cells">Adding Cells<span><a href="#label-Adding+Cells">&para;</a> <a href="#top">&uarr;</a></span></h4>
@@ -290,53 +290,43 @@ You should access and iterate through rows and cells directly:</p>
290
290
 
291
291
  <pre class="ruby"><span class="ruby-comment"># Possible weights: hairline, thin, medium, thick</span>
292
292
  <span class="ruby-comment"># Possible &quot;directions&quot;: top, bottom, left, right, diagonal</span>
293
- <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_border</span>(:<span class="ruby-identifier">top</span>, <span class="ruby-string">&#39;thin&#39;</span>) <span class="ruby-comment"># Sets A1 to have a top, thin border</span>
294
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_border</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">left</span>, <span class="ruby-string">&#39;hairline&#39;</span>) <span class="ruby-comment"># Sets first row to have a left, hairline border</span>
295
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_border</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">diagonal</span>, <span class="ruby-string">&#39;medium&#39;</span>) <span class="ruby-comment"># Sets first column to have diagonal, medium border</span>
293
+ <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_border</span>(<span class="ruby-value">:top</span>, <span class="ruby-string">&#39;thin&#39;</span>) <span class="ruby-comment"># Sets A1 to have a top, thin border</span>
294
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_border</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:left</span>, <span class="ruby-string">&#39;hairline&#39;</span>) <span class="ruby-comment"># Sets first row to have a left, hairline border</span>
295
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_border</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:diagonal</span>, <span class="ruby-string">&#39;medium&#39;</span>) <span class="ruby-comment"># Sets first column to have diagonal, medium border</span>
296
296
 
297
297
  <span class="ruby-comment"># Set the border style first so there&#39;s something to color.</span>
298
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_border_color</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">top</span>, <span class="ruby-string">&#39;0ba53d&#39;</span>) <span class="ruby-comment"># Sets first row to have a green top border</span>
299
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_border_color</span>(<span class="ruby-value">0</span>, :<span class="ruby-identifier">top</span>, <span class="ruby-string">&#39;0ba53d&#39;</span>) <span class="ruby-comment"># Sets first column to have a green top border</span>
298
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_row_border_color</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:top</span>, <span class="ruby-string">&#39;0ba53d&#39;</span>) <span class="ruby-comment"># Sets first row to have a green top border</span>
299
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">change_column_border_color</span>(<span class="ruby-value">0</span>, <span class="ruby-value">:top</span>, <span class="ruby-string">&#39;0ba53d&#39;</span>) <span class="ruby-comment"># Sets first column to have a green top border</span>
300
300
  </pre>
301
301
 
302
302
  <h4 id="label-Changing+Alignment">Changing Alignment<span><a href="#label-Changing+Alignment">&para;</a> <a href="#top">&uarr;</a></span></h4>
303
303
 
304
304
  <h5 id="label-Horizontal">Horizontal<span><a href="#label-Horizontal">&para;</a> <a href="#top">&uarr;</a></span></h5>
305
305
 
306
- <p>center, distributed, justify, left, right</p>
307
-
308
- <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>
306
+ <pre class="ruby"><span class="ruby-comment"># Possible alignments: center, distributed, justify, left, right</span>
307
+ <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>
309
308
  <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>
310
309
  <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>
311
310
  </pre>
312
311
 
313
312
  <h5 id="label-Vertical">Vertical<span><a href="#label-Vertical">&para;</a> <a href="#top">&uarr;</a></span></h5>
314
313
 
315
- <p>bottom, center, distributed, top</p>
316
-
317
- <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>
314
+ <pre class="ruby"><span class="ruby-comment"># Possible alignments: bottom, center, distributed, top</span>
315
+ <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>
318
316
  <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>
319
317
  <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>
320
318
  </pre>
321
319
 
322
320
  <h5 id="label-Rotation">Rotation<span><a href="#label-Rotation">&para;</a> <a href="#top">&uarr;</a></span></h5>
323
321
 
324
- <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>
322
+ <pre class="ruby"><span class="ruby-comment"># Possible values:</span>
323
+ <span class="ruby-comment"># * 0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</span>
324
+ <span class="ruby-comment"># * 91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</span>
325
+ <span class="ruby-comment"># * 180-254 - degrees clockwise, around the bottom LEFT corner of the cell, text becomes progressively invisible</span>
326
+ <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>
327
+ <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>
325
328
  </pre>
326
329
 
327
- <p>Values:</p>
328
- <ul><li>
329
- <p>0-90 - degrees counterclockwise, around the bottom LEFT corner of the cell;</p>
330
- </li><li>
331
- <p>91-179 - degrees clockwise, around the bottom RIGHT corner of the cell;</p>
332
- </li><li>
333
- <p>180-254 - degrees clockwise, around the bottom LEFT corner of the cell,
334
- text becomes progressively invisible</p>
335
- </li><li>
336
- <p>255 - text is in normal rotation but displayed vertically (one letter under
337
- another), line feed starts new line to the right of the previous.</p>
338
- </li></ul>
339
-
340
330
  <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>
341
331
 
342
332
  <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>
@@ -354,74 +344,59 @@ another), line feed starts new line to the right of the previous.</p>
354
344
 
355
345
  <h4 id="label-Insert+Row">Insert Row<span><a href="#label-Insert+Row">&para;</a> <a href="#top">&uarr;</a></span></h4>
356
346
 
357
- <p>This method will insert a row at specified index, pushing all rows below it
358
- down. It also copies styles from row above.</p>
347
+ <p>This method will insert a row at specified index, pushing all rows below it down. It also copies styles from row above.</p>
359
348
 
360
- <p>WARNING: Use of this method WILL break formulas referencing cells which
361
- have been moved, as the formulas do not adapt to the shifted rows</p>
349
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted rows</p>
362
350
 
363
351
  <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_row</span>(<span class="ruby-value">1</span>)
364
352
  </pre>
365
353
 
366
354
  <h4 id="label-Insert+Column">Insert Column<span><a href="#label-Insert+Column">&para;</a> <a href="#top">&uarr;</a></span></h4>
367
355
 
368
- <p>This method will insert a column at specified index, pushing all columns to
369
- the right of it one to the right. It also copies styles from column to the
370
- left</p>
356
+ <p>This method will insert a column at specified index, pushing all columns to the right of it one to the right. It also copies styles from column to the left</p>
371
357
 
372
- <p>WARNING: Use of this method WILL break formulas referencing cells which
373
- have been moved, as the formulas do not adapt to the shifted columns</p>
358
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted columns</p>
374
359
 
375
360
  <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_column</span>(<span class="ruby-value">1</span>)
376
361
  </pre>
377
362
 
378
363
  <h4 id="label-Delete+Row">Delete Row<span><a href="#label-Delete+Row">&para;</a> <a href="#top">&uarr;</a></span></h4>
379
364
 
380
- <p>This method will delete a row at specified index, pushing all rows below it
381
- up.</p>
365
+ <p>This method will delete a row at specified index, pushing all rows below it up.</p>
382
366
 
383
- <p>WARNING: Use of this method WILL break formulas referencing cells which
384
- have been moved, as the formulas do not adapt to the shifted rows</p>
367
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted rows</p>
385
368
 
386
369
  <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_row</span>(<span class="ruby-value">1</span>)
387
370
  </pre>
388
371
 
389
372
  <h4 id="label-Delete+Column">Delete Column<span><a href="#label-Delete+Column">&para;</a> <a href="#top">&uarr;</a></span></h4>
390
373
 
391
- <p>This method will delete a column at specified index, pushing all columns to
392
- the right of it left.</p>
374
+ <p>This method will delete a column at specified index, pushing all columns to the right of it left.</p>
393
375
 
394
- <p>WARNING: Use of this method WILL break formulas referencing cells which
395
- have been moved, as the formulas do not adapt to the shifted columns</p>
376
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted columns</p>
396
377
 
397
378
  <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_column</span>(<span class="ruby-value">1</span>)
398
379
  </pre>
399
380
 
400
381
  <h4 id="label-Insert+Cell">Insert Cell<span><a href="#label-Insert+Cell">&para;</a> <a href="#top">&uarr;</a></span></h4>
401
382
 
402
- <p>This method will insert a cell at specified position. It takes a :right or
403
- :down option, to shift cells either left or down upon inserting (nil means
404
- replacing the cell)</p>
383
+ <p>This method will insert a cell at specified position. It takes a :right or :down option, to shift cells either left or down upon inserting (nil means replacing the cell)</p>
405
384
 
406
- <p>WARNING: Use of this method WILL break formulas referencing cells which
407
- have been moved, as the formulas do not adapt to the shifted cells</p>
385
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted cells</p>
408
386
 
409
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-string">&quot;blah&quot;</span>, <span class="ruby-identifier">formula</span> = <span class="ruby-keyword">nil</span>, :<span class="ruby-identifier">right</span>) <span class="ruby-comment"># Inserts cell at A1, shifts cells in first row right</span>
410
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-string">&quot;blah&quot;</span>, <span class="ruby-identifier">formula</span> = <span class="ruby-keyword">nil</span>, :<span class="ruby-identifier">down</span>) <span class="ruby-comment"># Inserts cell at A1, shifts cells in first column down</span>
387
+ <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-string">&quot;blah&quot;</span>, <span class="ruby-identifier">formula</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-value">:right</span>) <span class="ruby-comment"># Inserts cell at A1, shifts cells in first row right</span>
388
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-string">&quot;blah&quot;</span>, <span class="ruby-identifier">formula</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-value">:down</span>) <span class="ruby-comment"># Inserts cell at A1, shifts cells in first column down</span>
411
389
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">insert_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-string">&quot;blah&quot;</span>) <span class="ruby-comment"># Inserts cell at A1, shifts nothing</span>
412
390
  </pre>
413
391
 
414
392
  <h4 id="label-Delete+Cell">Delete Cell<span><a href="#label-Delete+Cell">&para;</a> <a href="#top">&uarr;</a></span></h4>
415
393
 
416
- <p>This method will delete a cell at specified position. It takes a :left or
417
- :up option, to shift cells either up or left upon deletion (nil means
418
- simply deleting the cell contents)</p>
394
+ <p>This method will delete a cell at specified position. It takes a :left or :up option, to shift cells either up or left upon deletion (nil means simply deleting the cell contents)</p>
419
395
 
420
- <p>WARNING: Use of this method WILL break formulas referencing cells which
421
- have been moved, as the formulas do not adapt to the shifted cells</p>
396
+ <p>WARNING: Use of this method WILL break formulas referencing cells which have been moved, as the formulas do not adapt to the shifted cells</p>
422
397
 
423
- <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, :<span class="ruby-identifier">left</span>) <span class="ruby-comment"># Deletes A1, shifts contents of first row left</span>
424
- <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, :<span class="ruby-identifier">up</span>) <span class="ruby-comment"># Deletes A1, shifts contents of first column up</span>
398
+ <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">:left</span>) <span class="ruby-comment"># Deletes A1, shifts contents of first row left</span>
399
+ <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>, <span class="ruby-value">:up</span>) <span class="ruby-comment"># Deletes A1, shifts contents of first column up</span>
425
400
  <span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">delete_cell</span>(<span class="ruby-value">0</span>, <span class="ruby-value">0</span>) <span class="ruby-comment"># Deletes A1, does not shift cells</span>
426
401
  </pre>
427
402
 
@@ -430,9 +405,16 @@ have been moved, as the formulas do not adapt to the shifted cells</p>
430
405
  <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>]
431
406
  <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>
432
407
  <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>
408
+ <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>
433
409
  <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>
434
410
  </pre>
435
411
 
412
+ <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>
413
+
414
+ <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>)
415
+ <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>)
416
+ </pre>
417
+
436
418
  <h2 id="label-I-2FO">I/O<span><a href="#label-I-2FO">&para;</a> <a href="#top">&uarr;</a></span></h2>
437
419
 
438
420
  <p>By default, the gem operates with files on the local filesystem:</p>
@@ -441,9 +423,7 @@ have been moved, as the formulas do not adapt to the shifted cells</p>
441
423
  <span class="ruby-identifier">workbook</span>.<span class="ruby-identifier">write</span>(<span class="ruby-string">&quot;path/to/desired/Excel/file.xlsx&quot;</span>)
442
424
  </pre>
443
425
 
444
- <p>It can also operate on <code>StringIO</code> objects, thus eliminating the
445
- need to save the <code>xlsx</code> file to disk. This capability comes in
446
- handy for web servers.</p>
426
+ <p>It can also operate on <code>StringIO</code> objects, thus eliminating the need to save the <code>xlsx</code> file to disk. This capability comes in handy for web servers.</p>
447
427
 
448
428
  <pre class="ruby"><span class="ruby-identifier">workbook</span> = <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Parser</span>.<span class="ruby-identifier">parse_buffer</span>(<span class="ruby-identifier">buffer</span>)
449
429
  <span class="ruby-identifier">workbook</span>.<span class="ruby-identifier">stream</span>
@@ -455,17 +435,25 @@ handy for web servers.</p>
455
435
  <span class="ruby-constant">RubyXL</span><span class="ruby-operator">::</span><span class="ruby-constant">Reference</span>.<span class="ruby-identifier">ref2ind</span>(<span class="ruby-string">&#39;A1&#39;</span>) <span class="ruby-operator">==</span> [<span class="ruby-value">0</span>, <span class="ruby-value">0</span>] <span class="ruby-comment"># Converts Excel-style cell reference to row and column index</span>
456
436
  </pre>
457
437
 
438
+ <h3 id="label-Suppress+warnings+about+malformed+input+files">Suppress warnings about malformed input files<span><a href="#label-Suppress+warnings+about+malformed+input+files">&para;</a> <a href="#top">&uarr;</a></span></h3>
439
+
440
+ <pre class="ruby"><span class="ruby-constant">RubyXL</span>.<span class="ruby-identifier">class_variable_set</span>(<span class="ruby-value">:@@suppress_warnings</span>, <span class="ruby-keyword">true</span>)
441
+ </pre>
442
+
443
+ <h2 id="label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">Data validation (colloquially referred to as “dropdown list”)<span><a href="#label-Data+validation+-28colloquially+referred+to+as+-22dropdown+list-22-29">&para;</a> <a href="#top">&uarr;</a></span></h2>
444
+
445
+ <pre class="ruby"><span class="ruby-identifier">worksheet</span>.<span class="ruby-identifier">add_validation_list</span>(<span class="ruby-string">&quot;A1&quot;</span>, [ <span class="ruby-string">&quot;value1&quot;</span>, <span class="ruby-string">&quot;value2&quot;</span> ])
446
+ </pre>
447
+
458
448
  <h2 id="label-For+more+information">For more information<span><a href="#label-For+more+information">&para;</a> <a href="#top">&uarr;</a></span></h2>
459
449
 
460
450
  <p>Take a look at the files in spec/lib/ for rspecs on most methods</p>
461
451
 
462
452
  <h2 id="label-Contributing+to+rubyXL">Contributing to rubyXL<span><a href="#label-Contributing+to+rubyXL">&para;</a> <a href="#top">&uarr;</a></span></h2>
463
453
  <ul><li>
464
- <p>Check out the latest master to make sure the feature hasn&#39;t been
465
- implemented or the bug hasn&#39;t been fixed yet</p>
454
+ <p>Check out the latest master to make sure the feature hasnt been implemented or the bug hasn’t been fixed yet</p>
466
455
  </li><li>
467
- <p>Check out the issue tracker to make sure someone already hasn&#39;t
468
- requested it and/or contributed it</p>
456
+ <p>Check out the issue tracker to make sure someone already hasnt requested it and/or contributed it</p>
469
457
  </li><li>
470
458
  <p>Fork the project</p>
471
459
  </li><li>
@@ -473,25 +461,22 @@ requested it and/or contributed it</p>
473
461
  </li><li>
474
462
  <p>Commit and push until you are happy with your contribution</p>
475
463
  </li><li>
476
- <p>Make sure to add tests for it. This is important so I don&#39;t break it in
477
- a future version unintentionally.</p>
464
+ <p>Make sure to add tests for it. This is important so I dont break it in a future version unintentionally.</p>
478
465
  </li><li>
479
- <p>Please try not to mess with the Rakefile, version, or history. If you want
480
- to have your own version, or is otherwise necessary, that is fine, but
481
- please isolate to its own commit so I can cherry-pick around it.</p>
466
+ <p>Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.</p>
482
467
  </li></ul>
483
468
 
484
469
  <h2 id="label-Copyright">Copyright<span><a href="#label-Copyright">&para;</a> <a href="#top">&uarr;</a></span></h2>
485
470
 
486
- <p>Copyright © 2011 Vivek Bhagwat, 2013-2016 Wesha. See LICENSE.txt for
487
- further details.</p>
471
+ <p>Copyright © 2011 Vivek Bhagwat, 2013-2022 Wesha. See LICENSE.txt for further details.</p>
472
+
488
473
  </main>
489
474
 
490
475
 
491
476
 
492
477
  <footer id="validator-badges" role="contentinfo">
493
- <p><a href="http://validator.w3.org/check/referer">Validate</a>
494
- <p>Generated by <a href="https://rdoc.github.io/rdoc">RDoc</a> 5.1.0.
478
+ <p><a href="https://validator.w3.org/check/referer">Validate</a>
479
+ <p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.
495
480
  <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
496
481
  </footer>
497
482