rubyXL 3.3.22 → 3.4.25

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 (465) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +60 -0
  3. data/.codeclimate.yml +3 -0
  4. data/Gemfile +9 -8
  5. data/Gemfile.lock +124 -0
  6. data/LICENSE.txt +1 -1
  7. data/README.rdoc +54 -18
  8. data/Rakefile +29 -29
  9. data/VERSION +1 -1
  10. data/lib/rubyXL/cell.rb +3 -30
  11. data/lib/rubyXL/convenience_methods/cell.rb +276 -0
  12. data/lib/rubyXL/convenience_methods/color.rb +156 -0
  13. data/lib/rubyXL/convenience_methods/font.rb +63 -0
  14. data/lib/rubyXL/convenience_methods/workbook.rb +141 -0
  15. data/lib/rubyXL/convenience_methods/worksheet.rb +714 -0
  16. data/lib/rubyXL/convenience_methods.rb +5 -1045
  17. data/lib/rubyXL/objects/border.rb +2 -5
  18. data/lib/rubyXL/objects/calculation_chain.rb +4 -4
  19. data/lib/rubyXL/objects/cell_style.rb +9 -11
  20. data/lib/rubyXL/objects/chartsheet.rb +15 -19
  21. data/lib/rubyXL/objects/color.rb +7 -7
  22. data/lib/rubyXL/objects/column_range.rb +10 -13
  23. data/lib/rubyXL/objects/comments.rb +5 -8
  24. data/lib/rubyXL/objects/connection.rb +175 -0
  25. data/lib/rubyXL/objects/container_nodes.rb +3 -7
  26. data/lib/rubyXL/objects/content_types.rb +5 -8
  27. data/lib/rubyXL/objects/data_validation.rb +4 -4
  28. data/lib/rubyXL/objects/document_properties.rb +12 -16
  29. data/lib/rubyXL/objects/extensions.rb +19 -4
  30. data/lib/rubyXL/objects/external_links.rb +30 -8
  31. data/lib/rubyXL/objects/fill.rb +6 -9
  32. data/lib/rubyXL/objects/filters.rb +17 -19
  33. data/lib/rubyXL/objects/font.rb +4 -64
  34. data/lib/rubyXL/objects/formula.rb +4 -6
  35. data/lib/rubyXL/objects/ooxml_object.rb +25 -18
  36. data/lib/rubyXL/objects/query_table.rb +104 -0
  37. data/lib/rubyXL/objects/reference.rb +6 -8
  38. data/lib/rubyXL/objects/relationships.rb +13 -13
  39. data/lib/rubyXL/objects/root.rb +0 -2
  40. data/lib/rubyXL/objects/shared_strings.rb +4 -7
  41. data/lib/rubyXL/objects/sheet_common.rb +5 -7
  42. data/lib/rubyXL/objects/sheet_data.rb +50 -16
  43. data/lib/rubyXL/objects/simple_types.rb +21 -1
  44. data/lib/rubyXL/objects/storage.rb +67 -43
  45. data/lib/rubyXL/objects/stylesheet.rb +22 -29
  46. data/lib/rubyXL/objects/text.rb +12 -14
  47. data/lib/rubyXL/objects/theme.rb +142 -126
  48. data/lib/rubyXL/objects/workbook.rb +172 -64
  49. data/lib/rubyXL/objects/worksheet.rb +143 -128
  50. data/lib/rubyXL/parser.rb +1 -3
  51. data/lib/rubyXL/worksheet.rb +83 -78
  52. data/lib/rubyXL.rb +1 -1
  53. data/rdoc/README_rdoc.html +122 -114
  54. data/rdoc/RubyXL/AExtension.html +21 -60
  55. data/rdoc/RubyXL/AExtensionStorageArea.html +12 -17
  56. data/rdoc/RubyXL/ActiveX.html +154 -0
  57. data/rdoc/RubyXL/ActiveXBinary.html +106 -0
  58. data/rdoc/RubyXL/AdjustHandleList.html +13 -19
  59. data/rdoc/RubyXL/Alignment.html +13 -19
  60. data/rdoc/RubyXL/AlternateContent.html +12 -17
  61. data/rdoc/RubyXL/Authors.html +13 -19
  62. data/rdoc/RubyXL/AutoFilter.html +13 -19
  63. data/rdoc/RubyXL/AutoFilterColumn.html +13 -19
  64. data/rdoc/RubyXL/BinaryImageFile.html +12 -25
  65. data/rdoc/RubyXL/BodyProperties.html +13 -19
  66. data/rdoc/RubyXL/BooleanNode.html +12 -17
  67. data/rdoc/RubyXL/BooleanValue.html +12 -17
  68. data/rdoc/RubyXL/Border.html +25 -84
  69. data/rdoc/RubyXL/BorderEdge.html +20 -52
  70. data/rdoc/RubyXL/Borders.html +19 -39
  71. data/rdoc/RubyXL/Break.html +13 -19
  72. data/rdoc/RubyXL/BreakList.html +13 -19
  73. data/rdoc/RubyXL/CT_AdjPoint2D.html +13 -19
  74. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +13 -19
  75. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +13 -19
  76. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +13 -19
  77. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +13 -19
  78. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +13 -19
  79. data/rdoc/RubyXL/CT_Backdrop.html +13 -19
  80. data/rdoc/RubyXL/CT_Bevel.html +13 -19
  81. data/rdoc/RubyXL/CT_BiLevelEffect.html +13 -19
  82. data/rdoc/RubyXL/CT_BlendEffect.html +13 -19
  83. data/rdoc/RubyXL/CT_Blip.html +13 -19
  84. data/rdoc/RubyXL/CT_BlipFillProperties.html +13 -19
  85. data/rdoc/RubyXL/CT_BlurEffect.html +13 -19
  86. data/rdoc/RubyXL/CT_Camera.html +13 -19
  87. data/rdoc/RubyXL/CT_Color.html +13 -19
  88. data/rdoc/RubyXL/CT_ColorChangeEffect.html +13 -19
  89. data/rdoc/RubyXL/CT_ColorMapping.html +13 -19
  90. data/rdoc/RubyXL/CT_ColorScheme.html +13 -19
  91. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +13 -19
  92. data/rdoc/RubyXL/CT_ConnectionSite.html +13 -19
  93. data/rdoc/RubyXL/CT_ConnectionSiteList.html +13 -19
  94. data/rdoc/RubyXL/CT_DashStop.html +13 -19
  95. data/rdoc/RubyXL/CT_DashStopList.html +13 -19
  96. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +13 -19
  97. data/rdoc/RubyXL/CT_DuotoneEffect.html +13 -19
  98. data/rdoc/RubyXL/CT_EffectContainer.html +13 -19
  99. data/rdoc/RubyXL/CT_EffectList.html +13 -19
  100. data/rdoc/RubyXL/CT_EffectReference.html +13 -19
  101. data/rdoc/RubyXL/CT_EffectStyleItem.html +13 -19
  102. data/rdoc/RubyXL/CT_EffectStyleList.html +13 -19
  103. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +13 -19
  104. data/rdoc/RubyXL/CT_FillEffect.html +13 -19
  105. data/rdoc/RubyXL/CT_FillOverlayEffect.html +13 -19
  106. data/rdoc/RubyXL/CT_FillStyleList.html +13 -19
  107. data/rdoc/RubyXL/CT_FlatText.html +13 -19
  108. data/rdoc/RubyXL/CT_FontCollection.html +13 -19
  109. data/rdoc/RubyXL/CT_FontReference.html +13 -19
  110. data/rdoc/RubyXL/CT_GeomGuideList.html +13 -19
  111. data/rdoc/RubyXL/CT_GlowEffect.html +13 -19
  112. data/rdoc/RubyXL/CT_GradientFillProperties.html +13 -19
  113. data/rdoc/RubyXL/CT_GradientStop.html +13 -19
  114. data/rdoc/RubyXL/CT_GradientStopList.html +13 -19
  115. data/rdoc/RubyXL/CT_HSLEffect.html +13 -19
  116. data/rdoc/RubyXL/CT_HslColor.html +13 -19
  117. data/rdoc/RubyXL/CT_Hyperlink.html +13 -19
  118. data/rdoc/RubyXL/CT_InnerShadowEffect.html +13 -19
  119. data/rdoc/RubyXL/CT_LightRig.html +13 -19
  120. data/rdoc/RubyXL/CT_LineEndProperties.html +13 -19
  121. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +13 -19
  122. data/rdoc/RubyXL/CT_LineProperties.html +13 -19
  123. data/rdoc/RubyXL/CT_LineStyleList.html +13 -19
  124. data/rdoc/RubyXL/CT_LinearShadeProperties.html +13 -19
  125. data/rdoc/RubyXL/CT_LuminanceEffect.html +13 -19
  126. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +13 -19
  127. data/rdoc/RubyXL/CT_OuterShadowEffect.html +13 -19
  128. data/rdoc/RubyXL/CT_Path2D.html +13 -19
  129. data/rdoc/RubyXL/CT_Path2DArcTo.html +13 -19
  130. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +13 -19
  131. data/rdoc/RubyXL/CT_Path2DList.html +13 -19
  132. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +13 -19
  133. data/rdoc/RubyXL/CT_Path2DTo.html +13 -19
  134. data/rdoc/RubyXL/CT_PathShadeProperties.html +13 -19
  135. data/rdoc/RubyXL/CT_PatternFillProperties.html +13 -19
  136. data/rdoc/RubyXL/CT_Point3D.html +13 -19
  137. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +13 -19
  138. data/rdoc/RubyXL/CT_PresetColor.html +13 -19
  139. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +13 -19
  140. data/rdoc/RubyXL/CT_PresetShadowEffect.html +13 -19
  141. data/rdoc/RubyXL/CT_PresetTextShape.html +13 -19
  142. data/rdoc/RubyXL/CT_ReflectionEffect.html +13 -19
  143. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +13 -19
  144. data/rdoc/RubyXL/CT_RelativeRect.html +13 -19
  145. data/rdoc/RubyXL/CT_SRgbColor.html +13 -19
  146. data/rdoc/RubyXL/CT_ScRgbColor.html +13 -19
  147. data/rdoc/RubyXL/CT_Scene3D.html +13 -19
  148. data/rdoc/RubyXL/CT_SchemeColor.html +13 -19
  149. data/rdoc/RubyXL/CT_Shape3D.html +13 -19
  150. data/rdoc/RubyXL/CT_ShapeStyle.html +13 -19
  151. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +13 -19
  152. data/rdoc/RubyXL/CT_SphereCoords.html +13 -19
  153. data/rdoc/RubyXL/CT_StretchInfoProperties.html +13 -19
  154. data/rdoc/RubyXL/CT_StyleMatrix.html +13 -19
  155. data/rdoc/RubyXL/CT_StyleMatrixReference.html +13 -19
  156. data/rdoc/RubyXL/CT_SupplementalFont.html +13 -19
  157. data/rdoc/RubyXL/CT_SystemColor.html +13 -19
  158. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +13 -19
  159. data/rdoc/RubyXL/CT_TextBlipBullet.html +13 -19
  160. data/rdoc/RubyXL/CT_TextCharBullet.html +13 -19
  161. data/rdoc/RubyXL/CT_TextCharacterProperties.html +13 -19
  162. data/rdoc/RubyXL/CT_TextFont.html +13 -19
  163. data/rdoc/RubyXL/CT_TextListStyle.html +13 -19
  164. data/rdoc/RubyXL/CT_TextNormalAutofit.html +13 -19
  165. data/rdoc/RubyXL/CT_TextParagraphProperties.html +13 -19
  166. data/rdoc/RubyXL/CT_TextSpacing.html +13 -19
  167. data/rdoc/RubyXL/CT_TextTabStop.html +13 -19
  168. data/rdoc/RubyXL/CT_TextTabStopList.html +13 -19
  169. data/rdoc/RubyXL/CT_TileInfoProperties.html +13 -19
  170. data/rdoc/RubyXL/CT_TintEffect.html +13 -19
  171. data/rdoc/RubyXL/CT_Transform2D.html +13 -19
  172. data/rdoc/RubyXL/CT_TransformEffect.html +13 -19
  173. data/rdoc/RubyXL/CT_Vector3D.html +13 -19
  174. data/rdoc/RubyXL/CT_XYAdjustHandle.html +13 -19
  175. data/rdoc/RubyXL/CalculationChain.html +17 -45
  176. data/rdoc/RubyXL/CalculationChainCell.html +13 -19
  177. data/rdoc/RubyXL/CalculationProperties.html +13 -19
  178. data/rdoc/RubyXL/Cell.html +145 -205
  179. data/rdoc/RubyXL/CellConvenienceMethods.html +255 -460
  180. data/rdoc/RubyXL/CellExt.html +13 -19
  181. data/rdoc/RubyXL/CellSmartTag.html +13 -19
  182. data/rdoc/RubyXL/CellSmartTagProperty.html +13 -19
  183. data/rdoc/RubyXL/CellSmartTags.html +13 -19
  184. data/rdoc/RubyXL/CellStyle.html +13 -19
  185. data/rdoc/RubyXL/CellStyleXFs.html +19 -39
  186. data/rdoc/RubyXL/CellStyles.html +19 -39
  187. data/rdoc/RubyXL/CellValue.html +18 -38
  188. data/rdoc/RubyXL/CellWatch.html +13 -19
  189. data/rdoc/RubyXL/CellWatches.html +13 -19
  190. data/rdoc/RubyXL/CellXFs.html +20 -42
  191. data/rdoc/RubyXL/ChartColorsFile.html +12 -25
  192. data/rdoc/RubyXL/ChartFile.html +19 -49
  193. data/rdoc/RubyXL/ChartStyleFile.html +12 -25
  194. data/rdoc/RubyXL/ChartUserShapesFile.html +12 -25
  195. data/rdoc/RubyXL/Chartsheet.html +20 -68
  196. data/rdoc/RubyXL/ChartsheetPageSetup.html +13 -19
  197. data/rdoc/RubyXL/ChartsheetProperties.html +13 -19
  198. data/rdoc/RubyXL/ChartsheetProtection.html +13 -19
  199. data/rdoc/RubyXL/ChartsheetView.html +13 -19
  200. data/rdoc/RubyXL/ChartsheetViews.html +13 -19
  201. data/rdoc/RubyXL/Color.html +29 -40
  202. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +242 -0
  203. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +279 -0
  204. data/rdoc/RubyXL/ColorConvenienceClasses.html +91 -0
  205. data/rdoc/RubyXL/ColorConvenienceMethods.html +137 -0
  206. data/rdoc/RubyXL/ColorFilter.html +13 -19
  207. data/rdoc/RubyXL/ColorScale.html +13 -19
  208. data/rdoc/RubyXL/ColorSet.html +13 -19
  209. data/rdoc/RubyXL/Colors.html +13 -19
  210. data/rdoc/RubyXL/ColumnRange.html +23 -74
  211. data/rdoc/RubyXL/ColumnRanges.html +24 -83
  212. data/rdoc/RubyXL/Comment.html +13 -19
  213. data/rdoc/RubyXL/CommentList.html +13 -19
  214. data/rdoc/RubyXL/CommentsFile.html +18 -51
  215. data/rdoc/RubyXL/ConditionalFormatValue.html +13 -19
  216. data/rdoc/RubyXL/ConditionalFormatting.html +13 -19
  217. data/rdoc/RubyXL/ConditionalFormattingRule.html +13 -19
  218. data/rdoc/RubyXL/Connection.html +99 -0
  219. data/rdoc/RubyXL/ConnectionTable.html +99 -0
  220. data/rdoc/RubyXL/ConnectionTables.html +99 -0
  221. data/rdoc/RubyXL/ConnectionTextField.html +99 -0
  222. data/rdoc/RubyXL/ConnectionTextFields.html +99 -0
  223. data/rdoc/RubyXL/Connections.html +147 -0
  224. data/rdoc/RubyXL/ContentTypeDefault.html +12 -17
  225. data/rdoc/RubyXL/ContentTypeOverride.html +12 -17
  226. data/rdoc/RubyXL/ContentTypes.html +25 -65
  227. data/rdoc/RubyXL/ControlPropertiesFile.html +14 -22
  228. data/rdoc/RubyXL/CorePropertiesFile.html +35 -171
  229. data/rdoc/RubyXL/CustomColor.html +13 -19
  230. data/rdoc/RubyXL/CustomColorList.html +13 -19
  231. data/rdoc/RubyXL/CustomFilter.html +13 -19
  232. data/rdoc/RubyXL/CustomFilters.html +13 -19
  233. data/rdoc/RubyXL/CustomGeometry.html +13 -19
  234. data/rdoc/RubyXL/CustomProperties.html +13 -19
  235. data/rdoc/RubyXL/CustomPropertiesFile.html +12 -25
  236. data/rdoc/RubyXL/CustomProperty.html +13 -19
  237. data/rdoc/RubyXL/CustomPropertyFile.html +108 -0
  238. data/rdoc/RubyXL/CustomSheetView.html +13 -19
  239. data/rdoc/RubyXL/CustomSheetViews.html +13 -19
  240. data/rdoc/RubyXL/CustomWorkbookView.html +13 -19
  241. data/rdoc/RubyXL/CustomWorkbookViews.html +13 -19
  242. data/rdoc/RubyXL/CustomXMLFile.html +12 -22
  243. data/rdoc/RubyXL/DXF.html +13 -19
  244. data/rdoc/RubyXL/DXFs.html +13 -19
  245. data/rdoc/RubyXL/DataBar.html +13 -19
  246. data/rdoc/RubyXL/DataConsolidate.html +13 -19
  247. data/rdoc/RubyXL/DataConsolidationReference.html +13 -19
  248. data/rdoc/RubyXL/DataConsolidationReferences.html +13 -19
  249. data/rdoc/RubyXL/DataType.html +11 -39
  250. data/rdoc/RubyXL/DataValidation.html +13 -19
  251. data/rdoc/RubyXL/DataValidations.html +13 -19
  252. data/rdoc/RubyXL/DateGroupItem.html +13 -19
  253. data/rdoc/RubyXL/DefinedName.html +13 -19
  254. data/rdoc/RubyXL/DefinedNameExt.html +13 -19
  255. data/rdoc/RubyXL/DefinedNames.html +13 -19
  256. data/rdoc/RubyXL/DefinedNamesExt.html +13 -19
  257. data/rdoc/RubyXL/DocumentPropertiesFile.html +22 -68
  258. data/rdoc/RubyXL/DrawingFile.html +19 -49
  259. data/rdoc/RubyXL/DynamicFilter.html +13 -19
  260. data/rdoc/RubyXL/EmbeddedControl.html +13 -19
  261. data/rdoc/RubyXL/EmbeddedControls.html +13 -19
  262. data/rdoc/RubyXL/Extension.html +13 -19
  263. data/rdoc/RubyXL/ExtensionStorageArea.html +13 -19
  264. data/rdoc/RubyXL/Extents.html +13 -19
  265. data/rdoc/RubyXL/ExternalBook.html +13 -19
  266. data/rdoc/RubyXL/ExternalLinksFile.html +19 -49
  267. data/rdoc/RubyXL/ExternalReference.html +13 -19
  268. data/rdoc/RubyXL/ExternalReferences.html +13 -19
  269. data/rdoc/RubyXL/ExtraColorSchemeList.html +13 -19
  270. data/rdoc/RubyXL/FieldItem.html +13 -19
  271. data/rdoc/RubyXL/FileRecoveryProperties.html +13 -19
  272. data/rdoc/RubyXL/FileSharing.html +13 -19
  273. data/rdoc/RubyXL/FileVersion.html +13 -19
  274. data/rdoc/RubyXL/Fill.html +19 -39
  275. data/rdoc/RubyXL/Fills.html +19 -39
  276. data/rdoc/RubyXL/FilterContainer.html +13 -19
  277. data/rdoc/RubyXL/FloatNode.html +12 -17
  278. data/rdoc/RubyXL/FloatValue.html +12 -17
  279. data/rdoc/RubyXL/Font.html +20 -544
  280. data/rdoc/RubyXL/FontConvenienceMethods.html +414 -0
  281. data/rdoc/RubyXL/FontScheme.html +13 -19
  282. data/rdoc/RubyXL/Fonts.html +19 -39
  283. data/rdoc/RubyXL/Formula.html +13 -19
  284. data/rdoc/RubyXL/FunctionGroup.html +13 -19
  285. data/rdoc/RubyXL/FunctionGroups.html +13 -19
  286. data/rdoc/RubyXL/GenericStorageObject.html +22 -84
  287. data/rdoc/RubyXL/GradientFill.html +13 -19
  288. data/rdoc/RubyXL/HeaderFooterSettings.html +13 -19
  289. data/rdoc/RubyXL/Hyperlink.html +13 -19
  290. data/rdoc/RubyXL/HyperlinkRelFile.html +12 -22
  291. data/rdoc/RubyXL/Hyperlinks.html +13 -19
  292. data/rdoc/RubyXL/IconFilter.html +13 -19
  293. data/rdoc/RubyXL/IconSet.html +13 -19
  294. data/rdoc/RubyXL/IgnoredError.html +13 -19
  295. data/rdoc/RubyXL/IgnoredErrors.html +13 -19
  296. data/rdoc/RubyXL/IndexedColors.html +13 -19
  297. data/rdoc/RubyXL/InputCells.html +13 -19
  298. data/rdoc/RubyXL/IntegerNode.html +12 -17
  299. data/rdoc/RubyXL/IntegerValue.html +12 -17
  300. data/rdoc/RubyXL/LegacyCell.html +14 -66
  301. data/rdoc/RubyXL/LegacyWorksheet.html +40 -100
  302. data/rdoc/RubyXL/MRUColors.html +13 -19
  303. data/rdoc/RubyXL/MacrosFile.html +12 -25
  304. data/rdoc/RubyXL/MergedCell.html +13 -19
  305. data/rdoc/RubyXL/MergedCells.html +13 -19
  306. data/rdoc/RubyXL/NumFmt.html +13 -19
  307. data/rdoc/RubyXL/NumberFormat.html +19 -39
  308. data/rdoc/RubyXL/NumberFormats.html +19 -45
  309. data/rdoc/RubyXL/OLEObject.html +13 -19
  310. data/rdoc/RubyXL/OLEObjectFile.html +12 -25
  311. data/rdoc/RubyXL/OLEObjects.html +13 -19
  312. data/rdoc/RubyXL/OLESize.html +13 -19
  313. data/rdoc/RubyXL/OOXMLContainerObject.html +36 -132
  314. data/rdoc/RubyXL/OOXMLIgnored.html +163 -0
  315. data/rdoc/RubyXL/OOXMLObject.html +15 -25
  316. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +92 -183
  317. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +49 -185
  318. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +48 -200
  319. data/rdoc/RubyXL/OOXMLTopLevelObject.html +37 -133
  320. data/rdoc/RubyXL/OdbcOleDbProperties.html +99 -0
  321. data/rdoc/RubyXL/Offset.html +13 -19
  322. data/rdoc/RubyXL/OlapProperties.html +99 -0
  323. data/rdoc/RubyXL/OleItem.html +99 -0
  324. data/rdoc/RubyXL/OleItems.html +99 -0
  325. data/rdoc/RubyXL/OleLink.html +99 -0
  326. data/rdoc/RubyXL/OutlineProperties.html +13 -19
  327. data/rdoc/RubyXL/PageMargins.html +13 -19
  328. data/rdoc/RubyXL/PageSetup.html +13 -19
  329. data/rdoc/RubyXL/PageSetupProperties.html +13 -19
  330. data/rdoc/RubyXL/Pane.html +13 -19
  331. data/rdoc/RubyXL/Parser.html +23 -56
  332. data/rdoc/RubyXL/PatternFill.html +13 -19
  333. data/rdoc/RubyXL/PhoneticProperties.html +13 -19
  334. data/rdoc/RubyXL/PhoneticRun.html +13 -19
  335. data/rdoc/RubyXL/PivotArea.html +13 -19
  336. data/rdoc/RubyXL/PivotCache.html +13 -19
  337. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +14 -30
  338. data/rdoc/RubyXL/PivotCacheRecordsFile.html +12 -25
  339. data/rdoc/RubyXL/PivotCaches.html +13 -19
  340. data/rdoc/RubyXL/PivotReference.html +13 -19
  341. data/rdoc/RubyXL/PivotReferences.html +13 -19
  342. data/rdoc/RubyXL/PivotTableFile.html +14 -30
  343. data/rdoc/RubyXL/PivotTableSelection.html +13 -19
  344. data/rdoc/RubyXL/PresetGeometry.html +13 -19
  345. data/rdoc/RubyXL/PrintOptions.html +13 -19
  346. data/rdoc/RubyXL/PrinterSettingsFile.html +12 -25
  347. data/rdoc/RubyXL/ProtectedRange.html +13 -19
  348. data/rdoc/RubyXL/ProtectedRanges.html +13 -19
  349. data/rdoc/RubyXL/Protection.html +13 -19
  350. data/rdoc/RubyXL/QueryParameter.html +99 -0
  351. data/rdoc/RubyXL/QueryParameters.html +99 -0
  352. data/rdoc/RubyXL/QueryTable.html +155 -0
  353. data/rdoc/RubyXL/QueryTableDeletedField.html +99 -0
  354. data/rdoc/RubyXL/QueryTableDeletedFields.html +99 -0
  355. data/rdoc/RubyXL/QueryTableField.html +99 -0
  356. data/rdoc/RubyXL/QueryTableFields.html +99 -0
  357. data/rdoc/RubyXL/QueryTableRefresh.html +99 -0
  358. data/rdoc/RubyXL/RID.html +12 -17
  359. data/rdoc/RubyXL/RawOOXML.html +21 -60
  360. data/rdoc/RubyXL/Reference.html +63 -228
  361. data/rdoc/RubyXL/Relationship.html +12 -17
  362. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +14 -32
  363. data/rdoc/RubyXL/RelationshipSupport.html +26 -120
  364. data/rdoc/RubyXL/RevisionPointer.html +99 -0
  365. data/rdoc/RubyXL/RichText.html +20 -39
  366. data/rdoc/RubyXL/RichTextRun.html +18 -38
  367. data/rdoc/RubyXL/Row.html +53 -152
  368. data/rdoc/RubyXL/RowExt.html +13 -19
  369. data/rdoc/RubyXL/RunProperties.html +13 -19
  370. data/rdoc/RubyXL/Scenario.html +13 -19
  371. data/rdoc/RubyXL/Scenarios.html +13 -19
  372. data/rdoc/RubyXL/Selection.html +19 -39
  373. data/rdoc/RubyXL/ShapeGuide.html +13 -19
  374. data/rdoc/RubyXL/ShapeTextRectangle.html +13 -19
  375. data/rdoc/RubyXL/SharedStringsTable.html +38 -147
  376. data/rdoc/RubyXL/Sheet.html +13 -19
  377. data/rdoc/RubyXL/SheetCalculationProperties.html +13 -19
  378. data/rdoc/RubyXL/SheetData.html +20 -53
  379. data/rdoc/RubyXL/SheetDataExt.html +13 -19
  380. data/rdoc/RubyXL/SheetDataSet.html +13 -19
  381. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  382. data/rdoc/RubyXL/SheetName.html +13 -19
  383. data/rdoc/RubyXL/SheetNames.html +13 -19
  384. data/rdoc/RubyXL/Sheets.html +13 -19
  385. data/rdoc/RubyXL/SlicerCacheFile.html +12 -25
  386. data/rdoc/RubyXL/SlicerFile.html +12 -25
  387. data/rdoc/RubyXL/SmartTagProperties.html +13 -19
  388. data/rdoc/RubyXL/SmartTagType.html +13 -19
  389. data/rdoc/RubyXL/SmartTagTypes.html +13 -19
  390. data/rdoc/RubyXL/SmartTags.html +13 -19
  391. data/rdoc/RubyXL/SortCondition.html +13 -19
  392. data/rdoc/RubyXL/SortState.html +13 -19
  393. data/rdoc/RubyXL/Sqref.html +20 -53
  394. data/rdoc/RubyXL/Stop.html +13 -19
  395. data/rdoc/RubyXL/StringNode.html +12 -17
  396. data/rdoc/RubyXL/StringNodeW3C.html +21 -54
  397. data/rdoc/RubyXL/StringValue.html +12 -17
  398. data/rdoc/RubyXL/Stylesheet.html +35 -117
  399. data/rdoc/RubyXL/TableFile.html +12 -25
  400. data/rdoc/RubyXL/TableParts.html +12 -17
  401. data/rdoc/RubyXL/TableStyle.html +13 -19
  402. data/rdoc/RubyXL/TableStyles.html +13 -19
  403. data/rdoc/RubyXL/Text.html +23 -67
  404. data/rdoc/RubyXL/TextImportSettings.html +99 -0
  405. data/rdoc/RubyXL/Theme.html +57 -62
  406. data/rdoc/RubyXL/ThemeElements.html +13 -19
  407. data/rdoc/RubyXL/ThumbnailFile.html +12 -25
  408. data/rdoc/RubyXL/Top10.html +13 -19
  409. data/rdoc/RubyXL/VMLDrawingFile.html +15 -32
  410. data/rdoc/RubyXL/Variant.html +13 -19
  411. data/rdoc/RubyXL/Vector.html +18 -38
  412. data/rdoc/RubyXL/VectorValue.html +12 -17
  413. data/rdoc/RubyXL/VisualProperties.html +13 -19
  414. data/rdoc/RubyXL/WebPublishObject.html +13 -19
  415. data/rdoc/RubyXL/WebPublishObjects.html +13 -19
  416. data/rdoc/RubyXL/WebPublishingItem.html +13 -19
  417. data/rdoc/RubyXL/WebPublishingItems.html +13 -19
  418. data/rdoc/RubyXL/WebPublishingProperties.html +13 -19
  419. data/rdoc/RubyXL/WebQueryProperties.html +99 -0
  420. data/rdoc/RubyXL/Workbook.html +487 -227
  421. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +163 -871
  422. data/rdoc/RubyXL/WorkbookProperties.html +13 -19
  423. data/rdoc/RubyXL/WorkbookProtection.html +13 -19
  424. data/rdoc/RubyXL/WorkbookRoot.html +28 -114
  425. data/rdoc/RubyXL/WorkbookView.html +13 -19
  426. data/rdoc/RubyXL/WorkbookViews.html +13 -19
  427. data/rdoc/RubyXL/Worksheet.html +93 -121
  428. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +299 -1109
  429. data/rdoc/RubyXL/WorksheetDimensions.html +13 -19
  430. data/rdoc/RubyXL/WorksheetFormatProperties.html +12 -17
  431. data/rdoc/RubyXL/WorksheetProperties.html +13 -19
  432. data/rdoc/RubyXL/WorksheetProtection.html +13 -19
  433. data/rdoc/RubyXL/WorksheetView.html +13 -19
  434. data/rdoc/RubyXL/WorksheetViews.html +13 -19
  435. data/rdoc/RubyXL/XF.html +13 -19
  436. data/rdoc/RubyXL.html +41 -296
  437. data/rdoc/created.rid +45 -38
  438. data/rdoc/css/fonts.css +6 -6
  439. data/rdoc/css/rdoc.css +55 -6
  440. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  441. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  442. data/rdoc/index.html +44 -363
  443. data/rdoc/js/darkfish.js +23 -100
  444. data/rdoc/js/navigation.js +4 -41
  445. data/rdoc/js/navigation.js.gz +0 -0
  446. data/rdoc/js/search.js +32 -31
  447. data/rdoc/js/search_index.js +1 -1
  448. data/rdoc/js/search_index.js.gz +0 -0
  449. data/rdoc/js/searcher.js +7 -6
  450. data/rdoc/js/searcher.js.gz +0 -0
  451. data/rdoc/table_of_contents.html +347 -75
  452. data/rubyXL.gemspec +78 -43
  453. data/spec/lib/cell_spec.rb +115 -4
  454. data/spec/lib/color_spec.rb +2 -1
  455. data/spec/lib/parser_spec.rb +24 -27
  456. data/spec/lib/reference_spec.rb +9 -3
  457. data/spec/lib/rgb_color_spec.rb +27 -0
  458. data/spec/lib/stylesheet_spec.rb +8 -11
  459. data/spec/lib/text_spec.rb +8 -4
  460. data/spec/lib/workbook_spec.rb +26 -5
  461. data/spec/lib/worksheet_spec.rb +873 -479
  462. data/spec/spec_helper.rb +2 -0
  463. data/test/test_parse_write.rb +15 -15
  464. metadata +65 -10
  465. data/rdoc/js/jquery.js +0 -4
data/rubyXL.gemspec CHANGED
@@ -1,25 +1,28 @@
1
- # Generated by jeweler
1
+ # Generated by juwelier
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: rubyXL 3.3.22 ruby lib
5
+ # stub: rubyXL 3.4.25 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "rubyXL"
9
- s.version = "3.3.22"
8
+ s.name = "rubyXL".freeze
9
+ s.version = "3.4.25"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Vivek Bhagwat", "Wesha"]
14
- s.date = "2016-10-06"
15
- s.description = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents"
16
- s.email = "bhagwat.vivek@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Vivek Bhagwat".freeze, "Wesha".freeze]
14
+ s.date = "2022-05-19"
15
+ s.description = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
16
+ s.email = "bhagwat.vivek@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.rdoc"
20
20
  ]
21
21
  s.files = [
22
+ ".circleci/config.yml",
23
+ ".codeclimate.yml",
22
24
  "Gemfile",
25
+ "Gemfile.lock",
23
26
  "LICENSE.txt",
24
27
  "README.rdoc",
25
28
  "Rakefile",
@@ -27,6 +30,11 @@ Gem::Specification.new do |s|
27
30
  "lib/rubyXL.rb",
28
31
  "lib/rubyXL/cell.rb",
29
32
  "lib/rubyXL/convenience_methods.rb",
33
+ "lib/rubyXL/convenience_methods/cell.rb",
34
+ "lib/rubyXL/convenience_methods/color.rb",
35
+ "lib/rubyXL/convenience_methods/font.rb",
36
+ "lib/rubyXL/convenience_methods/workbook.rb",
37
+ "lib/rubyXL/convenience_methods/worksheet.rb",
30
38
  "lib/rubyXL/objects/border.rb",
31
39
  "lib/rubyXL/objects/calculation_chain.rb",
32
40
  "lib/rubyXL/objects/cell_style.rb",
@@ -34,6 +42,7 @@ Gem::Specification.new do |s|
34
42
  "lib/rubyXL/objects/color.rb",
35
43
  "lib/rubyXL/objects/column_range.rb",
36
44
  "lib/rubyXL/objects/comments.rb",
45
+ "lib/rubyXL/objects/connection.rb",
37
46
  "lib/rubyXL/objects/container_nodes.rb",
38
47
  "lib/rubyXL/objects/content_types.rb",
39
48
  "lib/rubyXL/objects/data_validation.rb",
@@ -45,6 +54,7 @@ Gem::Specification.new do |s|
45
54
  "lib/rubyXL/objects/font.rb",
46
55
  "lib/rubyXL/objects/formula.rb",
47
56
  "lib/rubyXL/objects/ooxml_object.rb",
57
+ "lib/rubyXL/objects/query_table.rb",
48
58
  "lib/rubyXL/objects/reference.rb",
49
59
  "lib/rubyXL/objects/relationships.rb",
50
60
  "lib/rubyXL/objects/root.rb",
@@ -64,6 +74,8 @@ Gem::Specification.new do |s|
64
74
  "rdoc/RubyXL.html",
65
75
  "rdoc/RubyXL/AExtension.html",
66
76
  "rdoc/RubyXL/AExtensionStorageArea.html",
77
+ "rdoc/RubyXL/ActiveX.html",
78
+ "rdoc/RubyXL/ActiveXBinary.html",
67
79
  "rdoc/RubyXL/AdjustHandleList.html",
68
80
  "rdoc/RubyXL/Alignment.html",
69
81
  "rdoc/RubyXL/AlternateContent.html",
@@ -208,6 +220,10 @@ Gem::Specification.new do |s|
208
220
  "rdoc/RubyXL/ChartsheetView.html",
209
221
  "rdoc/RubyXL/ChartsheetViews.html",
210
222
  "rdoc/RubyXL/Color.html",
223
+ "rdoc/RubyXL/ColorConvenienceClasses.html",
224
+ "rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html",
225
+ "rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html",
226
+ "rdoc/RubyXL/ColorConvenienceMethods.html",
211
227
  "rdoc/RubyXL/ColorFilter.html",
212
228
  "rdoc/RubyXL/ColorScale.html",
213
229
  "rdoc/RubyXL/ColorSet.html",
@@ -220,6 +236,12 @@ Gem::Specification.new do |s|
220
236
  "rdoc/RubyXL/ConditionalFormatValue.html",
221
237
  "rdoc/RubyXL/ConditionalFormatting.html",
222
238
  "rdoc/RubyXL/ConditionalFormattingRule.html",
239
+ "rdoc/RubyXL/Connection.html",
240
+ "rdoc/RubyXL/ConnectionTable.html",
241
+ "rdoc/RubyXL/ConnectionTables.html",
242
+ "rdoc/RubyXL/ConnectionTextField.html",
243
+ "rdoc/RubyXL/ConnectionTextFields.html",
244
+ "rdoc/RubyXL/Connections.html",
223
245
  "rdoc/RubyXL/ContentTypeDefault.html",
224
246
  "rdoc/RubyXL/ContentTypeOverride.html",
225
247
  "rdoc/RubyXL/ContentTypes.html",
@@ -233,6 +255,7 @@ Gem::Specification.new do |s|
233
255
  "rdoc/RubyXL/CustomProperties.html",
234
256
  "rdoc/RubyXL/CustomPropertiesFile.html",
235
257
  "rdoc/RubyXL/CustomProperty.html",
258
+ "rdoc/RubyXL/CustomPropertyFile.html",
236
259
  "rdoc/RubyXL/CustomSheetView.html",
237
260
  "rdoc/RubyXL/CustomSheetViews.html",
238
261
  "rdoc/RubyXL/CustomWorkbookView.html",
@@ -275,6 +298,7 @@ Gem::Specification.new do |s|
275
298
  "rdoc/RubyXL/FloatNode.html",
276
299
  "rdoc/RubyXL/FloatValue.html",
277
300
  "rdoc/RubyXL/Font.html",
301
+ "rdoc/RubyXL/FontConvenienceMethods.html",
278
302
  "rdoc/RubyXL/FontScheme.html",
279
303
  "rdoc/RubyXL/Fonts.html",
280
304
  "rdoc/RubyXL/Formula.html",
@@ -308,12 +332,18 @@ Gem::Specification.new do |s|
308
332
  "rdoc/RubyXL/OLEObjects.html",
309
333
  "rdoc/RubyXL/OLESize.html",
310
334
  "rdoc/RubyXL/OOXMLContainerObject.html",
335
+ "rdoc/RubyXL/OOXMLIgnored.html",
311
336
  "rdoc/RubyXL/OOXMLObject.html",
312
337
  "rdoc/RubyXL/OOXMLObjectClassMethods.html",
313
338
  "rdoc/RubyXL/OOXMLObjectInstanceMethods.html",
314
339
  "rdoc/RubyXL/OOXMLRelationshipsFile.html",
315
340
  "rdoc/RubyXL/OOXMLTopLevelObject.html",
341
+ "rdoc/RubyXL/OdbcOleDbProperties.html",
316
342
  "rdoc/RubyXL/Offset.html",
343
+ "rdoc/RubyXL/OlapProperties.html",
344
+ "rdoc/RubyXL/OleItem.html",
345
+ "rdoc/RubyXL/OleItems.html",
346
+ "rdoc/RubyXL/OleLink.html",
317
347
  "rdoc/RubyXL/OutlineProperties.html",
318
348
  "rdoc/RubyXL/PageMargins.html",
319
349
  "rdoc/RubyXL/PageSetup.html",
@@ -338,12 +368,21 @@ Gem::Specification.new do |s|
338
368
  "rdoc/RubyXL/ProtectedRange.html",
339
369
  "rdoc/RubyXL/ProtectedRanges.html",
340
370
  "rdoc/RubyXL/Protection.html",
371
+ "rdoc/RubyXL/QueryParameter.html",
372
+ "rdoc/RubyXL/QueryParameters.html",
373
+ "rdoc/RubyXL/QueryTable.html",
374
+ "rdoc/RubyXL/QueryTableDeletedField.html",
375
+ "rdoc/RubyXL/QueryTableDeletedFields.html",
376
+ "rdoc/RubyXL/QueryTableField.html",
377
+ "rdoc/RubyXL/QueryTableFields.html",
378
+ "rdoc/RubyXL/QueryTableRefresh.html",
341
379
  "rdoc/RubyXL/RID.html",
342
380
  "rdoc/RubyXL/RawOOXML.html",
343
381
  "rdoc/RubyXL/Reference.html",
344
382
  "rdoc/RubyXL/Relationship.html",
345
383
  "rdoc/RubyXL/RelationshipSupport.html",
346
384
  "rdoc/RubyXL/RelationshipSupport/ClassMehods.html",
385
+ "rdoc/RubyXL/RevisionPointer.html",
347
386
  "rdoc/RubyXL/RichText.html",
348
387
  "rdoc/RubyXL/RichTextRun.html",
349
388
  "rdoc/RubyXL/Row.html",
@@ -360,6 +399,7 @@ Gem::Specification.new do |s|
360
399
  "rdoc/RubyXL/SheetData.html",
361
400
  "rdoc/RubyXL/SheetDataExt.html",
362
401
  "rdoc/RubyXL/SheetDataSet.html",
402
+ "rdoc/RubyXL/SheetMetadata.html",
363
403
  "rdoc/RubyXL/SheetName.html",
364
404
  "rdoc/RubyXL/SheetNames.html",
365
405
  "rdoc/RubyXL/Sheets.html",
@@ -382,6 +422,7 @@ Gem::Specification.new do |s|
382
422
  "rdoc/RubyXL/TableStyle.html",
383
423
  "rdoc/RubyXL/TableStyles.html",
384
424
  "rdoc/RubyXL/Text.html",
425
+ "rdoc/RubyXL/TextImportSettings.html",
385
426
  "rdoc/RubyXL/Theme.html",
386
427
  "rdoc/RubyXL/ThemeElements.html",
387
428
  "rdoc/RubyXL/ThumbnailFile.html",
@@ -396,6 +437,7 @@ Gem::Specification.new do |s|
396
437
  "rdoc/RubyXL/WebPublishingItem.html",
397
438
  "rdoc/RubyXL/WebPublishingItems.html",
398
439
  "rdoc/RubyXL/WebPublishingProperties.html",
440
+ "rdoc/RubyXL/WebQueryProperties.html",
399
441
  "rdoc/RubyXL/Workbook.html",
400
442
  "rdoc/RubyXL/WorkbookConvenienceMethods.html",
401
443
  "rdoc/RubyXL/WorkbookProperties.html",
@@ -448,7 +490,6 @@ Gem::Specification.new do |s|
448
490
  "rdoc/images/zoom.png",
449
491
  "rdoc/index.html",
450
492
  "rdoc/js/darkfish.js",
451
- "rdoc/js/jquery.js",
452
493
  "rdoc/js/navigation.js",
453
494
  "rdoc/js/navigation.js.gz",
454
495
  "rdoc/js/search.js",
@@ -462,6 +503,7 @@ Gem::Specification.new do |s|
462
503
  "spec/lib/color_spec.rb",
463
504
  "spec/lib/parser_spec.rb",
464
505
  "spec/lib/reference_spec.rb",
506
+ "spec/lib/rgb_color_spec.rb",
465
507
  "spec/lib/stylesheet_spec.rb",
466
508
  "spec/lib/text_spec.rb",
467
509
  "spec/lib/workbook_spec.rb",
@@ -472,42 +514,35 @@ Gem::Specification.new do |s|
472
514
  "test/test_parse_write.rb",
473
515
  "tmp/.gitignore"
474
516
  ]
475
- s.homepage = "http://github.com/gilt/rubyXL"
476
- s.licenses = ["MIT"]
477
- s.rubygems_version = "2.5.1"
478
- s.summary = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents"
517
+ s.homepage = "http://github.com/gilt/rubyXL".freeze
518
+ s.licenses = ["MIT".freeze]
519
+ s.rubygems_version = "3.3.12".freeze
520
+ s.summary = "rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents".freeze
479
521
 
480
522
  if s.respond_to? :specification_version then
481
523
  s.specification_version = 4
524
+ end
482
525
 
483
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
484
- s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.4"])
485
- s.add_runtime_dependency(%q<rubyzip>, [">= 1.1.6"])
486
- s.add_development_dependency(%q<bundler>, [">= 0"])
487
- s.add_development_dependency(%q<rake>, [">= 0"])
488
- s.add_development_dependency(%q<jeweler>, [">= 0"])
489
- s.add_development_dependency(%q<rspec>, [">= 0"])
490
- s.add_development_dependency(%q<simplecov>, [">= 0"])
491
- s.add_development_dependency(%q<ruby-prof>, [">= 0"])
492
- else
493
- s.add_dependency(%q<nokogiri>, [">= 1.4.4"])
494
- s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
495
- s.add_dependency(%q<bundler>, [">= 0"])
496
- s.add_dependency(%q<rake>, [">= 0"])
497
- s.add_dependency(%q<jeweler>, [">= 0"])
498
- s.add_dependency(%q<rspec>, [">= 0"])
499
- s.add_dependency(%q<simplecov>, [">= 0"])
500
- s.add_dependency(%q<ruby-prof>, [">= 0"])
501
- end
526
+ if s.respond_to? :add_runtime_dependency then
527
+ s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
528
+ s.add_runtime_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
529
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
530
+ s.add_development_dependency(%q<rake>.freeze, [">= 0"])
531
+ s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
532
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
533
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
534
+ s.add_development_dependency(%q<ruby-prof>.freeze, [">= 0"])
535
+ s.add_development_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
502
536
  else
503
- s.add_dependency(%q<nokogiri>, [">= 1.4.4"])
504
- s.add_dependency(%q<rubyzip>, [">= 1.1.6"])
505
- s.add_dependency(%q<bundler>, [">= 0"])
506
- s.add_dependency(%q<rake>, [">= 0"])
507
- s.add_dependency(%q<jeweler>, [">= 0"])
508
- s.add_dependency(%q<rspec>, [">= 0"])
509
- s.add_dependency(%q<simplecov>, [">= 0"])
510
- s.add_dependency(%q<ruby-prof>, [">= 0"])
537
+ s.add_dependency(%q<nokogiri>.freeze, [">= 1.10.8"])
538
+ s.add_dependency(%q<rubyzip>.freeze, [">= 1.3.0"])
539
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
540
+ s.add_dependency(%q<rake>.freeze, [">= 0"])
541
+ s.add_dependency(%q<juwelier>.freeze, [">= 0"])
542
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
543
+ s.add_dependency(%q<simplecov>.freeze, [">= 0"])
544
+ s.add_dependency(%q<ruby-prof>.freeze, [">= 0"])
545
+ s.add_dependency(%q<rspec_junit_formatter>.freeze, [">= 0"])
511
546
  end
512
547
  end
513
548
 
@@ -1,8 +1,9 @@
1
1
  require 'spec_helper'
2
2
  require 'bigdecimal'
3
+ require 'rubyXL/convenience_methods/font'
4
+ require 'rubyXL/convenience_methods/cell'
3
5
 
4
6
  describe RubyXL::Cell do
5
-
6
7
  before do
7
8
  @workbook = RubyXL::Workbook.new
8
9
  @worksheet = @workbook.add_worksheet('Test Worksheet')
@@ -26,6 +27,44 @@ describe RubyXL::Cell do
26
27
  cell = @worksheet.add_cell(r, c, "#{r}:#{c}")
27
28
  expect(cell.datatype).to eq(RubyXL::DataType::RAW_STRING)
28
29
 
30
+ cell = @worksheet.add_cell(r, c, RubyXL::RichText.new(:t => RubyXL::Text.new(:value => 'Hello')))
31
+ expect(cell.datatype).to eq(RubyXL::DataType::INLINE_STRING)
32
+ end
33
+
34
+ it 'should properly handle dates' do
35
+ r = 3
36
+ c = 3
37
+
38
+ dt = Date.today
39
+ cell = @worksheet.add_cell(r, c, dt)
40
+ cell.set_number_format('ddd mmm dd, yyyy')
41
+ expect(cell.value).to eq(dt)
42
+
43
+ tm = DateTime.now
44
+ cell = @worksheet.add_cell(r, c, tm)
45
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
46
+
47
+ # Due to rounding errors, we allow microsecond precision on DateTime.
48
+ expect((cell.value - tm).to_f).to be_within(1.0/86400e6).of(0)
49
+
50
+ tm = Time.now
51
+ cell = @worksheet.add_cell(r, c, tm)
52
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
53
+
54
+ # Due to rounding errors, we allow microsecond precision on Time.
55
+ expect(cell.value - tm.to_datetime).to be_within(1.0/86400e6).of(0)
56
+
57
+ expected_date = '2020-10-15T14:00:00Z'
58
+ expected_datetime = Time.parse(expected_date).utc
59
+ raw_value = '44119.583333333328' # Obtained from parsing a xlsx file with the expected date
60
+ cell = @worksheet.add_cell(r, c, Time.now) # Force a date cell type
61
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
62
+ cell.raw_value = raw_value
63
+ expect(cell.raw_value).to eq(raw_value), 'Wrong raw value'
64
+ cell.set_number_format('ddd mmm dd, yyyy HH:MM:SS')
65
+
66
+ # We expect exactly the same date
67
+ expect(cell.value.to_time.utc.iso8601).to eq(expected_datetime.iso8601)
29
68
  end
30
69
  end
31
70
 
@@ -143,6 +182,22 @@ describe RubyXL::Cell do
143
182
  end
144
183
  end
145
184
 
185
+ describe '.change_text_indent' do
186
+ it 'should cause the cell to have the corresponding text indent' do
187
+ expect(@cell.text_indent).to be_nil
188
+ @cell.change_text_indent(2)
189
+ expect(@cell.text_indent).to eq(2)
190
+ end
191
+
192
+ it 'should not cause other cells with the same style to have text indent' do
193
+ another_cell = @worksheet[1][0]
194
+ another_cell.style_index = @cell.style_index
195
+ expect(another_cell.text_indent).to be_nil
196
+ @cell.change_text_indent(2)
197
+ expect(another_cell.text_indent).to be_nil
198
+ end
199
+ end
200
+
146
201
  describe '.change_border_color' do
147
202
  it 'should cause cell to have a colored top border' do
148
203
  expect(@cell.get_border_color(:top)).to be_nil
@@ -224,7 +279,12 @@ describe RubyXL::Cell do
224
279
  expect(@cell.value).to eq(date)
225
280
  end
226
281
 
227
- it "should properly handle numeric values" do
282
+ it 'should properly return value of inlineStr' do
283
+ cell = @worksheet.add_cell(5, 5, RubyXL::RichText.new(:t => RubyXL::Text.new(:value => 'Hello')))
284
+ expect(cell.value).to eq('Hello')
285
+ end
286
+
287
+ it 'should properly handle numeric values' do
228
288
  @cell.datatype = nil
229
289
  @cell.raw_value = '1'
230
290
  expect(@cell.value).to eq(1)
@@ -275,6 +335,8 @@ describe RubyXL::Cell do
275
335
  expect(@cell.value).to eq(Date.parse('April 20, 2012'))
276
336
  @cell.change_contents(35981)
277
337
  expect(@cell.value).to eq(Date.parse('July 5, 1998'))
338
+ @cell.change_contents(0.019467592592592595)
339
+ expect(@cell.value).to eq(DateTime.parse('1899-12-31T00:28:02+00:00'))
278
340
  @cell.change_contents(1)
279
341
  expect(@cell.value).to eq(Date.parse('January 1, 1900'))
280
342
  @cell.change_contents(59)
@@ -298,6 +360,27 @@ describe RubyXL::Cell do
298
360
  expect(@cell.value).to eq(Date.parse('July 5, 1998'))
299
361
  end
300
362
  end
363
+
364
+ context 'date before January 1, 1900' do
365
+ it 'should parse as date' do
366
+ @cell.set_number_format('h:mm:ss')
367
+ @cell.datatype = nil
368
+
369
+ @cell.raw_value = '0.97726851851851848'
370
+ expect(@cell.is_date?).to be(true)
371
+ expect(@cell.value).to eq(DateTime.parse('1899-12-31 23:27:16'))
372
+ @cell.raw_value = '1.9467592592592595E-2'
373
+ expect(@cell.is_date?).to be(true)
374
+ expect(@cell.value).to eq(DateTime.parse('1899-12-31 00:28:02'))
375
+ end
376
+ end
377
+
378
+ context 'with RichText' do
379
+ it 'returns the value of the RichText' do
380
+ cell = RubyXL::Cell.new(is: RubyXL::RichText.new(t: RubyXL::Text.new(value: 'test')))
381
+ expect(cell.value).to eq('test')
382
+ end
383
+ end
301
384
  end
302
385
 
303
386
  describe '.change_contents' do
@@ -316,6 +399,15 @@ describe RubyXL::Cell do
316
399
  expect(@cell.formula).to be_nil
317
400
  end
318
401
 
402
+ it 'should cause cell value to match a time that is passed in' do
403
+ time = Time.parse('January 1, 2011')
404
+ @cell.change_contents(time)
405
+ expect(@cell).to receive(:is_date?).at_least(1).and_return(true)
406
+ expect(@cell.value).to eq(time.to_datetime)
407
+ expect(@cell.datatype).to be_nil
408
+ expect(@cell.formula).to be_nil
409
+ end
410
+
319
411
  it 'should case cell value to match a Float that is passed in' do
320
412
  number = 1.25
321
413
  @cell.change_contents(number)
@@ -332,8 +424,8 @@ describe RubyXL::Cell do
332
424
  expect(@cell.formula).to be_nil
333
425
  end
334
426
 
335
- it 'should case cell value to match an BigDecimal that is passed in' do
336
- number = BigDecimal.new('1234.5678')
427
+ it 'should cause cell value to match a BigDecimal that is passed in' do
428
+ number = BigDecimal('1234.5678')
337
429
  @cell.change_contents(number)
338
430
  expect(@cell.value).to eq(number)
339
431
  expect(@cell.datatype).to be_nil
@@ -420,6 +512,18 @@ describe RubyXL::Cell do
420
512
  it 'should return nil if no horizontal alignment has been specified for this cell' do
421
513
  expect(@cell.horizontal_alignment).to be_nil
422
514
  end
515
+
516
+ it 'should not create new XFs when changing alignment to already existing values' do
517
+ @cell.change_horizontal_alignment('left')
518
+ style_xf1 = @cell.style_index
519
+ @cell.change_horizontal_alignment('right')
520
+ expect(@cell.style_index).not_to eq(style_xf1)
521
+ style_xf2 = @cell.style_index
522
+ @cell.change_horizontal_alignment('left')
523
+ expect(@cell.style_index).to eq(style_xf1)
524
+ @cell.change_horizontal_alignment('right')
525
+ expect(@cell.style_index).to eq(style_xf2)
526
+ end
423
527
  end
424
528
 
425
529
  describe '.vertical_alignment' do
@@ -488,4 +592,11 @@ describe RubyXL::Cell do
488
592
  end
489
593
  end
490
594
 
595
+ describe '.text_rotation' do
596
+ it 'should correctly return the rotation for this cell' do
597
+ expect(@cell.text_rotation).to be_nil
598
+ @cell.change_text_rotation(45)
599
+ expect(@cell.text_rotation).to eq(45)
600
+ end
601
+ end
491
602
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'rubyXL/convenience_methods/color'
2
3
 
3
4
  describe RubyXL::Color do
4
5
  describe '.validate_color' do
@@ -7,7 +8,7 @@ describe RubyXL::Color do
7
8
  end
8
9
 
9
10
  it 'should cause an error if an invalid hex color code or one with a # is passed' do
10
- expect {RubyXL::Color.validate_color('#G')}.to raise_error(RuntimeError)
11
+ expect { RubyXL::Color.validate_color('#G') }.to raise_error(RuntimeError)
11
12
  end
12
13
  end
13
14
  end
@@ -1,25 +1,25 @@
1
+ require 'English'
1
2
  require 'spec_helper'
2
3
  require 'tmpdir'
3
4
 
4
5
  describe RubyXL::Parser do
5
-
6
6
  before do
7
- @test_sheet_name = "This is a very long sheet name that should be trimmed to 31 characters for compatibility with MS Excel"
7
+ @test_sheet_name = 'This is a very long sheet name that should be trimmed to 31 characters for compatibility with MS Excel'
8
8
  @workbook = RubyXL::Workbook.new
9
- @workbook.add_worksheet("Test Worksheet")
9
+ @workbook.add_worksheet('Test Worksheet')
10
10
  @time = Time.at(Time.now.to_i) # Excel only saves times with 1-second precision.
11
11
  @time2 = @time + 123456
12
12
 
13
- ws = @workbook.add_worksheet("Escape Test")
14
- ws.add_cell(0, 0, "&")
15
- ws.add_cell(0, 1, "<")
16
- ws.add_cell(0, 2, ">")
17
- ws.add_cell(0, 3, "")
13
+ ws = @workbook.add_worksheet('Escape Test')
14
+ ws.add_cell(0, 0, '&')
15
+ ws.add_cell(0, 1, '<')
16
+ ws.add_cell(0, 2, '>')
17
+ ws.add_cell(0, 3, '')
18
18
 
19
- ws.add_cell(1, 0, "&")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
20
- ws.add_cell(1, 1, "<")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
21
- ws.add_cell(1, 2, ">")#TODO#.datatype = RubyXL::Cell::SHARED_STRING
22
- ws.add_cell(1, 3, "")
19
+ ws.add_cell(1, 0, '&')#TODO#.datatype = RubyXL::Cell::SHARED_STRING
20
+ ws.add_cell(1, 1, '<')#TODO#.datatype = RubyXL::Cell::SHARED_STRING
21
+ ws.add_cell(1, 2, '>')#TODO#.datatype = RubyXL::Cell::SHARED_STRING
22
+ ws.add_cell(1, 3, '')
23
23
 
24
24
  ws.add_cell(2, 0, 0)
25
25
  ws.add_cell(2, 1, 12345)
@@ -35,13 +35,13 @@ describe RubyXL::Parser do
35
35
 
36
36
  @workbook.add_worksheet(@test_sheet_name)
37
37
 
38
- @workbook.creator = "test creator"
39
- @workbook.modifier = "test modifier"
38
+ @workbook.creator = 'test creator'
39
+ @workbook.modifier = 'test modifier'
40
40
  @workbook.created_at = @time
41
41
  @workbook.modified_at = @time2
42
42
 
43
43
  @time_str = Time.now.to_s
44
- @file = Dir::Tmpname.make_tmpname(['rubyXL', '.xlsx'], nil)
44
+ @file = "rubyXL-#{$PROCESS_ID}-#{DateTime.now.strftime('%Q')}.xlsx"
45
45
  @workbook.write(@file)
46
46
  end
47
47
 
@@ -58,7 +58,7 @@ describe RubyXL::Parser do
58
58
  end
59
59
 
60
60
  it 'should cause an error if an xlsx or xlsm workbook is not passed' do
61
- expect {@workbook2 = RubyXL::Parser.parse("nonexistent_file.tmp")}.to raise_error(Zip::Error)
61
+ expect { @workbook2 = RubyXL::Parser.parse('nonexistent_file.tmp') }.to raise_error(Zip::Error)
62
62
  end
63
63
 
64
64
  it 'should construct consistent number formats' do
@@ -69,19 +69,19 @@ describe RubyXL::Parser do
69
69
 
70
70
  it 'should unescape HTML entities properly' do
71
71
  @workbook2 = RubyXL::Parser.parse(@file)
72
- expect(@workbook2["Escape Test"][0][0].value).to eq("&")
73
- expect(@workbook2["Escape Test"][0][1].value).to eq("<")
74
- expect(@workbook2["Escape Test"][0][2].value).to eq(">")
72
+ expect(@workbook2['Escape Test'][0][0].value).to eq('&')
73
+ expect(@workbook2['Escape Test'][0][1].value).to eq('<')
74
+ expect(@workbook2['Escape Test'][0][2].value).to eq('>')
75
75
 
76
- expect(@workbook2["Escape Test"][1][0].value).to eq("&")
77
- expect(@workbook2["Escape Test"][1][1].value).to eq("<")
78
- expect(@workbook2["Escape Test"][1][2].value).to eq(">")
76
+ expect(@workbook2['Escape Test'][1][0].value).to eq('&')
77
+ expect(@workbook2['Escape Test'][1][1].value).to eq('<')
78
+ expect(@workbook2['Escape Test'][1][2].value).to eq('>')
79
79
  end
80
80
 
81
81
  it 'should parse Core properties correctly' do
82
82
  @workbook2 = RubyXL::Parser.parse(@file)
83
- expect(@workbook2.creator).to eq("test creator")
84
- expect(@workbook2.modifier).to eq("test modifier")
83
+ expect(@workbook2.creator).to eq('test creator')
84
+ expect(@workbook2.modifier).to eq('test modifier')
85
85
  expect(@workbook2.created_at).to eq(@time)
86
86
  expect(@workbook2.modified_at).to eq(@time2)
87
87
  end
@@ -91,11 +91,9 @@ describe RubyXL::Parser do
91
91
  expect(@workbook2[@test_sheet_name]).to be_nil
92
92
  expect(@workbook2[@test_sheet_name[0..30]]).not_to be_nil
93
93
  end
94
-
95
94
  end
96
95
 
97
96
  describe 'parse_buffer' do
98
-
99
97
  it 'should parse string buffer correctly' do
100
98
  buffer = File.read(@file)
101
99
  expect(buffer).to be_instance_of(String)
@@ -109,7 +107,6 @@ describe RubyXL::Parser do
109
107
  f = RubyXL::Parser.parse_buffer(io)
110
108
  expect(f).to be_instance_of(RubyXL::Workbook)
111
109
  end
112
-
113
110
  end
114
111
 
115
112
  after do
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RubyXL::Reference do
4
-
5
4
  describe '.ind2ref + .ref2ind' do
6
5
  it 'should correctly return the "Excel Style" description of cells when given a row/column number' do
7
6
  expect(RubyXL::Reference.ind2ref(0, 26)).to eq('AA1')
@@ -20,9 +19,16 @@ describe RubyXL::Reference do
20
19
  end
21
20
  end
22
21
 
22
+ it 'valid? should be true on valid references' do
23
+ expect(RubyXL::Reference.new('C23').valid?).to be true
24
+ end
25
+
26
+ it 'valid? should be false on invalid references' do
27
+ expect(RubyXL::Reference.new('C2A').valid?).to be false
28
+ end
29
+
23
30
  it 'should return [-1, -1] if the Excel index is not well-formed' do
24
31
  expect(RubyXL::Reference.ref2ind('A1B')).to eq([-1, -1])
25
32
  end
26
33
  end
27
-
28
- end
34
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ require 'rubyXL/convenience_methods/color'
3
+
4
+ describe RubyXL::RgbColor do
5
+ describe '.to_s' do
6
+ it 'should properly translate RGB color to string' do
7
+ rgb_color = RubyXL::RgbColor.new
8
+
9
+ rgb_color.r = 1
10
+ rgb_color.g = 2
11
+ rgb_color.b = 255
12
+
13
+ expect(rgb_color.to_s).to eq('0102ff')
14
+ end
15
+
16
+ it 'should properly translate RGB color with alpha value to string' do
17
+ rgb_color = RubyXL::RgbColor.new
18
+
19
+ rgb_color.r = 11
20
+ rgb_color.g = 22
21
+ rgb_color.b = 33
22
+ rgb_color.a = 255
23
+
24
+ expect(rgb_color.to_s).to eq('0b1621ff')
25
+ end
26
+ end
27
+ end
@@ -1,28 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RubyXL::NumberFormat do
4
-
5
4
  describe '.is_date_format?' do
6
5
  it 'should return true if number format = dd// yy// mm' do
7
- expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'dd// yy// mm').is_date_format?()).to eq(true)
8
- end
6
+ expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'dd// yy// mm').is_date_format?).to eq(true)
7
+ end
9
8
 
10
9
  it 'should return true if number format = DD// YY// MM (uppercase)' do
11
- expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'DD// YY// MM').is_date_format?()).to eq(true)
12
- end
10
+ expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'DD// YY// MM').is_date_format?).to eq(true)
11
+ end
13
12
 
14
13
  it 'should return false if number format = @' do
15
- expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => '@').is_date_format?()).to eq(false)
16
- expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'general').is_date_format?()).to eq(false)
17
- expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => '0.00e+00').is_date_format?()).to eq(false)
18
- end
14
+ expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => '@').is_date_format?).to eq(false)
15
+ expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => 'general').is_date_format?).to eq(false)
16
+ expect(RubyXL::NumberFormat.new(:num_fmt_id => 1, :format_code => '0.00e+00').is_date_format?).to eq(false)
17
+ end
19
18
 
20
19
  it 'should properly detect date formats amongst default ones' do
21
20
  all_formats = RubyXL::NumberFormats::DEFAULT_NUMBER_FORMATS
22
21
  id_list = all_formats.collect { |fmt| fmt.num_fmt_id if fmt.is_date_format? }.compact.sort
23
22
  expect(id_list).to eq([14, 15, 16, 17, 18, 19, 20, 21, 22, 45, 46, 47])
24
23
  end
25
-
26
24
  end
27
-
28
25
  end