rubyXL 3.3.29 → 3.4.27

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 (466) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +60 -0
  3. data/.rubocop.yml +96 -0
  4. data/CHANGELOG.md +12 -0
  5. data/Gemfile +11 -8
  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 +2 -29
  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 -1122
  17. data/lib/rubyXL/objects/border.rb +0 -3
  18. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  19. data/lib/rubyXL/objects/cell_style.rb +4 -6
  20. data/lib/rubyXL/objects/chartsheet.rb +8 -12
  21. data/lib/rubyXL/objects/color.rb +3 -5
  22. data/lib/rubyXL/objects/column_range.rb +0 -3
  23. data/lib/rubyXL/objects/comments.rb +1 -4
  24. data/lib/rubyXL/objects/connection.rb +175 -0
  25. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  26. data/lib/rubyXL/objects/content_types.rb +3 -6
  27. data/lib/rubyXL/objects/data_validation.rb +2 -2
  28. data/lib/rubyXL/objects/document_properties.rb +11 -15
  29. data/lib/rubyXL/objects/extensions.rb +0 -2
  30. data/lib/rubyXL/objects/external_links.rb +38 -8
  31. data/lib/rubyXL/objects/fill.rb +2 -5
  32. data/lib/rubyXL/objects/filters.rb +5 -7
  33. data/lib/rubyXL/objects/font.rb +2 -7
  34. data/lib/rubyXL/objects/formula.rb +3 -5
  35. data/lib/rubyXL/objects/ooxml_object.rb +26 -19
  36. data/lib/rubyXL/objects/query_table.rb +104 -0
  37. data/lib/rubyXL/objects/reference.rb +17 -12
  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 +3 -6
  41. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  42. data/lib/rubyXL/objects/sheet_data.rb +38 -11
  43. data/lib/rubyXL/objects/simple_types.rb +19 -2
  44. data/lib/rubyXL/objects/storage.rb +59 -48
  45. data/lib/rubyXL/objects/stylesheet.rb +8 -15
  46. data/lib/rubyXL/objects/text.rb +5 -7
  47. data/lib/rubyXL/objects/theme.rb +24 -8
  48. data/lib/rubyXL/objects/workbook.rb +141 -33
  49. data/lib/rubyXL/objects/worksheet.rb +46 -32
  50. data/lib/rubyXL/parser.rb +1 -3
  51. data/lib/rubyXL/worksheet.rb +91 -91
  52. data/lib/rubyXL.rb +1 -1
  53. data/rdoc/README_rdoc.html +209 -151
  54. data/rdoc/RubyXL/AExtension.html +33 -69
  55. data/rdoc/RubyXL/AExtensionStorageArea.html +12 -18
  56. data/rdoc/RubyXL/ActiveX.html +26 -52
  57. data/rdoc/RubyXL/ActiveXBinary.html +12 -23
  58. data/rdoc/RubyXL/AdjustHandleList.html +13 -20
  59. data/rdoc/RubyXL/Alignment.html +13 -20
  60. data/rdoc/RubyXL/AlternateContent.html +12 -18
  61. data/rdoc/RubyXL/AlternateUrls.html +99 -0
  62. data/rdoc/RubyXL/Authors.html +13 -20
  63. data/rdoc/RubyXL/AutoFilter.html +13 -20
  64. data/rdoc/RubyXL/AutoFilterColumn.html +13 -20
  65. data/rdoc/RubyXL/BinaryImageFile.html +12 -26
  66. data/rdoc/RubyXL/BodyProperties.html +13 -20
  67. data/rdoc/RubyXL/BooleanNode.html +12 -18
  68. data/rdoc/RubyXL/BooleanValue.html +12 -18
  69. data/rdoc/RubyXL/Border.html +49 -101
  70. data/rdoc/RubyXL/BorderEdge.html +32 -61
  71. data/rdoc/RubyXL/Borders.html +25 -44
  72. data/rdoc/RubyXL/Break.html +13 -20
  73. data/rdoc/RubyXL/BreakList.html +13 -20
  74. data/rdoc/RubyXL/CT_AdjPoint2D.html +13 -20
  75. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +13 -20
  76. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +13 -20
  77. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +13 -20
  78. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +13 -20
  79. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +13 -20
  80. data/rdoc/RubyXL/CT_Backdrop.html +13 -20
  81. data/rdoc/RubyXL/CT_Bevel.html +13 -20
  82. data/rdoc/RubyXL/CT_BiLevelEffect.html +13 -20
  83. data/rdoc/RubyXL/CT_BlendEffect.html +13 -20
  84. data/rdoc/RubyXL/CT_Blip.html +13 -20
  85. data/rdoc/RubyXL/CT_BlipFillProperties.html +13 -20
  86. data/rdoc/RubyXL/CT_BlurEffect.html +13 -20
  87. data/rdoc/RubyXL/CT_Camera.html +13 -20
  88. data/rdoc/RubyXL/CT_Color.html +13 -20
  89. data/rdoc/RubyXL/CT_ColorChangeEffect.html +13 -20
  90. data/rdoc/RubyXL/CT_ColorMapping.html +13 -20
  91. data/rdoc/RubyXL/CT_ColorScheme.html +13 -20
  92. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +13 -20
  93. data/rdoc/RubyXL/CT_ConnectionSite.html +13 -20
  94. data/rdoc/RubyXL/CT_ConnectionSiteList.html +13 -20
  95. data/rdoc/RubyXL/CT_DashStop.html +13 -20
  96. data/rdoc/RubyXL/CT_DashStopList.html +13 -20
  97. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +13 -20
  98. data/rdoc/RubyXL/CT_DuotoneEffect.html +13 -20
  99. data/rdoc/RubyXL/CT_EffectContainer.html +13 -20
  100. data/rdoc/RubyXL/CT_EffectList.html +13 -20
  101. data/rdoc/RubyXL/CT_EffectReference.html +13 -20
  102. data/rdoc/RubyXL/CT_EffectStyleItem.html +13 -20
  103. data/rdoc/RubyXL/CT_EffectStyleList.html +13 -20
  104. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +13 -20
  105. data/rdoc/RubyXL/CT_FillEffect.html +13 -20
  106. data/rdoc/RubyXL/CT_FillOverlayEffect.html +13 -20
  107. data/rdoc/RubyXL/CT_FillStyleList.html +13 -20
  108. data/rdoc/RubyXL/CT_FlatText.html +13 -20
  109. data/rdoc/RubyXL/CT_FontCollection.html +13 -20
  110. data/rdoc/RubyXL/CT_FontReference.html +13 -20
  111. data/rdoc/RubyXL/CT_GeomGuideList.html +13 -20
  112. data/rdoc/RubyXL/CT_GlowEffect.html +13 -20
  113. data/rdoc/RubyXL/CT_GradientFillProperties.html +13 -20
  114. data/rdoc/RubyXL/CT_GradientStop.html +13 -20
  115. data/rdoc/RubyXL/CT_GradientStopList.html +13 -20
  116. data/rdoc/RubyXL/CT_HSLEffect.html +13 -20
  117. data/rdoc/RubyXL/CT_HslColor.html +13 -20
  118. data/rdoc/RubyXL/CT_Hyperlink.html +13 -20
  119. data/rdoc/RubyXL/CT_InnerShadowEffect.html +13 -20
  120. data/rdoc/RubyXL/CT_LightRig.html +13 -20
  121. data/rdoc/RubyXL/CT_LineEndProperties.html +13 -20
  122. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +13 -20
  123. data/rdoc/RubyXL/CT_LineProperties.html +13 -20
  124. data/rdoc/RubyXL/CT_LineStyleList.html +13 -20
  125. data/rdoc/RubyXL/CT_LinearShadeProperties.html +13 -20
  126. data/rdoc/RubyXL/CT_LuminanceEffect.html +13 -20
  127. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +13 -20
  128. data/rdoc/RubyXL/CT_OuterShadowEffect.html +13 -20
  129. data/rdoc/RubyXL/CT_Path2D.html +13 -20
  130. data/rdoc/RubyXL/CT_Path2DArcTo.html +13 -20
  131. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +13 -20
  132. data/rdoc/RubyXL/CT_Path2DList.html +13 -20
  133. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +13 -20
  134. data/rdoc/RubyXL/CT_Path2DTo.html +13 -20
  135. data/rdoc/RubyXL/CT_PathShadeProperties.html +13 -20
  136. data/rdoc/RubyXL/CT_PatternFillProperties.html +13 -20
  137. data/rdoc/RubyXL/CT_Point3D.html +13 -20
  138. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +13 -20
  139. data/rdoc/RubyXL/CT_PresetColor.html +13 -20
  140. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +13 -20
  141. data/rdoc/RubyXL/CT_PresetShadowEffect.html +13 -20
  142. data/rdoc/RubyXL/CT_PresetTextShape.html +13 -20
  143. data/rdoc/RubyXL/CT_ReflectionEffect.html +13 -20
  144. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +13 -20
  145. data/rdoc/RubyXL/CT_RelativeRect.html +13 -20
  146. data/rdoc/RubyXL/CT_SRgbColor.html +13 -20
  147. data/rdoc/RubyXL/CT_ScRgbColor.html +13 -20
  148. data/rdoc/RubyXL/CT_Scene3D.html +13 -20
  149. data/rdoc/RubyXL/CT_SchemeColor.html +13 -20
  150. data/rdoc/RubyXL/CT_Shape3D.html +13 -20
  151. data/rdoc/RubyXL/CT_ShapeStyle.html +13 -20
  152. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +13 -20
  153. data/rdoc/RubyXL/CT_SphereCoords.html +13 -20
  154. data/rdoc/RubyXL/CT_StretchInfoProperties.html +13 -20
  155. data/rdoc/RubyXL/CT_StyleMatrix.html +13 -20
  156. data/rdoc/RubyXL/CT_StyleMatrixReference.html +13 -20
  157. data/rdoc/RubyXL/CT_SupplementalFont.html +13 -20
  158. data/rdoc/RubyXL/CT_SystemColor.html +13 -20
  159. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +13 -20
  160. data/rdoc/RubyXL/CT_TextBlipBullet.html +13 -20
  161. data/rdoc/RubyXL/CT_TextCharBullet.html +13 -20
  162. data/rdoc/RubyXL/CT_TextCharacterProperties.html +13 -20
  163. data/rdoc/RubyXL/CT_TextFont.html +13 -20
  164. data/rdoc/RubyXL/CT_TextListStyle.html +13 -20
  165. data/rdoc/RubyXL/CT_TextNormalAutofit.html +13 -20
  166. data/rdoc/RubyXL/CT_TextParagraphProperties.html +13 -20
  167. data/rdoc/RubyXL/CT_TextSpacing.html +13 -20
  168. data/rdoc/RubyXL/CT_TextTabStop.html +13 -20
  169. data/rdoc/RubyXL/CT_TextTabStopList.html +13 -20
  170. data/rdoc/RubyXL/CT_TileInfoProperties.html +13 -20
  171. data/rdoc/RubyXL/CT_TintEffect.html +13 -20
  172. data/rdoc/RubyXL/CT_Transform2D.html +13 -20
  173. data/rdoc/RubyXL/CT_TransformEffect.html +13 -20
  174. data/rdoc/RubyXL/CT_Vector3D.html +13 -20
  175. data/rdoc/RubyXL/CT_XYAdjustHandle.html +13 -20
  176. data/rdoc/RubyXL/CalculationChain.html +23 -50
  177. data/rdoc/RubyXL/CalculationChainCell.html +13 -20
  178. data/rdoc/RubyXL/CalculationProperties.html +13 -20
  179. data/rdoc/RubyXL/Cell.html +205 -253
  180. data/rdoc/RubyXL/CellConvenienceMethods.html +437 -571
  181. data/rdoc/RubyXL/CellExt.html +13 -20
  182. data/rdoc/RubyXL/CellSmartTag.html +13 -20
  183. data/rdoc/RubyXL/CellSmartTagProperty.html +13 -20
  184. data/rdoc/RubyXL/CellSmartTags.html +13 -20
  185. data/rdoc/RubyXL/CellStyle.html +13 -20
  186. data/rdoc/RubyXL/CellStyleXFs.html +25 -44
  187. data/rdoc/RubyXL/CellStyles.html +25 -44
  188. data/rdoc/RubyXL/CellValue.html +24 -43
  189. data/rdoc/RubyXL/CellWatch.html +13 -20
  190. data/rdoc/RubyXL/CellWatches.html +13 -20
  191. data/rdoc/RubyXL/CellXFs.html +26 -47
  192. data/rdoc/RubyXL/ChartColorsFile.html +12 -26
  193. data/rdoc/RubyXL/ChartFile.html +25 -54
  194. data/rdoc/RubyXL/ChartStyleFile.html +12 -26
  195. data/rdoc/RubyXL/ChartUserShapesFile.html +12 -26
  196. data/rdoc/RubyXL/Chartsheet.html +26 -73
  197. data/rdoc/RubyXL/ChartsheetPageSetup.html +13 -20
  198. data/rdoc/RubyXL/ChartsheetProperties.html +13 -20
  199. data/rdoc/RubyXL/ChartsheetProtection.html +13 -20
  200. data/rdoc/RubyXL/ChartsheetView.html +13 -20
  201. data/rdoc/RubyXL/ChartsheetViews.html +13 -20
  202. data/rdoc/RubyXL/Color.html +24 -48
  203. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +246 -0
  204. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +285 -0
  205. data/rdoc/RubyXL/ColorConvenienceClasses.html +91 -0
  206. data/rdoc/RubyXL/ColorConvenienceMethods.html +139 -0
  207. data/rdoc/RubyXL/ColorFilter.html +13 -20
  208. data/rdoc/RubyXL/ColorScale.html +13 -20
  209. data/rdoc/RubyXL/ColorSet.html +13 -20
  210. data/rdoc/RubyXL/Colors.html +13 -20
  211. data/rdoc/RubyXL/ColumnRange.html +41 -87
  212. data/rdoc/RubyXL/ColumnRanges.html +48 -100
  213. data/rdoc/RubyXL/Comment.html +13 -20
  214. data/rdoc/RubyXL/CommentList.html +13 -20
  215. data/rdoc/RubyXL/CommentsFile.html +24 -56
  216. data/rdoc/RubyXL/ConditionalFormatValue.html +13 -20
  217. data/rdoc/RubyXL/ConditionalFormatting.html +13 -20
  218. data/rdoc/RubyXL/ConditionalFormattingRule.html +13 -20
  219. data/rdoc/RubyXL/Connection.html +99 -0
  220. data/rdoc/RubyXL/ConnectionTable.html +99 -0
  221. data/rdoc/RubyXL/ConnectionTables.html +99 -0
  222. data/rdoc/RubyXL/ConnectionTextField.html +99 -0
  223. data/rdoc/RubyXL/ConnectionTextFields.html +99 -0
  224. data/rdoc/RubyXL/Connections.html +149 -0
  225. data/rdoc/RubyXL/ContentTypeDefault.html +12 -18
  226. data/rdoc/RubyXL/ContentTypeOverride.html +12 -18
  227. data/rdoc/RubyXL/ContentTypes.html +35 -72
  228. data/rdoc/RubyXL/ControlPropertiesFile.html +14 -23
  229. data/rdoc/RubyXL/CorePropertiesFile.html +89 -208
  230. data/rdoc/RubyXL/CustomColor.html +13 -20
  231. data/rdoc/RubyXL/CustomColorList.html +13 -20
  232. data/rdoc/RubyXL/CustomFilter.html +13 -20
  233. data/rdoc/RubyXL/CustomFilters.html +13 -20
  234. data/rdoc/RubyXL/CustomGeometry.html +13 -20
  235. data/rdoc/RubyXL/CustomProperties.html +13 -20
  236. data/rdoc/RubyXL/CustomPropertiesFile.html +12 -26
  237. data/rdoc/RubyXL/CustomProperty.html +13 -20
  238. data/rdoc/RubyXL/CustomPropertyFile.html +108 -0
  239. data/rdoc/RubyXL/CustomSheetView.html +13 -20
  240. data/rdoc/RubyXL/CustomSheetViews.html +13 -20
  241. data/rdoc/RubyXL/CustomWorkbookView.html +13 -20
  242. data/rdoc/RubyXL/CustomWorkbookViews.html +13 -20
  243. data/rdoc/RubyXL/CustomXMLFile.html +12 -23
  244. data/rdoc/RubyXL/DXF.html +13 -20
  245. data/rdoc/RubyXL/DXFs.html +13 -20
  246. data/rdoc/RubyXL/DataBar.html +13 -20
  247. data/rdoc/RubyXL/DataConsolidate.html +13 -20
  248. data/rdoc/RubyXL/DataConsolidationReference.html +13 -20
  249. data/rdoc/RubyXL/DataConsolidationReferences.html +13 -20
  250. data/rdoc/RubyXL/DataType.html +11 -40
  251. data/rdoc/RubyXL/DataValidation.html +13 -20
  252. data/rdoc/RubyXL/DataValidations.html +13 -20
  253. data/rdoc/RubyXL/DateGroupItem.html +13 -20
  254. data/rdoc/RubyXL/DefinedName.html +13 -20
  255. data/rdoc/RubyXL/DefinedNameExt.html +13 -20
  256. data/rdoc/RubyXL/DefinedNames.html +13 -20
  257. data/rdoc/RubyXL/DefinedNamesExt.html +13 -20
  258. data/rdoc/RubyXL/DocumentPropertiesFile.html +34 -77
  259. data/rdoc/RubyXL/DrawingFile.html +25 -54
  260. data/rdoc/RubyXL/DynamicFilter.html +13 -20
  261. data/rdoc/RubyXL/EmbeddedControl.html +13 -20
  262. data/rdoc/RubyXL/EmbeddedControls.html +13 -20
  263. data/rdoc/RubyXL/Extension.html +13 -20
  264. data/rdoc/RubyXL/ExtensionStorageArea.html +13 -20
  265. data/rdoc/RubyXL/Extents.html +13 -20
  266. data/rdoc/RubyXL/ExternalBook.html +13 -20
  267. data/rdoc/RubyXL/ExternalLinksFile.html +25 -54
  268. data/rdoc/RubyXL/ExternalReference.html +13 -20
  269. data/rdoc/RubyXL/ExternalReferences.html +13 -20
  270. data/rdoc/RubyXL/ExtraColorSchemeList.html +13 -20
  271. data/rdoc/RubyXL/FieldItem.html +13 -20
  272. data/rdoc/RubyXL/FileRecoveryProperties.html +13 -20
  273. data/rdoc/RubyXL/FileSharing.html +13 -20
  274. data/rdoc/RubyXL/FileVersion.html +13 -20
  275. data/rdoc/RubyXL/Fill.html +25 -44
  276. data/rdoc/RubyXL/Fills.html +25 -44
  277. data/rdoc/RubyXL/FilterContainer.html +13 -20
  278. data/rdoc/RubyXL/FloatNode.html +12 -18
  279. data/rdoc/RubyXL/FloatValue.html +12 -18
  280. data/rdoc/RubyXL/Font.html +28 -64
  281. data/rdoc/RubyXL/FontConvenienceMethods.html +133 -294
  282. data/rdoc/RubyXL/FontScheme.html +13 -20
  283. data/rdoc/RubyXL/Fonts.html +25 -44
  284. data/rdoc/RubyXL/Formula.html +13 -20
  285. data/rdoc/RubyXL/FunctionGroup.html +13 -20
  286. data/rdoc/RubyXL/FunctionGroups.html +13 -20
  287. data/rdoc/RubyXL/GenericStorageObject.html +40 -97
  288. data/rdoc/RubyXL/GradientFill.html +13 -20
  289. data/rdoc/RubyXL/HeaderFooterSettings.html +13 -20
  290. data/rdoc/RubyXL/Hyperlink.html +13 -20
  291. data/rdoc/RubyXL/HyperlinkRelFile.html +12 -23
  292. data/rdoc/RubyXL/Hyperlinks.html +13 -20
  293. data/rdoc/RubyXL/IconFilter.html +13 -20
  294. data/rdoc/RubyXL/IconSet.html +13 -20
  295. data/rdoc/RubyXL/IgnoredError.html +13 -20
  296. data/rdoc/RubyXL/IgnoredErrors.html +13 -20
  297. data/rdoc/RubyXL/IndexedColors.html +13 -20
  298. data/rdoc/RubyXL/InputCells.html +13 -20
  299. data/rdoc/RubyXL/IntegerNode.html +12 -18
  300. data/rdoc/RubyXL/IntegerValue.html +12 -18
  301. data/rdoc/RubyXL/LegacyCell.html +20 -71
  302. data/rdoc/RubyXL/LegacyWorksheet.html +75 -124
  303. data/rdoc/RubyXL/MRUColors.html +13 -20
  304. data/rdoc/RubyXL/MacrosFile.html +12 -26
  305. data/rdoc/RubyXL/MergedCell.html +13 -20
  306. data/rdoc/RubyXL/MergedCells.html +13 -20
  307. data/rdoc/RubyXL/NumFmt.html +13 -20
  308. data/rdoc/RubyXL/NumberFormat.html +25 -44
  309. data/rdoc/RubyXL/NumberFormats.html +25 -50
  310. data/rdoc/RubyXL/OLEObject.html +13 -20
  311. data/rdoc/RubyXL/OLEObjectFile.html +12 -26
  312. data/rdoc/RubyXL/OLEObjects.html +13 -20
  313. data/rdoc/RubyXL/OLESize.html +13 -20
  314. data/rdoc/RubyXL/OOXMLContainerObject.html +72 -157
  315. data/rdoc/RubyXL/OOXMLIgnored.html +32 -62
  316. data/rdoc/RubyXL/OOXMLObject.html +15 -26
  317. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +122 -202
  318. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +96 -217
  319. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +108 -241
  320. data/rdoc/RubyXL/OOXMLTopLevelObject.html +67 -154
  321. data/rdoc/RubyXL/OdbcOleDbProperties.html +99 -0
  322. data/rdoc/RubyXL/Offset.html +13 -20
  323. data/rdoc/RubyXL/OlapProperties.html +99 -0
  324. data/rdoc/RubyXL/OleItem.html +99 -0
  325. data/rdoc/RubyXL/OleItems.html +99 -0
  326. data/rdoc/RubyXL/OleLink.html +99 -0
  327. data/rdoc/RubyXL/OutlineProperties.html +13 -20
  328. data/rdoc/RubyXL/PageMargins.html +13 -20
  329. data/rdoc/RubyXL/PageSetup.html +13 -20
  330. data/rdoc/RubyXL/PageSetupProperties.html +13 -20
  331. data/rdoc/RubyXL/Pane.html +13 -20
  332. data/rdoc/RubyXL/Parser.html +35 -65
  333. data/rdoc/RubyXL/PatternFill.html +13 -20
  334. data/rdoc/RubyXL/PersonMetadata.html +108 -0
  335. data/rdoc/RubyXL/PhoneticProperties.html +13 -20
  336. data/rdoc/RubyXL/PhoneticRun.html +13 -20
  337. data/rdoc/RubyXL/PivotArea.html +13 -20
  338. data/rdoc/RubyXL/PivotCache.html +13 -20
  339. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +14 -31
  340. data/rdoc/RubyXL/PivotCacheRecordsFile.html +12 -26
  341. data/rdoc/RubyXL/PivotCaches.html +13 -20
  342. data/rdoc/RubyXL/PivotReference.html +13 -20
  343. data/rdoc/RubyXL/PivotReferences.html +13 -20
  344. data/rdoc/RubyXL/PivotTableFile.html +14 -31
  345. data/rdoc/RubyXL/PivotTableSelection.html +13 -20
  346. data/rdoc/RubyXL/PresetGeometry.html +13 -20
  347. data/rdoc/RubyXL/PrintOptions.html +13 -20
  348. data/rdoc/RubyXL/PrinterSettingsFile.html +12 -26
  349. data/rdoc/RubyXL/ProtectedRange.html +13 -20
  350. data/rdoc/RubyXL/ProtectedRanges.html +13 -20
  351. data/rdoc/RubyXL/Protection.html +13 -20
  352. data/rdoc/RubyXL/QueryParameter.html +99 -0
  353. data/rdoc/RubyXL/QueryParameters.html +99 -0
  354. data/rdoc/RubyXL/QueryTable.html +157 -0
  355. data/rdoc/RubyXL/QueryTableDeletedField.html +99 -0
  356. data/rdoc/RubyXL/QueryTableDeletedFields.html +99 -0
  357. data/rdoc/RubyXL/QueryTableField.html +99 -0
  358. data/rdoc/RubyXL/QueryTableFields.html +99 -0
  359. data/rdoc/RubyXL/QueryTableRefresh.html +99 -0
  360. data/rdoc/RubyXL/RID.html +12 -18
  361. data/rdoc/RubyXL/RawOOXML.html +33 -69
  362. data/rdoc/RubyXL/Reference.html +149 -283
  363. data/rdoc/RubyXL/Relationship.html +12 -18
  364. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +20 -37
  365. data/rdoc/RubyXL/RelationshipSupport.html +62 -145
  366. data/rdoc/RubyXL/RevisionPointer.html +13 -23
  367. data/rdoc/RubyXL/RichText.html +26 -44
  368. data/rdoc/RubyXL/RichTextRun.html +24 -43
  369. data/rdoc/RubyXL/Row.html +88 -205
  370. data/rdoc/RubyXL/RowExt.html +13 -20
  371. data/rdoc/RubyXL/RunProperties.html +13 -20
  372. data/rdoc/RubyXL/Scenario.html +13 -20
  373. data/rdoc/RubyXL/Scenarios.html +13 -20
  374. data/rdoc/RubyXL/Selection.html +23 -42
  375. data/rdoc/RubyXL/ShapeGuide.html +13 -20
  376. data/rdoc/RubyXL/ShapeTextRectangle.html +13 -20
  377. data/rdoc/RubyXL/SharedStringsTable.html +80 -176
  378. data/rdoc/RubyXL/Sheet.html +13 -20
  379. data/rdoc/RubyXL/SheetCalculationProperties.html +13 -20
  380. data/rdoc/RubyXL/SheetData.html +32 -62
  381. data/rdoc/RubyXL/SheetDataExt.html +13 -20
  382. data/rdoc/RubyXL/SheetDataSet.html +13 -20
  383. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  384. data/rdoc/RubyXL/SheetName.html +13 -20
  385. data/rdoc/RubyXL/SheetNames.html +13 -20
  386. data/rdoc/RubyXL/Sheets.html +13 -20
  387. data/rdoc/RubyXL/SlicerCacheFile.html +12 -26
  388. data/rdoc/RubyXL/SlicerFile.html +12 -26
  389. data/rdoc/RubyXL/SmartTagProperties.html +13 -20
  390. data/rdoc/RubyXL/SmartTagType.html +13 -20
  391. data/rdoc/RubyXL/SmartTagTypes.html +13 -20
  392. data/rdoc/RubyXL/SmartTags.html +13 -20
  393. data/rdoc/RubyXL/SortCondition.html +13 -20
  394. data/rdoc/RubyXL/SortState.html +13 -20
  395. data/rdoc/RubyXL/Sqref.html +32 -62
  396. data/rdoc/RubyXL/Stop.html +13 -20
  397. data/rdoc/RubyXL/StringNode.html +12 -18
  398. data/rdoc/RubyXL/StringNodeW3C.html +33 -63
  399. data/rdoc/RubyXL/StringValue.html +12 -18
  400. data/rdoc/RubyXL/Stylesheet.html +65 -138
  401. data/rdoc/RubyXL/TableFile.html +12 -26
  402. data/rdoc/RubyXL/TableParts.html +12 -18
  403. data/rdoc/RubyXL/TableStyle.html +13 -20
  404. data/rdoc/RubyXL/TableStyles.html +13 -20
  405. data/rdoc/RubyXL/Text.html +35 -76
  406. data/rdoc/RubyXL/TextImportSettings.html +99 -0
  407. data/rdoc/RubyXL/Theme.html +71 -71
  408. data/rdoc/RubyXL/ThemeElements.html +13 -20
  409. data/rdoc/RubyXL/ThumbnailFile.html +12 -26
  410. data/rdoc/RubyXL/Top10.html +13 -20
  411. data/rdoc/RubyXL/VMLDrawingFile.html +15 -33
  412. data/rdoc/RubyXL/Variant.html +13 -20
  413. data/rdoc/RubyXL/Vector.html +24 -43
  414. data/rdoc/RubyXL/VectorValue.html +12 -18
  415. data/rdoc/RubyXL/VisualProperties.html +13 -20
  416. data/rdoc/RubyXL/WebPublishObject.html +13 -20
  417. data/rdoc/RubyXL/WebPublishObjects.html +13 -20
  418. data/rdoc/RubyXL/WebPublishingItem.html +13 -20
  419. data/rdoc/RubyXL/WebPublishingItems.html +13 -20
  420. data/rdoc/RubyXL/WebPublishingProperties.html +13 -20
  421. data/rdoc/RubyXL/WebQueryProperties.html +99 -0
  422. data/rdoc/RubyXL/Workbook.html +580 -265
  423. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +229 -950
  424. data/rdoc/RubyXL/WorkbookProperties.html +13 -20
  425. data/rdoc/RubyXL/WorkbookProtection.html +13 -20
  426. data/rdoc/RubyXL/WorkbookRoot.html +58 -135
  427. data/rdoc/RubyXL/WorkbookView.html +13 -20
  428. data/rdoc/RubyXL/WorkbookViews.html +13 -20
  429. data/rdoc/RubyXL/Worksheet.html +122 -137
  430. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +698 -1371
  431. data/rdoc/RubyXL/WorksheetDimensions.html +13 -20
  432. data/rdoc/RubyXL/WorksheetFormatProperties.html +12 -18
  433. data/rdoc/RubyXL/WorksheetProperties.html +13 -20
  434. data/rdoc/RubyXL/WorksheetProtection.html +13 -20
  435. data/rdoc/RubyXL/WorksheetView.html +13 -20
  436. data/rdoc/RubyXL/WorksheetViews.html +13 -20
  437. data/rdoc/RubyXL/XF.html +13 -20
  438. data/rdoc/RubyXL.html +46 -306
  439. data/rdoc/created.rid +45 -38
  440. data/rdoc/css/rdoc.css +109 -12
  441. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  442. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  443. data/rdoc/index.html +403 -726
  444. data/rdoc/js/darkfish.js +33 -97
  445. data/rdoc/js/navigation.js +12 -49
  446. data/rdoc/js/navigation.js.gz +0 -0
  447. data/rdoc/js/search.js +35 -34
  448. data/rdoc/js/search_index.js +1 -1
  449. data/rdoc/js/search_index.js.gz +0 -0
  450. data/rdoc/js/searcher.js +6 -6
  451. data/rdoc/js/searcher.js.gz +0 -0
  452. data/rdoc/table_of_contents.html +282 -45
  453. data/rubyXL.gemspec +77 -43
  454. data/spec/lib/cell_spec.rb +117 -6
  455. data/spec/lib/color_spec.rb +2 -1
  456. data/spec/lib/parser_spec.rb +24 -27
  457. data/spec/lib/reference_spec.rb +40 -5
  458. data/spec/lib/rgb_color_spec.rb +27 -0
  459. data/spec/lib/stylesheet_spec.rb +10 -11
  460. data/spec/lib/text_spec.rb +1 -5
  461. data/spec/lib/workbook_spec.rb +27 -6
  462. data/spec/lib/worksheet_spec.rb +873 -479
  463. data/spec/spec_helper.rb +2 -0
  464. data/test/test_parse_write.rb +15 -15
  465. metadata +76 -10
  466. data/rdoc/js/jquery.js +0 -4
@@ -3,9 +3,18 @@ require 'rubyXL/objects/simple_types'
3
3
  require 'rubyXL/objects/text'
4
4
  require 'rubyXL/objects/formula'
5
5
  require 'rubyXL/cell'
6
- require 'rubyXL/convenience_methods'
7
6
 
8
7
  module RubyXL
8
+ # http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.cellvalues(v=office.14).aspx
9
+ module DataType
10
+ SHARED_STRING = 's'
11
+ RAW_STRING = 'str'
12
+ INLINE_STRING = 'inlineStr'
13
+ ERROR = 'e'
14
+ BOOLEAN = 'b'
15
+ NUMBER = 'n'
16
+ DATE = 'd' # Only available in Office2010.
17
+ end
9
18
 
10
19
  # http://www.datypic.com/sc/ooxml/e-ssml_v-1.html
11
20
  class CellValue < OOXMLObject
@@ -25,15 +34,17 @@ module RubyXL
25
34
 
26
35
  define_attribute(:r, :ref)
27
36
  define_attribute(:s, :int, :default => 0, :accessor => :style_index)
28
- define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n' )
37
+ define_attribute(:t, RubyXL::ST_CellType, :accessor => :datatype, :default => 'n')
29
38
  define_attribute(:cm, :int, :default => 0)
30
39
  define_attribute(:vm, :int, :default => 0)
31
40
  define_attribute(:ph, :bool, :default => false)
32
41
  define_child_node(RubyXL::Formula, :accessor => :formula)
33
42
  define_child_node(RubyXL::CellValue, :accessor => :value_container)
34
- define_child_node(RubyXL::RichText) # is
43
+ define_child_node(RubyXL::RichText) # is
35
44
  define_element_name 'c'
36
45
 
46
+ attr_accessor :worksheet
47
+
37
48
  def index_in_collection
38
49
  r.col_range.begin
39
50
  end
@@ -63,12 +74,30 @@ module RubyXL
63
74
  value_container.value = v
64
75
  end
65
76
 
77
+ def get_cell_xf
78
+ workbook.stylesheet.cell_xfs[self.style_index || 0]
79
+ end
80
+
81
+ def get_cell_font
82
+ workbook.stylesheet.fonts[get_cell_xf.font_id]
83
+ end
84
+
85
+ def get_cell_border
86
+ workbook.stylesheet.borders[get_cell_xf.border_id]
87
+ end
88
+
66
89
  def number_format
67
90
  workbook.stylesheet.get_number_format_by_id(get_cell_xf.num_fmt_id)
68
91
  end
69
92
 
70
93
  def is_date?
71
- return false unless raw_value =~ NUMBER_REGEXP # Only fully numeric values can be dates
94
+ return false unless # Only fully numeric values can be dates
95
+ case raw_value
96
+ when Numeric then true
97
+ when String then raw_value =~ NUMBER_REGEXP
98
+ else false
99
+ end
100
+
72
101
  num_fmt = self.number_format
73
102
  num_fmt && num_fmt.is_date_format?
74
103
  end
@@ -83,9 +112,10 @@ module RubyXL
83
112
  when RubyXL::DataType::INLINE_STRING then is.to_s
84
113
  when RubyXL::DataType::RAW_STRING then raw_value
85
114
  else
86
- if is_date? then workbook.num_to_date(r.to_f)
115
+ if is then is.to_s
116
+ elsif is_date? then workbook.num_to_date(r.to_f)
87
117
  elsif r.is_a?(String) && (r =~ NUMBER_REGEXP) then # Numeric
88
- if $1 != '' then r.to_f
118
+ if Regexp.last_match(1) != '' then r.to_f
89
119
  else r.to_i
90
120
  end
91
121
  else r
@@ -95,13 +125,12 @@ module RubyXL
95
125
 
96
126
  def inspect
97
127
  str = "#<#{self.class}(#{row},#{column}): #{raw_value.inspect}"
98
- str += " =#{self.formula.expression}" if self.formula
99
- str += ", datatype=#{self.datatype.inspect}, style_index=#{self.style_index.inspect}>"
128
+ str << " =#{self.formula.expression}" if self.formula
129
+ str << ", datatype=#{self.datatype.inspect}, style_index=#{self.style_index.inspect}>"
100
130
  return str
101
131
  end
102
132
 
103
133
  include LegacyCell
104
- include CellConvenienceMethods
105
134
  end
106
135
 
107
136
  #TODO#<row r="1" spans="1:1" x14ac:dyDescent="0.25">
@@ -186,7 +215,5 @@ module RubyXL
186
215
  def size
187
216
  rows.size
188
217
  end
189
-
190
218
  end
191
-
192
219
  end
@@ -140,7 +140,7 @@ module RubyXL
140
140
  ST_TextHorzOverflowType = %w{ overflow clip }
141
141
  ST_TextVerticalType = %w{ horz vert vert270 wordArtVert eaVert mongolianVert wordArtVertRtl }
142
142
  ST_TextWrappingType = %w{ none square }
143
- ST_TextAnchoringType = %w{ t ctr b just dist }
143
+ ST_TextAnchoringType = %w{ t ctr b just dist }
144
144
  ST_TextShapeType = %w{ textNoShape textPlain textStop textTriangle textTriangleInverted textChevron
145
145
  textChevronInverted textRingInside textRingOutside textArchUp textArchDown
146
146
  textCircle textButton textArchUpPour textArchDownPour textCirclePour textButtonPour
@@ -223,10 +223,27 @@ module RubyXL
223
223
 
224
224
  ST_TextUnderlineType = %w{ none words sng dbl heavy dotted dottedHeavy dash dashHeavy dashLong dashLongHeavy
225
225
  dotDash dotDashHeavy dotDotDash dotDotDashHeavy wavy wavyHeavy wavyDbl }
226
+ ST_UnderlineValues = %w{ single double singleAccounting doubleAccounting none }
227
+
226
228
  ST_TextStrikeType = %w{ noStrike sngStrike dblStrike }
227
229
  ST_TextCapsType = %w{ none small all }
228
230
 
231
+ # TODO: http://www.datypic.com/sc/ooxml/t-ssml_ST_UnsignedIntHex.html
232
+ ST_UnsignedIntHex = :string # length = 4
229
233
  # TODO: http://www.datypic.com/sc/ooxml/t-ssml_ST_UnsignedShortHex.html
230
- ST_UnsignedShortHex = :string
234
+ ST_UnsignedShortHex = :string # length = 2
235
+
236
+ ST_Xstring = :string
237
+
238
+ # Query Tables
239
+ ST_GrowShrinkType = %w{ insertDelete insertClear overwriteClear }
240
+
241
+ # Connections
242
+ ST_CredMethod = %w{ integrated none stored prompt }
243
+ ST_ParameterType = %w{ prompt value cell }
244
+ ST_FileType = %w{ mac win dos }
245
+ ST_Qualifier = %w{ doubleQuote singleQuote none }
246
+ ST_ExternalConnectionType = %w{ general text MDY DMY YMD MYD DYM YDM skip EMD }
231
247
 
248
+ ST_HtmlFmt = %w{ none rtf all }
232
249
  end
@@ -1,5 +1,4 @@
1
1
  module RubyXL
2
-
3
2
  class GenericStorageObject
4
3
  SAVE_ORDER = 0
5
4
 
@@ -24,13 +23,18 @@ module RubyXL
24
23
  end
25
24
 
26
25
  class PrinterSettingsFile < GenericStorageObject
27
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings'
28
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'
26
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings'.freeze
27
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'.freeze
28
+ end
29
+
30
+ class CustomPropertyFile < GenericStorageObject
31
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty'.freeze
32
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty'.freeze
29
33
  end
30
34
 
31
35
  class DrawingFile < GenericStorageObject
32
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawing+xml'
33
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'
36
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawing+xml'.freeze
37
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'.freeze
34
38
 
35
39
  include RubyXL::RelationshipSupport
36
40
 
@@ -41,12 +45,11 @@ module RubyXL
41
45
  else store_relationship(rf, :unknown)
42
46
  end
43
47
  end
44
-
45
48
  end
46
49
 
47
50
  class ChartFile < GenericStorageObject
48
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
49
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'
51
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'.freeze
52
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.freeze
50
53
 
51
54
  include RubyXL::RelationshipSupport
52
55
 
@@ -58,18 +61,17 @@ module RubyXL
58
61
  else store_relationship(rf, :unknown)
59
62
  end
60
63
  end
61
-
62
64
  end
63
65
 
64
66
  class BinaryImageFile < GenericStorageObject
65
- CONTENT_TYPE = 'image/jpeg'
66
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'
67
+ CONTENT_TYPE = 'image/jpeg'.freeze
68
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'.freeze
67
69
  end
68
70
 
69
71
  class VMLDrawingFile < GenericStorageObject
70
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.vmlDrawing'
71
- # CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
72
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'
72
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.vmlDrawing'.freeze
73
+ # CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'.freeze
74
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing'.freeze
73
75
 
74
76
  include RubyXL::RelationshipSupport
75
77
 
@@ -77,32 +79,33 @@ module RubyXL
77
79
  end
78
80
 
79
81
  class ChartColorsFile < GenericStorageObject
80
- CONTENT_TYPE = 'application/vnd.ms-office.chartcolorstyle+xml'
81
- REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartColorStyle'
82
+ CONTENT_TYPE = 'application/vnd.ms-office.chartcolorstyle+xml'.freeze
83
+ REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartColorStyle'.freeze
82
84
  end
83
85
 
84
86
  class ChartStyleFile < GenericStorageObject
85
- CONTENT_TYPE = 'application/vnd.ms-office.chartstyle+xml'
86
- REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartStyle'
87
+ CONTENT_TYPE = 'application/vnd.ms-office.chartstyle+xml'.freeze
88
+ REL_TYPE = 'http://schemas.microsoft.com/office/2011/relationships/chartStyle'.freeze
87
89
  end
88
90
 
89
91
  class TableFile < GenericStorageObject
90
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'
91
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'
92
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'.freeze
93
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'.freeze
92
94
  end
93
95
 
94
96
  class ControlPropertiesFile < GenericStorageObject
95
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'
97
+ CONTENT_TYPE = 'application/vnd.ms-excel.controlproperties+xml'.freeze
98
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/ctrlProp'.freeze
96
99
  end
97
100
 
98
101
  class PivotCacheRecordsFile < GenericStorageObject
99
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml'
100
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords'
102
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml'.freeze
103
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords'.freeze
101
104
  end
102
105
 
103
106
  class PivotCacheDefinitionFile < GenericStorageObject
104
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml'
105
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition'
107
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml'.freeze
108
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition'.freeze
106
109
 
107
110
  include RubyXL::RelationshipSupport
108
111
 
@@ -110,8 +113,8 @@ module RubyXL
110
113
  end
111
114
 
112
115
  class PivotTableFile < GenericStorageObject
113
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml'
114
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable'
116
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml'.freeze
117
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable'.freeze
115
118
 
116
119
  include RubyXL::RelationshipSupport
117
120
 
@@ -119,64 +122,72 @@ module RubyXL
119
122
  end
120
123
 
121
124
  class HyperlinkRelFile < GenericStorageObject
122
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'
125
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'.freeze
123
126
  end
124
127
 
125
128
  class ThumbnailFile < GenericStorageObject
126
- REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail'
127
- CONTENT_TYPE = 'image/x-wmf'
129
+ REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail'.freeze
130
+ CONTENT_TYPE = 'image/x-wmf'.freeze
128
131
  end
129
132
 
130
133
  class ChartUserShapesFile < GenericStorageObject
131
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml'
132
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes'
134
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml'.freeze
135
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartUserShapes'.freeze
133
136
  end
134
137
 
135
138
  class CustomPropertiesFile < GenericStorageObject
136
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.custom-properties+xml'
137
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'
139
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.custom-properties+xml'.freeze
140
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties'.freeze
138
141
  end
139
142
 
140
143
  class MacrosFile < GenericStorageObject
141
- CONTENT_TYPE = 'application/vnd.ms-office.vbaProject'
142
- REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'
144
+ CONTENT_TYPE = 'application/vnd.ms-office.vbaProject'.freeze
145
+ REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'.freeze
143
146
  end
144
147
 
145
148
  class CustomXMLFile < GenericStorageObject
146
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml'
149
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml'.freeze
147
150
  end
148
151
 
149
152
  class SlicerFile < GenericStorageObject
150
- CONTENT_TYPE = 'application/vnd.ms-excel.slicer+xml'
151
- REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicer'
153
+ CONTENT_TYPE = 'application/vnd.ms-excel.slicer+xml'.freeze
154
+ REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicer'.freeze
152
155
  end
153
156
 
154
157
  class SlicerCacheFile < GenericStorageObject
155
- CONTENT_TYPE = 'application/vnd.ms-excel.slicerCache+xml'
156
- REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicerCache'
158
+ CONTENT_TYPE = 'application/vnd.ms-excel.slicerCache+xml'.freeze
159
+ REL_TYPE = 'http://schemas.microsoft.com/office/2007/relationships/slicerCache'.freeze
157
160
  end
158
161
 
159
162
  class OLEObjectFile < GenericStorageObject
160
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.oleObject'
161
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject'
163
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.oleObject'.freeze
164
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject'.freeze
165
+ end
166
+
167
+ class SheetMetadata < GenericStorageObject
168
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml'.freeze
169
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata'.freeze
170
+ end
171
+
172
+ class PersonMetadata < GenericStorageObject
173
+ CONTENT_TYPE = 'application/vnd.ms-excel.person+xml'.freeze
174
+ REL_TYPE = 'http://schemas.microsoft.com/office/2017/10/relationships/person'.freeze
162
175
  end
163
176
 
164
177
  class ActiveX < GenericStorageObject
165
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/control'
178
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/control'.freeze
166
179
 
167
180
  include RubyXL::RelationshipSupport
168
181
 
169
182
  def attach_relationship(rid, rf)
170
183
  case rf
171
- when RubyXL::ChartFile then store_relationship(rf) # TODO
184
+ when RubyXL::ChartFile then store_relationship(rf) # TODO
172
185
  else store_relationship(rf, :unknown)
173
186
  end
174
187
  end
175
-
176
188
  end
177
189
 
178
190
  class ActiveXBinary < GenericStorageObject
179
- REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary'
191
+ REL_TYPE = 'http://schemas.microsoft.com/office/2006/relationships/activeXControlBinary'.freeze
180
192
  end
181
-
182
193
  end
@@ -6,7 +6,6 @@ require 'rubyXL/objects/border'
6
6
  require 'rubyXL/objects/extensions'
7
7
 
8
8
  module RubyXL
9
-
10
9
  # http://www.datypic.com/sc/ooxml/e-ssml_numFmt-1.html
11
10
  class NumberFormat < OOXMLObject
12
11
  define_attribute(:numFmtId, :int, :required => true)
@@ -15,9 +14,8 @@ module RubyXL
15
14
 
16
15
  def is_date_format?
17
16
  # v-------- Toss all the escaped chars -------v v--- and see if any date-related remained
18
- !!(format_code.gsub(/(\"[^\"]*\"|\[[^\]]*\]|[\\_*].)/i, '') =~ /[dmyhs]/i)
17
+ !!(format_code.gsub(/("[^"]*"|\[[^\]]*\]|[\\_*].)/i, '') =~ /[dmyhs]/i)
19
18
  end
20
-
21
19
  end
22
20
 
23
21
  # http://www.datypic.com/sc/ooxml/e-ssml_numFmts-1.html
@@ -63,7 +61,6 @@ module RubyXL
63
61
  def find_by_format_id(format_id)
64
62
  self.find { |fmt| fmt.num_fmt_id == format_id }
65
63
  end
66
-
67
64
  end
68
65
 
69
66
  # http://www.datypic.com/sc/ooxml/e-ssml_cellStyleXfs-1.html
@@ -83,9 +80,7 @@ module RubyXL
83
80
 
84
81
  def self.default
85
82
  self.new(:_ => [
86
- RubyXL::XF.new(
87
- :num_fmt_id => 0, :font_id => 0, :fill_id => 0, :border_id => 0, :xfId => 0
88
- )
83
+ RubyXL::XF.new(:num_fmt_id => 0, :font_id => 0, :fill_id => 0, :border_id => 0, :xfId => 0)
89
84
  ])
90
85
  end
91
86
  end
@@ -161,8 +156,8 @@ module RubyXL
161
156
 
162
157
  # http://www.datypic.com/sc/ooxml/e-ssml_styleSheet.html
163
158
  class Stylesheet < OOXMLTopLevelObject
164
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'
165
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles'
159
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml'.freeze
160
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles'.freeze
166
161
 
167
162
  define_child_node(RubyXL::NumberFormats, :accessor => :number_formats)
168
163
  define_child_node(RubyXL::Fonts)
@@ -176,11 +171,11 @@ module RubyXL
176
171
  define_child_node(RubyXL::Colors)
177
172
  define_child_node(RubyXL::ExtensionStorageArea)
178
173
  define_element_name 'styleSheet'
179
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
174
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
180
175
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
181
- 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
182
- 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
183
- 'urn:schemas-microsoft-com:mac:vml' => 'mv')
176
+ 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
177
+ 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
178
+ 'urn:schemas-microsoft-com:mac:vml' => 'mv')
184
179
 
185
180
  def initialize(*args)
186
181
  super
@@ -226,7 +221,5 @@ module RubyXL
226
221
 
227
222
  return max_fmt_id
228
223
  end
229
-
230
224
  end
231
-
232
225
  end
@@ -4,7 +4,6 @@ require 'rubyXL/objects/container_nodes'
4
4
  require 'rubyXL/objects/color'
5
5
 
6
6
  module RubyXL
7
-
8
7
  # http://www.datypic.com/sc/ooxml/e-ssml_t-1.html
9
8
  class Text < OOXMLObject
10
9
  define_attribute(:_, :string, :accessor => :value)
@@ -19,12 +18,12 @@ module RubyXL
19
18
 
20
19
  def before_write_xml
21
20
  preserve_whitespace
22
- self.value.gsub!(INVALID_XML10_CHARS) { |c| "_x%04x_" % c.ord }
21
+ self.value.gsub!(INVALID_XML10_CHARS) { |c| '_x%04x_' % c.ord }
23
22
  true
24
23
  end
25
24
 
26
25
  def to_s
27
- value.to_s.gsub(ESCAPED_UNICODE) { |m| $1.hex.chr(::Encoding::UTF_8) }
26
+ value.to_s.gsub(ESCAPED_UNICODE) { Regexp.last_match(1).hex.chr(::Encoding::UTF_8) }
28
27
  end
29
28
  end
30
29
 
@@ -57,7 +56,6 @@ module RubyXL
57
56
  def to_s
58
57
  t.to_s
59
58
  end
60
-
61
59
  end
62
60
 
63
61
  # http://www.datypic.com/sc/ooxml/e-ssml_rPh-1.html
@@ -70,7 +68,7 @@ module RubyXL
70
68
 
71
69
  # http://www.datypic.com/sc/ooxml/e-ssml_phoneticPr-1.html
72
70
  class PhoneticProperties < OOXMLObject
73
- define_attribute(:fontId, :int, :required => true)
71
+ define_attribute(:fontId, :int, :required => true)
74
72
  define_attribute(:type, RubyXL::ST_PhoneticType, :default => 'fullwidthKatakana')
75
73
  define_attribute(:alignment, RubyXL::ST_PhoneticAlignment, :default => 'left')
76
74
  define_element_name 'phoneticPr'
@@ -85,10 +83,10 @@ module RubyXL
85
83
  define_element_name 'is'
86
84
 
87
85
  def to_s
88
- str = t.to_s
86
+ # `dup` here unfreezes the string since it's not a constant but initial value
87
+ str = if t.nil? then ''.dup else t.to_s end
89
88
  r && r.each { |rtr| str << rtr.to_s if rtr }
90
89
  str
91
90
  end
92
91
  end
93
-
94
92
  end
@@ -1,9 +1,9 @@
1
1
  # encoding: UTF-8 <-- magic comment, need this because of sime fancy fonts in the default scheme below. See http://stackoverflow.com/questions/6444826/ruby-utf-8-file-encoding
2
+
2
3
  require 'rubyXL/objects/ooxml_object'
3
4
  require 'rubyXL/objects/extensions'
4
5
 
5
6
  module RubyXL
6
-
7
7
  # http://www.datypic.com/sc/ooxml/e-a_ext-1.html
8
8
  class AExtension < OOXMLObject
9
9
  define_attribute(:uri, :string)
@@ -19,7 +19,6 @@ module RubyXL
19
19
  def write_xml(xml, node_name_override = nil)
20
20
  self.raw_xml
21
21
  end
22
-
23
22
  end
24
23
 
25
24
  class AExtensionStorageArea < OOXMLObject
@@ -1164,7 +1163,7 @@ module RubyXL
1164
1163
  class CT_Hyperlink < OOXMLObject
1165
1164
  define_child_node(RubyXL::CT_EmbeddedWAVAudioFile)
1166
1165
  define_child_node(RubyXL::AExtensionStorageArea)
1167
- define_attribute(:'r:id', :string)
1166
+ define_relationship
1168
1167
  define_attribute(:invalidUrl, :string, :default => '')
1169
1168
  define_attribute(:action, :string, :default => '')
1170
1169
  define_attribute(:tgtFrame, :string, :default => '')
@@ -1183,7 +1182,7 @@ module RubyXL
1183
1182
  define_child_node(RubyXL::CT_GradientFillProperties)
1184
1183
  define_child_node(RubyXL::CT_BlipFillProperties)
1185
1184
  define_child_node(RubyXL::CT_PatternFillProperties)
1186
- define_child_node(RubyXL::BooleanValue, :node_name => 'a:grpFill')
1185
+ define_child_node(RubyXL::BooleanValue, :node_name => 'a:grpFill')
1187
1186
  # -- EG_EffectProperties
1188
1187
  define_child_node(RubyXL::CT_EffectList)
1189
1188
  define_child_node(RubyXL::CT_EffectContainer, :node_name => 'a:effectDag')
@@ -1373,8 +1372,8 @@ module RubyXL
1373
1372
 
1374
1373
  # http://www.datypic.com/sc/ooxml/e-a_theme.html
1375
1374
  class Theme < OOXMLTopLevelObject
1376
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'
1377
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'
1375
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'.freeze
1376
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'.freeze
1378
1377
 
1379
1378
  define_attribute(:name, :string, :default => '')
1380
1379
  define_child_node(RubyXL::ThemeElements)
@@ -1391,6 +1390,25 @@ module RubyXL
1391
1390
  ROOT.join('xl', 'theme', 'theme1.xml')
1392
1391
  end
1393
1392
 
1393
+ def get_theme_color(idx)
1394
+ color_scheme = a_theme_elements && a_theme_elements.a_clr_scheme
1395
+
1396
+ if color_scheme then
1397
+ case idx
1398
+ when 0 then color_scheme.a_lt1
1399
+ when 1 then color_scheme.a_dk1
1400
+ when 2 then color_scheme.a_lt2
1401
+ when 3 then color_scheme.a_dk2
1402
+ when 4 then color_scheme.a_accent1
1403
+ when 5 then color_scheme.a_accent2
1404
+ when 6 then color_scheme.a_accent3
1405
+ when 7 then color_scheme.a_accent4
1406
+ when 8 then color_scheme.a_accent5
1407
+ when 9 then color_scheme.a_accent6
1408
+ end
1409
+ end
1410
+ end
1411
+
1394
1412
  def self.default
1395
1413
  default_theme = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1396
1414
  <a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">
@@ -1710,7 +1728,5 @@ module RubyXL
1710
1728
  </a:theme>'
1711
1729
  self.parse(default_theme)
1712
1730
  end
1713
-
1714
1731
  end
1715
-
1716
1732
  end