rubyXL 3.3.33 → 3.4.0

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 (390) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +12 -0
  3. data/VERSION +1 -1
  4. data/lib/rubyXL/convenience_methods.rb +5 -1301
  5. data/lib/rubyXL/convenience_methods/cell.rb +262 -0
  6. data/lib/rubyXL/convenience_methods/color.rb +158 -0
  7. data/lib/rubyXL/convenience_methods/font.rb +63 -0
  8. data/lib/rubyXL/convenience_methods/workbook.rb +136 -0
  9. data/lib/rubyXL/convenience_methods/worksheet.rb +618 -0
  10. data/lib/rubyXL/objects/color.rb +0 -3
  11. data/lib/rubyXL/objects/external_links.rb +1 -1
  12. data/lib/rubyXL/objects/font.rb +0 -3
  13. data/lib/rubyXL/objects/sheet_data.rb +0 -2
  14. data/lib/rubyXL/objects/workbook.rb +95 -2
  15. data/lib/rubyXL/objects/worksheet.rb +0 -2
  16. data/rdoc/README_rdoc.html +24 -1
  17. data/rdoc/RubyXL.html +21 -1
  18. data/rdoc/RubyXL/AExtension.html +1 -1
  19. data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
  20. data/rdoc/RubyXL/ActiveX.html +1 -1
  21. data/rdoc/RubyXL/ActiveXBinary.html +1 -1
  22. data/rdoc/RubyXL/AdjustHandleList.html +1 -1
  23. data/rdoc/RubyXL/Alignment.html +1 -1
  24. data/rdoc/RubyXL/AlternateContent.html +1 -1
  25. data/rdoc/RubyXL/Authors.html +1 -1
  26. data/rdoc/RubyXL/AutoFilter.html +1 -1
  27. data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
  28. data/rdoc/RubyXL/BinaryImageFile.html +1 -1
  29. data/rdoc/RubyXL/BodyProperties.html +1 -1
  30. data/rdoc/RubyXL/BooleanNode.html +1 -1
  31. data/rdoc/RubyXL/BooleanValue.html +1 -1
  32. data/rdoc/RubyXL/Border.html +1 -1
  33. data/rdoc/RubyXL/BorderEdge.html +1 -1
  34. data/rdoc/RubyXL/Borders.html +1 -1
  35. data/rdoc/RubyXL/Break.html +1 -1
  36. data/rdoc/RubyXL/BreakList.html +1 -1
  37. data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
  38. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
  39. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
  40. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
  41. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
  42. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
  43. data/rdoc/RubyXL/CT_Backdrop.html +1 -1
  44. data/rdoc/RubyXL/CT_Bevel.html +1 -1
  45. data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
  46. data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
  47. data/rdoc/RubyXL/CT_Blip.html +1 -1
  48. data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
  49. data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
  50. data/rdoc/RubyXL/CT_Camera.html +1 -1
  51. data/rdoc/RubyXL/CT_Color.html +1 -1
  52. data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
  53. data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
  54. data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
  55. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
  56. data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
  57. data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
  58. data/rdoc/RubyXL/CT_DashStop.html +1 -1
  59. data/rdoc/RubyXL/CT_DashStopList.html +1 -1
  60. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
  61. data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
  62. data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
  63. data/rdoc/RubyXL/CT_EffectList.html +1 -1
  64. data/rdoc/RubyXL/CT_EffectReference.html +1 -1
  65. data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
  66. data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
  67. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
  68. data/rdoc/RubyXL/CT_FillEffect.html +1 -1
  69. data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
  70. data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
  71. data/rdoc/RubyXL/CT_FlatText.html +1 -1
  72. data/rdoc/RubyXL/CT_FontCollection.html +1 -1
  73. data/rdoc/RubyXL/CT_FontReference.html +1 -1
  74. data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
  75. data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
  76. data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
  77. data/rdoc/RubyXL/CT_GradientStop.html +1 -1
  78. data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
  79. data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
  80. data/rdoc/RubyXL/CT_HslColor.html +1 -1
  81. data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
  82. data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
  83. data/rdoc/RubyXL/CT_LightRig.html +1 -1
  84. data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
  85. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
  86. data/rdoc/RubyXL/CT_LineProperties.html +1 -1
  87. data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
  88. data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
  89. data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
  90. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
  91. data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
  92. data/rdoc/RubyXL/CT_Path2D.html +1 -1
  93. data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
  94. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
  95. data/rdoc/RubyXL/CT_Path2DList.html +1 -1
  96. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
  97. data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
  98. data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
  99. data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
  100. data/rdoc/RubyXL/CT_Point3D.html +1 -1
  101. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
  102. data/rdoc/RubyXL/CT_PresetColor.html +1 -1
  103. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
  104. data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
  105. data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
  106. data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
  107. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
  108. data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
  109. data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
  110. data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
  111. data/rdoc/RubyXL/CT_Scene3D.html +1 -1
  112. data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
  113. data/rdoc/RubyXL/CT_Shape3D.html +1 -1
  114. data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
  115. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
  116. data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
  117. data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
  118. data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
  119. data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
  120. data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
  121. data/rdoc/RubyXL/CT_SystemColor.html +1 -1
  122. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
  123. data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
  124. data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
  125. data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
  126. data/rdoc/RubyXL/CT_TextFont.html +1 -1
  127. data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
  128. data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
  129. data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
  130. data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
  131. data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
  132. data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
  133. data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
  134. data/rdoc/RubyXL/CT_TintEffect.html +1 -1
  135. data/rdoc/RubyXL/CT_Transform2D.html +1 -1
  136. data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
  137. data/rdoc/RubyXL/CT_Vector3D.html +1 -1
  138. data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
  139. data/rdoc/RubyXL/CalculationChain.html +1 -1
  140. data/rdoc/RubyXL/CalculationChainCell.html +1 -1
  141. data/rdoc/RubyXL/CalculationProperties.html +1 -1
  142. data/rdoc/RubyXL/Cell.html +12 -16
  143. data/rdoc/RubyXL/CellConvenienceMethods.html +34 -34
  144. data/rdoc/RubyXL/CellExt.html +1 -1
  145. data/rdoc/RubyXL/CellSmartTag.html +1 -1
  146. data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
  147. data/rdoc/RubyXL/CellSmartTags.html +1 -1
  148. data/rdoc/RubyXL/CellStyle.html +1 -1
  149. data/rdoc/RubyXL/CellStyleXFs.html +1 -1
  150. data/rdoc/RubyXL/CellStyles.html +1 -1
  151. data/rdoc/RubyXL/CellValue.html +2 -2
  152. data/rdoc/RubyXL/CellWatch.html +1 -1
  153. data/rdoc/RubyXL/CellWatches.html +1 -1
  154. data/rdoc/RubyXL/CellXFs.html +1 -1
  155. data/rdoc/RubyXL/ChartColorsFile.html +1 -1
  156. data/rdoc/RubyXL/ChartFile.html +1 -1
  157. data/rdoc/RubyXL/ChartStyleFile.html +1 -1
  158. data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
  159. data/rdoc/RubyXL/Chartsheet.html +1 -1
  160. data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
  161. data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
  162. data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
  163. data/rdoc/RubyXL/ChartsheetView.html +1 -1
  164. data/rdoc/RubyXL/ChartsheetViews.html +1 -1
  165. data/rdoc/RubyXL/Color.html +2 -13
  166. data/rdoc/RubyXL/ColorConvenienceClasses.html +1 -1
  167. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +3 -3
  168. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +4 -4
  169. data/rdoc/RubyXL/ColorConvenienceMethods.html +2 -2
  170. data/rdoc/RubyXL/ColorFilter.html +1 -1
  171. data/rdoc/RubyXL/ColorScale.html +1 -1
  172. data/rdoc/RubyXL/ColorSet.html +1 -1
  173. data/rdoc/RubyXL/Colors.html +1 -1
  174. data/rdoc/RubyXL/ColumnRange.html +1 -1
  175. data/rdoc/RubyXL/ColumnRanges.html +1 -1
  176. data/rdoc/RubyXL/Comment.html +1 -1
  177. data/rdoc/RubyXL/CommentList.html +1 -1
  178. data/rdoc/RubyXL/CommentsFile.html +1 -1
  179. data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
  180. data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
  181. data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
  182. data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
  183. data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
  184. data/rdoc/RubyXL/ContentTypes.html +1 -1
  185. data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
  186. data/rdoc/RubyXL/CorePropertiesFile.html +1 -1
  187. data/rdoc/RubyXL/CustomColor.html +1 -1
  188. data/rdoc/RubyXL/CustomColorList.html +1 -1
  189. data/rdoc/RubyXL/CustomFilter.html +1 -1
  190. data/rdoc/RubyXL/CustomFilters.html +1 -1
  191. data/rdoc/RubyXL/CustomGeometry.html +1 -1
  192. data/rdoc/RubyXL/CustomProperties.html +1 -1
  193. data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
  194. data/rdoc/RubyXL/CustomProperty.html +1 -1
  195. data/rdoc/RubyXL/CustomPropertyFile.html +1 -1
  196. data/rdoc/RubyXL/CustomSheetView.html +1 -1
  197. data/rdoc/RubyXL/CustomSheetViews.html +1 -1
  198. data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
  199. data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
  200. data/rdoc/RubyXL/CustomXMLFile.html +1 -1
  201. data/rdoc/RubyXL/DXF.html +1 -1
  202. data/rdoc/RubyXL/DXFs.html +1 -1
  203. data/rdoc/RubyXL/DataBar.html +1 -1
  204. data/rdoc/RubyXL/DataConsolidate.html +1 -1
  205. data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
  206. data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
  207. data/rdoc/RubyXL/DataType.html +1 -1
  208. data/rdoc/RubyXL/DataValidation.html +1 -1
  209. data/rdoc/RubyXL/DataValidations.html +1 -1
  210. data/rdoc/RubyXL/DateGroupItem.html +1 -1
  211. data/rdoc/RubyXL/DefinedName.html +1 -1
  212. data/rdoc/RubyXL/DefinedNameExt.html +1 -1
  213. data/rdoc/RubyXL/DefinedNames.html +1 -1
  214. data/rdoc/RubyXL/DefinedNamesExt.html +1 -1
  215. data/rdoc/RubyXL/DocumentPropertiesFile.html +1 -1
  216. data/rdoc/RubyXL/DrawingFile.html +1 -1
  217. data/rdoc/RubyXL/DynamicFilter.html +1 -1
  218. data/rdoc/RubyXL/EmbeddedControl.html +1 -1
  219. data/rdoc/RubyXL/EmbeddedControls.html +1 -1
  220. data/rdoc/RubyXL/Extension.html +1 -1
  221. data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
  222. data/rdoc/RubyXL/Extents.html +1 -1
  223. data/rdoc/RubyXL/ExternalBook.html +1 -1
  224. data/rdoc/RubyXL/ExternalLinksFile.html +1 -1
  225. data/rdoc/RubyXL/ExternalReference.html +1 -1
  226. data/rdoc/RubyXL/ExternalReferences.html +1 -1
  227. data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
  228. data/rdoc/RubyXL/FieldItem.html +1 -1
  229. data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
  230. data/rdoc/RubyXL/FileSharing.html +1 -1
  231. data/rdoc/RubyXL/FileVersion.html +1 -1
  232. data/rdoc/RubyXL/Fill.html +1 -1
  233. data/rdoc/RubyXL/Fills.html +1 -1
  234. data/rdoc/RubyXL/FilterContainer.html +1 -1
  235. data/rdoc/RubyXL/FloatNode.html +1 -1
  236. data/rdoc/RubyXL/FloatValue.html +1 -1
  237. data/rdoc/RubyXL/Font.html +3 -14
  238. data/rdoc/RubyXL/FontConvenienceMethods.html +15 -15
  239. data/rdoc/RubyXL/FontScheme.html +1 -1
  240. data/rdoc/RubyXL/Fonts.html +2 -2
  241. data/rdoc/RubyXL/Formula.html +1 -1
  242. data/rdoc/RubyXL/FunctionGroup.html +1 -1
  243. data/rdoc/RubyXL/FunctionGroups.html +1 -1
  244. data/rdoc/RubyXL/GenericStorageObject.html +1 -1
  245. data/rdoc/RubyXL/GradientFill.html +1 -1
  246. data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
  247. data/rdoc/RubyXL/Hyperlink.html +1 -1
  248. data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
  249. data/rdoc/RubyXL/Hyperlinks.html +1 -1
  250. data/rdoc/RubyXL/IconFilter.html +1 -1
  251. data/rdoc/RubyXL/IconSet.html +1 -1
  252. data/rdoc/RubyXL/IgnoredError.html +1 -1
  253. data/rdoc/RubyXL/IgnoredErrors.html +1 -1
  254. data/rdoc/RubyXL/IndexedColors.html +1 -1
  255. data/rdoc/RubyXL/InputCells.html +1 -1
  256. data/rdoc/RubyXL/IntegerNode.html +1 -1
  257. data/rdoc/RubyXL/IntegerValue.html +1 -1
  258. data/rdoc/RubyXL/LegacyCell.html +1 -1
  259. data/rdoc/RubyXL/LegacyWorksheet.html +1 -1
  260. data/rdoc/RubyXL/MRUColors.html +1 -1
  261. data/rdoc/RubyXL/MacrosFile.html +1 -1
  262. data/rdoc/RubyXL/MergedCell.html +1 -1
  263. data/rdoc/RubyXL/MergedCells.html +1 -1
  264. data/rdoc/RubyXL/NumFmt.html +1 -1
  265. data/rdoc/RubyXL/NumberFormat.html +1 -1
  266. data/rdoc/RubyXL/NumberFormats.html +1 -1
  267. data/rdoc/RubyXL/OLEObject.html +1 -1
  268. data/rdoc/RubyXL/OLEObjectFile.html +1 -1
  269. data/rdoc/RubyXL/OLEObjects.html +1 -1
  270. data/rdoc/RubyXL/OLESize.html +1 -1
  271. data/rdoc/RubyXL/OOXMLContainerObject.html +1 -1
  272. data/rdoc/RubyXL/OOXMLIgnored.html +1 -1
  273. data/rdoc/RubyXL/OOXMLObject.html +1 -1
  274. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +1 -1
  275. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +1 -1
  276. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +1 -1
  277. data/rdoc/RubyXL/OOXMLTopLevelObject.html +1 -1
  278. data/rdoc/RubyXL/Offset.html +1 -1
  279. data/rdoc/RubyXL/OutlineProperties.html +1 -1
  280. data/rdoc/RubyXL/PageMargins.html +1 -1
  281. data/rdoc/RubyXL/PageSetup.html +1 -1
  282. data/rdoc/RubyXL/PageSetupProperties.html +1 -1
  283. data/rdoc/RubyXL/Pane.html +1 -1
  284. data/rdoc/RubyXL/Parser.html +1 -1
  285. data/rdoc/RubyXL/PatternFill.html +1 -1
  286. data/rdoc/RubyXL/PhoneticProperties.html +1 -1
  287. data/rdoc/RubyXL/PhoneticRun.html +1 -1
  288. data/rdoc/RubyXL/PivotArea.html +1 -1
  289. data/rdoc/RubyXL/PivotCache.html +1 -1
  290. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
  291. data/rdoc/RubyXL/PivotCacheRecordsFile.html +1 -1
  292. data/rdoc/RubyXL/PivotCaches.html +1 -1
  293. data/rdoc/RubyXL/PivotReference.html +1 -1
  294. data/rdoc/RubyXL/PivotReferences.html +1 -1
  295. data/rdoc/RubyXL/PivotTableFile.html +1 -1
  296. data/rdoc/RubyXL/PivotTableSelection.html +1 -1
  297. data/rdoc/RubyXL/PresetGeometry.html +1 -1
  298. data/rdoc/RubyXL/PrintOptions.html +1 -1
  299. data/rdoc/RubyXL/PrinterSettingsFile.html +1 -1
  300. data/rdoc/RubyXL/ProtectedRange.html +1 -1
  301. data/rdoc/RubyXL/ProtectedRanges.html +1 -1
  302. data/rdoc/RubyXL/Protection.html +1 -1
  303. data/rdoc/RubyXL/RID.html +1 -1
  304. data/rdoc/RubyXL/RawOOXML.html +1 -1
  305. data/rdoc/RubyXL/Reference.html +1 -1
  306. data/rdoc/RubyXL/Relationship.html +1 -1
  307. data/rdoc/RubyXL/RelationshipSupport.html +1 -1
  308. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +1 -1
  309. data/rdoc/RubyXL/RevisionPointer.html +1 -1
  310. data/rdoc/RubyXL/RichText.html +1 -1
  311. data/rdoc/RubyXL/RichTextRun.html +1 -1
  312. data/rdoc/RubyXL/Row.html +10 -10
  313. data/rdoc/RubyXL/RowExt.html +1 -1
  314. data/rdoc/RubyXL/RunProperties.html +1 -1
  315. data/rdoc/RubyXL/Scenario.html +1 -1
  316. data/rdoc/RubyXL/Scenarios.html +1 -1
  317. data/rdoc/RubyXL/Selection.html +2 -2
  318. data/rdoc/RubyXL/ShapeGuide.html +1 -1
  319. data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
  320. data/rdoc/RubyXL/SharedStringsTable.html +1 -1
  321. data/rdoc/RubyXL/Sheet.html +1 -1
  322. data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
  323. data/rdoc/RubyXL/SheetData.html +3 -3
  324. data/rdoc/RubyXL/SheetDataExt.html +1 -1
  325. data/rdoc/RubyXL/SheetDataSet.html +1 -1
  326. data/rdoc/RubyXL/SheetName.html +1 -1
  327. data/rdoc/RubyXL/SheetNames.html +1 -1
  328. data/rdoc/RubyXL/Sheets.html +1 -1
  329. data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
  330. data/rdoc/RubyXL/SlicerFile.html +1 -1
  331. data/rdoc/RubyXL/SmartTagProperties.html +1 -1
  332. data/rdoc/RubyXL/SmartTagType.html +1 -1
  333. data/rdoc/RubyXL/SmartTagTypes.html +1 -1
  334. data/rdoc/RubyXL/SmartTags.html +1 -1
  335. data/rdoc/RubyXL/SortCondition.html +1 -1
  336. data/rdoc/RubyXL/SortState.html +1 -1
  337. data/rdoc/RubyXL/Sqref.html +1 -1
  338. data/rdoc/RubyXL/Stop.html +1 -1
  339. data/rdoc/RubyXL/StringNode.html +1 -1
  340. data/rdoc/RubyXL/StringNodeW3C.html +1 -1
  341. data/rdoc/RubyXL/StringValue.html +1 -1
  342. data/rdoc/RubyXL/Stylesheet.html +1 -1
  343. data/rdoc/RubyXL/TableFile.html +1 -1
  344. data/rdoc/RubyXL/TableParts.html +1 -1
  345. data/rdoc/RubyXL/TableStyle.html +1 -1
  346. data/rdoc/RubyXL/TableStyles.html +1 -1
  347. data/rdoc/RubyXL/Text.html +1 -1
  348. data/rdoc/RubyXL/Theme.html +1 -1
  349. data/rdoc/RubyXL/ThemeElements.html +1 -1
  350. data/rdoc/RubyXL/ThumbnailFile.html +1 -1
  351. data/rdoc/RubyXL/Top10.html +1 -1
  352. data/rdoc/RubyXL/VMLDrawingFile.html +1 -1
  353. data/rdoc/RubyXL/Variant.html +1 -1
  354. data/rdoc/RubyXL/Vector.html +1 -1
  355. data/rdoc/RubyXL/VectorValue.html +1 -1
  356. data/rdoc/RubyXL/VisualProperties.html +1 -1
  357. data/rdoc/RubyXL/WebPublishObject.html +1 -1
  358. data/rdoc/RubyXL/WebPublishObjects.html +1 -1
  359. data/rdoc/RubyXL/WebPublishingItem.html +1 -1
  360. data/rdoc/RubyXL/WebPublishingItems.html +1 -1
  361. data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
  362. data/rdoc/RubyXL/Workbook.html +664 -14
  363. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +54 -640
  364. data/rdoc/RubyXL/WorkbookProperties.html +1 -1
  365. data/rdoc/RubyXL/WorkbookProtection.html +1 -1
  366. data/rdoc/RubyXL/WorkbookRoot.html +1 -1
  367. data/rdoc/RubyXL/WorkbookView.html +1 -1
  368. data/rdoc/RubyXL/WorkbookViews.html +1 -1
  369. data/rdoc/RubyXL/Worksheet.html +5 -9
  370. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +69 -69
  371. data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
  372. data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
  373. data/rdoc/RubyXL/WorksheetProperties.html +1 -1
  374. data/rdoc/RubyXL/WorksheetProtection.html +1 -1
  375. data/rdoc/RubyXL/WorksheetView.html +1 -1
  376. data/rdoc/RubyXL/WorksheetViews.html +1 -1
  377. data/rdoc/RubyXL/XF.html +1 -1
  378. data/rdoc/created.rid +14 -9
  379. data/rdoc/index.html +2 -2
  380. data/rdoc/js/navigation.js.gz +0 -0
  381. data/rdoc/js/search_index.js +1 -1
  382. data/rdoc/js/search_index.js.gz +0 -0
  383. data/rdoc/js/searcher.js.gz +0 -0
  384. data/rdoc/table_of_contents.html +49 -38
  385. data/rubyXL.gemspec +8 -3
  386. data/spec/lib/cell_spec.rb +2 -0
  387. data/spec/lib/color_spec.rb +1 -0
  388. data/spec/lib/workbook_spec.rb +11 -0
  389. data/spec/lib/worksheet_spec.rb +1 -0
  390. metadata +7 -2
@@ -0,0 +1,262 @@
1
+ module RubyXL
2
+ module CellConvenienceMethods
3
+
4
+ def change_contents(data, formula_expression = nil)
5
+ validate_worksheet
6
+
7
+ if formula_expression then
8
+ self.datatype = nil
9
+ self.formula = RubyXL::Formula.new(:expression => formula_expression)
10
+ else
11
+ self.datatype = case data
12
+ when Date, Numeric then nil
13
+ else RubyXL::DataType::RAW_STRING
14
+ end
15
+ end
16
+
17
+ data = workbook.date_to_num(data) if data.is_a?(Date)
18
+
19
+ self.raw_value = data
20
+ end
21
+
22
+ def get_border(direction)
23
+ validate_worksheet
24
+ get_cell_border.get_edge_style(direction)
25
+ end
26
+
27
+ def get_border_color(direction)
28
+ validate_worksheet
29
+ get_cell_border.get_edge_color(direction)
30
+ end
31
+
32
+ def change_horizontal_alignment(alignment = 'center')
33
+ validate_worksheet
34
+ self.style_index = workbook.modify_alignment(self.style_index) { |a| a.horizontal = alignment }
35
+ end
36
+
37
+ def change_vertical_alignment(alignment = 'center')
38
+ validate_worksheet
39
+ self.style_index = workbook.modify_alignment(self.style_index) { |a| a.vertical = alignment }
40
+ end
41
+
42
+ def change_text_wrap(wrap = false)
43
+ validate_worksheet
44
+ self.style_index = workbook.modify_alignment(self.style_index) { |a| a.wrap_text = wrap }
45
+ end
46
+
47
+ def change_text_rotation(rot)
48
+ validate_worksheet
49
+ self.style_index = workbook.modify_alignment(self.style_index) { |a| a.text_rotation = rot }
50
+ end
51
+
52
+ def change_text_indent(indent)
53
+ validate_worksheet
54
+ self.style_index = workbook.modify_alignment(self.style_index) { |a| a.indent = indent }
55
+ end
56
+
57
+ def change_border(direction, weight)
58
+ validate_worksheet
59
+ self.style_index = workbook.modify_border(self.style_index, direction, weight)
60
+ end
61
+
62
+ def change_border_color(direction, color)
63
+ validate_worksheet
64
+ Color.validate_color(color)
65
+ self.style_index = workbook.modify_border_color(self.style_index, direction, color)
66
+ end
67
+
68
+ def is_italicized()
69
+ validate_worksheet
70
+ get_cell_font.is_italic
71
+ end
72
+
73
+ def is_bolded()
74
+ validate_worksheet
75
+ get_cell_font.is_bold
76
+ end
77
+
78
+ def is_underlined()
79
+ validate_worksheet
80
+ get_cell_font.is_underlined
81
+ end
82
+
83
+ def is_struckthrough()
84
+ validate_worksheet
85
+ get_cell_font.is_strikethrough
86
+ end
87
+
88
+ def font_name()
89
+ validate_worksheet
90
+ get_cell_font.get_name
91
+ end
92
+
93
+ def font_size()
94
+ validate_worksheet
95
+ get_cell_font.get_size
96
+ end
97
+
98
+ def font_color()
99
+ validate_worksheet
100
+ get_cell_font.get_rgb_color || '000000'
101
+ end
102
+
103
+ def fill_color()
104
+ validate_worksheet
105
+ return workbook.get_fill_color(get_cell_xf)
106
+ end
107
+
108
+ def horizontal_alignment()
109
+ validate_worksheet
110
+ xf_obj = get_cell_xf
111
+ return nil if xf_obj.alignment.nil?
112
+ xf_obj.alignment.horizontal
113
+ end
114
+
115
+ def vertical_alignment()
116
+ validate_worksheet
117
+ xf_obj = get_cell_xf
118
+ return nil if xf_obj.alignment.nil?
119
+ xf_obj.alignment.vertical
120
+ end
121
+
122
+ def text_wrap()
123
+ validate_worksheet
124
+ xf_obj = get_cell_xf
125
+ return nil if xf_obj.alignment.nil?
126
+ xf_obj.alignment.wrap_text
127
+ end
128
+
129
+ def text_rotation
130
+ validate_worksheet
131
+ xf_obj = get_cell_xf
132
+ return nil if xf_obj.alignment.nil?
133
+ xf_obj.alignment.text_rotation
134
+ end
135
+
136
+ def text_indent()
137
+ validate_worksheet
138
+ xf_obj = get_cell_xf
139
+ return nil if xf_obj.alignment.nil?
140
+ xf_obj.alignment.indent
141
+ end
142
+
143
+ def set_number_format(format_code)
144
+ new_xf = get_cell_xf.dup
145
+ new_xf.num_fmt_id = workbook.stylesheet.register_number_format(format_code)
146
+ new_xf.apply_number_format = true
147
+ self.style_index = workbook.register_new_xf(new_xf)
148
+ end
149
+
150
+ # Changes fill color of cell
151
+ def change_fill(rgb = 'ffffff')
152
+ validate_worksheet
153
+ Color.validate_color(rgb)
154
+ self.style_index = workbook.modify_fill(self.style_index, rgb)
155
+ end
156
+
157
+ # Changes font name of cell
158
+ def change_font_name(new_font_name = 'Verdana')
159
+ validate_worksheet
160
+
161
+ font = get_cell_font.dup
162
+ font.set_name(new_font_name)
163
+ update_font_references(font)
164
+ end
165
+
166
+ # Changes font size of cell
167
+ def change_font_size(font_size = 10)
168
+ validate_worksheet
169
+ raise 'Argument must be a number' unless font_size.is_a?(Integer) || font_size.is_a?(Float)
170
+
171
+ font = get_cell_font.dup
172
+ font.set_size(font_size)
173
+ update_font_references(font)
174
+ end
175
+
176
+ # Changes font color of cell
177
+ def change_font_color(font_color = '000000')
178
+ validate_worksheet
179
+ Color.validate_color(font_color)
180
+
181
+ font = get_cell_font.dup
182
+ font.set_rgb_color(font_color)
183
+ update_font_references(font)
184
+ end
185
+
186
+ # Changes font italics settings of cell
187
+ def change_font_italics(italicized = false)
188
+ validate_worksheet
189
+
190
+ font = get_cell_font.dup
191
+ font.set_italic(italicized)
192
+ update_font_references(font)
193
+ end
194
+
195
+ # Changes font bold settings of cell
196
+ def change_font_bold(bolded = false)
197
+ validate_worksheet
198
+
199
+ font = get_cell_font.dup
200
+ font.set_bold(bolded)
201
+ update_font_references(font)
202
+ end
203
+
204
+ # Changes font underline settings of cell
205
+ def change_font_underline(underlined = false)
206
+ validate_worksheet
207
+
208
+ font = get_cell_font.dup
209
+ font.set_underline(underlined)
210
+ update_font_references(font)
211
+ end
212
+
213
+ def change_font_strikethrough(struckthrough = false)
214
+ validate_worksheet
215
+
216
+ font = get_cell_font.dup
217
+ font.set_strikethrough(struckthrough)
218
+ update_font_references(font)
219
+ end
220
+
221
+ # Helper method to update the font array and xf array
222
+ def update_font_references(modified_font)
223
+ xf = workbook.register_new_font(modified_font, get_cell_xf)
224
+ self.style_index = workbook.register_new_xf(xf)
225
+ end
226
+ private :update_font_references
227
+
228
+ # Performs correct modification based on what type of change_type is specified
229
+ def font_switch(change_type, arg)
230
+ case change_type
231
+ when Worksheet::NAME then change_font_name(arg)
232
+ when Worksheet::SIZE then change_font_size(arg)
233
+ when Worksheet::COLOR then change_font_color(arg)
234
+ when Worksheet::ITALICS then change_font_italics(arg)
235
+ when Worksheet::BOLD then change_font_bold(arg)
236
+ when Worksheet::UNDERLINE then change_font_underline(arg)
237
+ when Worksheet::STRIKETHROUGH then change_font_strikethrough(arg)
238
+ else raise 'Invalid change_type'
239
+ end
240
+ end
241
+
242
+ =begin
243
+ def add_hyperlink(l)
244
+ worksheet.hyperlinks ||= RubyXL::Hyperlinks.new
245
+ worksheet.hyperlinks << RubyXL::Hyperlink.new(:ref => self.r, :location => l)
246
+ # define_attribute(:'r:id', :string)
247
+ # define_attribute(:location, :string)
248
+ # define_attribute(:tooltip, :string)
249
+ # define_attribute(:display, :string)
250
+
251
+ end
252
+
253
+ def add_shared_string(str)
254
+ self.datatype = RubyXL::DataType::SHARED_STRING
255
+ self.raw_value = @workbook.shared_strings_container.add(str)
256
+ end
257
+ =end
258
+
259
+ end
260
+
261
+ RubyXL::Cell.include(RubyXL::CellConvenienceMethods)
262
+ end
@@ -0,0 +1,158 @@
1
+ module RubyXL
2
+ module ColorConvenienceMethods
3
+
4
+ def get_rgb(workbook)
5
+ if rgb then
6
+ return rgb
7
+ elsif theme then
8
+ theme_color = workbook.theme.get_theme_color(theme)
9
+ rgb_color = theme_color && theme_color.a_srgb_clr
10
+ color_value = rgb_color && rgb_color.val
11
+ return nil if color_value.nil?
12
+
13
+ RubyXL::RgbColor.parse(color_value).to_hls.apply_tint(tint).to_rgb.to_s
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ module ColorConvenienceClasses
20
+ # https://ciintelligence.blogspot.com/2012/02/converting-excel-theme-color-and-tint.html
21
+ class RgbColor
22
+ attr_accessor :r, :g, :b, :a
23
+
24
+ def to_hls
25
+ hls_color = HlsColor.new
26
+
27
+ # Note that we are overriding accessors with local vars here:
28
+ r = self.r / 255.0
29
+ g = self.g / 255.0
30
+ b = self.b / 255.0
31
+
32
+ hls_color.a = (self.a || 0) / 255.0
33
+
34
+ min = [r, g, b].min
35
+ max = [r, g, b].max
36
+ delta = max - min
37
+
38
+ if (max == min) then
39
+ hls_color.h = hls_color.s = 0
40
+ hls_color.l = max
41
+ return hls_color
42
+ end
43
+
44
+ hls_color.l = (min + max) / 2
45
+
46
+ if (hls_color.l < 0.5) then
47
+ hls_color.s = delta / (max + min);
48
+ else
49
+ hls_color.s = delta / (2.0 - max - min);
50
+ end
51
+
52
+ hls_color.h = (g - b) / delta if (r == max)
53
+ hls_color.h = 2.0 + (b - r) / delta if (g == max)
54
+ hls_color.h = 4.0 + (r - g) / delta if (b == max)
55
+
56
+ hls_color.h *= 60;
57
+ hls_color.h += 360 if hls_color.h < 0
58
+
59
+ hls_color
60
+ end
61
+
62
+ def self.parse(str)
63
+ r, g, b, a = str.unpack("A2A2A2A2")
64
+
65
+ rgb_color = RgbColor.new
66
+ rgb_color.r = r && r.to_i(16)
67
+ rgb_color.g = g && g.to_i(16)
68
+ rgb_color.b = b && b.to_i(16)
69
+ rgb_color.a = a && a.to_i(16)
70
+
71
+ rgb_color
72
+ end
73
+
74
+ def to_s
75
+ str = r.to_s(16) + g.to_s(16) + b.to_s(16)
76
+ str += a.to_s(16) if a && a != 0
77
+ str
78
+ end
79
+
80
+ end
81
+
82
+ class HlsColor
83
+ attr_accessor :h, :l, :s, :a
84
+
85
+ def to_rgb
86
+ rgb_color = RgbColor.new
87
+
88
+ r = g = b = l
89
+
90
+ if s != 0 then
91
+ t1 = nil
92
+
93
+ if l < 0.5 then
94
+ t1 = l * (1.0 + s)
95
+ else
96
+ t1 = l + s - (l * s)
97
+ end
98
+
99
+ t2 = 2.0 * l - t1;
100
+ h = self.h / 360.0
101
+
102
+ t_r = h + (1.0 / 3.0)
103
+ r = set_color(t1, t2, t_r)
104
+
105
+ t_g = h;
106
+ g = set_color(t1, t2, t_g)
107
+
108
+ t_b = h - (1.0 / 3.0);
109
+ b = set_color(t1, t2, t_b)
110
+ end
111
+
112
+ rgb_color.r = (r * 255).round(0).to_i
113
+ rgb_color.g = (g * 255).round(0).to_i
114
+ rgb_color.b = (b * 255).round(0).to_i
115
+
116
+ rgb_color.a = (a * 255).round(0).to_i
117
+
118
+ rgb_color
119
+ end
120
+
121
+ def set_color(t1, t2, t3)
122
+ color = 0
123
+
124
+ t3 += 1.0 if (t3 < 0)
125
+ t3 -= 1.0 if (t3 > 1)
126
+
127
+ if (6.0 * t3 < 1) then
128
+ color = t2 + (t1 - t2) * 6.0 * t3;
129
+ elsif (2.0 * t3 < 1) then
130
+ color = t1;
131
+ elsif (3.0 * t3 < 2) then
132
+ color = t2 + (t1 - t2) * ((2.0 / 3.0) - t3) * 6.0;
133
+ else
134
+ color = t2;
135
+ end
136
+
137
+ color
138
+ end
139
+ private :set_color
140
+
141
+ def apply_tint(tint)
142
+ return self if tint.nil? || tint == 0
143
+
144
+ if tint < 0 then
145
+ self.l = l * (1.0 + tint);
146
+ else
147
+ self.l = l * (1.0 - tint) + tint;
148
+ end
149
+
150
+ self
151
+ end
152
+
153
+ end
154
+ end
155
+
156
+ RubyXL::Color.include(RubyXL::ColorConvenienceMethods)
157
+ include(RubyXL::ColorConvenienceClasses)
158
+ end
@@ -0,0 +1,63 @@
1
+ module RubyXL
2
+ module FontConvenienceMethods
3
+ # Funny enough, but presence of <i> without value (equivalent to `val == nul`) means "italic = true"!
4
+ # Same is true for bold, strikethrough, etc
5
+ def is_italic
6
+ i && (i.val != false)
7
+ end
8
+
9
+ def is_bold
10
+ b && (b.val != false)
11
+ end
12
+
13
+ def is_underlined
14
+ u && (u.val != false)
15
+ end
16
+
17
+ def is_strikethrough
18
+ strike && (strike.val != false)
19
+ end
20
+
21
+ def get_name
22
+ name && name.val
23
+ end
24
+
25
+ def get_size
26
+ sz && sz.val
27
+ end
28
+
29
+ def get_rgb_color
30
+ color && color.rgb
31
+ end
32
+
33
+ def set_italic(val)
34
+ self.i = RubyXL::BooleanValue.new(:val => val)
35
+ end
36
+
37
+ def set_bold(val)
38
+ self.b = RubyXL::BooleanValue.new(:val => val)
39
+ end
40
+
41
+ def set_underline(val)
42
+ self.u = RubyXL::BooleanValue.new(:val => val)
43
+ end
44
+
45
+ def set_strikethrough(val)
46
+ self.strike = RubyXL::BooleanValue.new(:val => val)
47
+ end
48
+
49
+ def set_name(val)
50
+ self.name = RubyXL::StringValue.new(:val => val)
51
+ end
52
+
53
+ def set_size(val)
54
+ self.sz = RubyXL::FloatValue.new(:val => val)
55
+ end
56
+
57
+ def set_rgb_color(font_color)
58
+ self.color = RubyXL::Color.new(:rgb => font_color.to_s)
59
+ end
60
+ end
61
+
62
+ RubyXL::Font.include(RubyXL::FontConvenienceMethods)
63
+ end