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
@@ -3,11 +3,10 @@ require 'rubyXL/objects/container_nodes'
3
3
  require 'time'
4
4
 
5
5
  module RubyXL
6
-
7
- # http://www.schemacentral.com/sc/ooxml/e-extended-properties_Properties.html
6
+ # http://www.datypic.com/sc/ooxml/e-extended-properties_Properties.html
8
7
  class DocumentPropertiesFile < OOXMLTopLevelObject
9
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.extended-properties+xml'
10
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'
8
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.extended-properties+xml'.freeze
9
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'.freeze
11
10
 
12
11
  attr_accessor :workbook
13
12
 
@@ -39,7 +38,7 @@ module RubyXL
39
38
  define_child_node(RubyXL::StringNode, :node_name => :AppVersion)
40
39
  define_child_node(RubyXL::IntegerNode, :node_name => :DocSecurity)
41
40
  set_namespaces('http://schemas.openxmlformats.org/officeDocument/2006/extended-properties' => nil,
42
- 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes' => 'vt')
41
+ 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes' => 'vt')
43
42
  define_element_name 'Properties'
44
43
 
45
44
  def add_parts_count(name, count)
@@ -84,13 +83,12 @@ module RubyXL
84
83
  def xlsx_path
85
84
  ROOT.join('docProps', 'app.xml')
86
85
  end
87
-
88
86
  end
89
87
 
90
88
 
91
89
  class CorePropertiesFile < OOXMLTopLevelObject
92
- CONTENT_TYPE = 'application/vnd.openxmlformats-package.core-properties+xml'
93
- REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties'
90
+ CONTENT_TYPE = 'application/vnd.openxmlformats-package.core-properties+xml'.freeze
91
+ REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties'.freeze
94
92
 
95
93
  attr_accessor :workbook
96
94
 
@@ -112,10 +110,10 @@ module RubyXL
112
110
  define_child_node(RubyXL::StringNode, :node_name => 'cp:version')
113
111
 
114
112
  set_namespaces('http://schemas.openxmlformats.org/package/2006/metadata/core-properties' => 'cp',
115
- 'http://purl.org/dc/elements/1.1/' => 'dc',
116
- 'http://purl.org/dc/terms/' => 'dcterms',
117
- 'http://purl.org/dc/dcmitype/' => 'dcmitype',
118
- 'http://www.w3.org/2001/XMLSchema-instance' => 'xsi')
113
+ 'http://purl.org/dc/elements/1.1/' => 'dc',
114
+ 'http://purl.org/dc/terms/' => 'dcterms',
115
+ 'http://purl.org/dc/dcmitype/' => 'dcmitype',
116
+ 'http://www.w3.org/2001/XMLSchema-instance' => 'xsi')
119
117
  define_element_name 'cp:coreProperties'
120
118
 
121
119
  def xlsx_path
@@ -127,7 +125,7 @@ module RubyXL
127
125
  end
128
126
 
129
127
  def creator=(v)
130
- self.dc_creator = v && RubyXL::StringNodeW3C.new(:value => v)
128
+ self.dc_creator = v && RubyXL::StringNode.new(:value => v)
131
129
  end
132
130
 
133
131
  def modifier
@@ -135,7 +133,7 @@ module RubyXL
135
133
  end
136
134
 
137
135
  def modifier=(v)
138
- self.cp_last_modified_by = v && RubyXL::StringNodeW3C.new(:value => v)
136
+ self.cp_last_modified_by = v && RubyXL::StringNode.new(:value => v)
139
137
  end
140
138
 
141
139
  def created_at
@@ -153,7 +151,5 @@ module RubyXL
153
151
  def modified_at=(v)
154
152
  self.dcterms_modified = RubyXL::StringNodeW3C.default(v)
155
153
  end
156
-
157
154
  end
158
-
159
155
  end
@@ -1,8 +1,7 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
2
 
3
3
  module RubyXL
4
-
5
- # http://www.schemacentral.com/sc/ooxml/e-ssml_ext-1.html
4
+ # http://www.datypic.com/sc/ooxml/e-ssml_ext-1.html
6
5
  class RawOOXML < OOXMLObject
7
6
  attr_accessor :raw_xml
8
7
 
@@ -17,13 +16,13 @@ module RubyXL
17
16
  end
18
17
  end
19
18
 
20
- # http://www.schemacentral.com/sc/ooxml/e-ssml_ext-1.html
19
+ # http://www.datypic.com/sc/ooxml/e-ssml_ext-1.html
21
20
  class Extension < RawOOXML
22
21
  define_attribute(:uri, :string)
23
22
  define_element_name 'ext'
24
23
  end
25
24
 
26
- # http://www.schemacentral.com/sc/ooxml/e-ssml_extLst-1.html
25
+ # http://www.datypic.com/sc/ooxml/e-ssml_extLst-1.html
27
26
  class ExtensionStorageArea < OOXMLObject
28
27
  define_child_node(RubyXL::Extension, :collection => true)
29
28
  define_element_name 'extLst'
@@ -33,4 +32,20 @@ module RubyXL
33
32
  define_element_name 'mc:AlternateContent'
34
33
  end
35
34
 
35
+ class OOXMLIgnored < OOXMLObject
36
+ def self.parse(node, ignore)
37
+ nil
38
+ end
39
+
40
+ def write_xml(xml, node_name_override = nil)
41
+ ''
42
+ end
43
+ end
44
+
45
+ # https://msdn.microsoft.com/en-us/library/mt793297(v=office.12).aspx
46
+ # "A CT_RevisionPtr element that specifies metadata supporting runtime scenarios for Microsoft Excel.
47
+ # It SHOULD be ignored and SHOULD NOT be saved by all others."
48
+ class RevisionPointer < OOXMLIgnored
49
+ define_element_name 'xr:revisionPtr'
50
+ end
36
51
  end
@@ -1,5 +1,4 @@
1
1
  module RubyXL
2
-
3
2
  # http://www.datypic.com/sc/ooxml/e-ssml_sheetName-1.html
4
3
  class SheetName < OOXMLObject
5
4
  define_attribute(:val, :string)
@@ -16,7 +15,7 @@ module RubyXL
16
15
  class DefinedNameExt < OOXMLObject
17
16
  define_attribute(:name, :string, :required => true)
18
17
  define_attribute(:refersTo, :string)
19
- define_attribute(:sheetId, :uint)
18
+ define_attribute(:sheetId, :uint)
20
19
  define_element_name 'definedName'
21
20
  end
22
21
 
@@ -61,25 +60,48 @@ module RubyXL
61
60
  define_child_node(RubyXL::SheetNames)
62
61
  define_child_node(RubyXL::DefinedNamesExt)
63
62
  define_child_node(RubyXL::SheetDataSet)
64
- define_attribute(:'r:id', :string, :required => true)
63
+ define_relationship(:required => true)
65
64
  define_element_name 'externalBook'
66
65
  end
67
66
 
67
+ # http://www.datypic.com/sc/ooxml/e-ssml_oleItem-1.html
68
+ class OleItem < OOXMLObject
69
+ define_attribute(:name, :string, :required => true)
70
+ define_attribute(:icon, :bool)
71
+ define_attribute(:advise, :bool)
72
+ define_attribute(:preferPic, :bool)
73
+ define_element_name 'oleItem'
74
+ end
75
+
76
+ # http://www.datypic.com/sc/ooxml/e-ssml_oleItems-1.html
77
+ class OleItems < OOXMLContainerObject
78
+ define_child_node(RubyXL::OleItem)
79
+ define_element_name 'oleItems'
80
+ end
81
+
82
+ # http://www.datypic.com/sc/ooxml/t-ssml_CT_OleLink.html
83
+ class OleLink < OOXMLObject
84
+ define_child_node(RubyXL::OleItems, :collection => true)
85
+ define_relationship(:required => true)
86
+ define_attribute(:progId, :string, :required => true)
87
+ define_element_name 'oleLink'
88
+ end
89
+
68
90
  class ExternalLinksFile < OOXMLTopLevelObject
69
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml'
70
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink'
91
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml'.freeze
92
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink'.freeze
71
93
 
72
94
  include RubyXL::RelationshipSupport
73
95
  define_child_node(RubyXL::ExternalBook)
96
+ define_child_node(RubyXL::OleLink)
74
97
 
75
98
  define_element_name 'externalLink'
76
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
77
- 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
99
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
100
+ 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
78
101
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
79
102
 
80
103
  def xlsx_path
81
104
  ROOT.join('xl', 'externalLinks', "externalLink#{file_index}.xml")
82
105
  end
83
106
  end
84
-
85
107
  end
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
2
2
  require 'rubyXL/objects/simple_types'
3
3
 
4
4
  module RubyXL
5
-
6
5
  # http://www.datypic.com/sc/ooxml/e-ssml_stop-1.html
7
6
  class Stop < OOXMLObject
8
7
  define_attribute(:position, :double, :required => true)
@@ -10,15 +9,15 @@ module RubyXL
10
9
  define_element_name 'stop'
11
10
  end
12
11
 
13
- # http://www.schemacentral.com/sc/ooxml/e-ssml_patternFill-1.html
12
+ # http://www.datypic.com/sc/ooxml/e-ssml_patternFill-1.html
14
13
  class PatternFill < OOXMLObject
15
14
  define_attribute(:patternType, RubyXL::ST_PatternType)
16
- define_child_node(RubyXL::Color, :node_name => :fgColor )
17
- define_child_node(RubyXL::Color, :node_name => :bgColor )
15
+ define_child_node(RubyXL::Color, :node_name => :fgColor)
16
+ define_child_node(RubyXL::Color, :node_name => :bgColor)
18
17
  define_element_name 'patternFill'
19
18
  end
20
19
 
21
- # http://www.schemacentral.com/sc/ooxml/e-ssml_gradientFill-1.html
20
+ # http://www.datypic.com/sc/ooxml/e-ssml_gradientFill-1.html
22
21
  class GradientFill < OOXMLObject
23
22
  define_attribute(:type, RubyXL::ST_GradientType, :default => 'linear')
24
23
  define_attribute(:degree, :double, :default => 0)
@@ -30,7 +29,7 @@ module RubyXL
30
29
  define_element_name 'gradientFill'
31
30
  end
32
31
 
33
- # http://www.schemacentral.com/sc/ooxml/e-ssml_fill-1.html
32
+ # http://www.datypic.com/sc/ooxml/e-ssml_fill-1.html
34
33
  class Fill < OOXMLObject
35
34
  define_child_node(RubyXL::PatternFill)
36
35
  define_child_node(RubyXL::GradientFill)
@@ -39,10 +38,9 @@ module RubyXL
39
38
  def self.default(pattern_type)
40
39
  self.new(:pattern_fill => RubyXL::PatternFill.new(:pattern_type => pattern_type))
41
40
  end
42
-
43
41
  end
44
42
 
45
- # http://www.schemacentral.com/sc/ooxml/e-ssml_fills-1.html
43
+ # http://www.datypic.com/sc/ooxml/e-ssml_fills-1.html
46
44
  class Fills < OOXMLContainerObject
47
45
  define_child_node(RubyXL::Fill, :collection => :with_count)
48
46
  define_element_name 'fills'
@@ -51,5 +49,4 @@ module RubyXL
51
49
  self.new(:_ => [ RubyXL::Fill.default('none'), RubyXL::Fill.default('gray125') ])
52
50
  end
53
51
  end
54
-
55
52
  end
@@ -3,8 +3,7 @@ require 'rubyXL/objects/simple_types'
3
3
  require 'rubyXL/objects/extensions'
4
4
 
5
5
  module RubyXL
6
-
7
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dateGroupItem-1.html
6
+ # http://www.datypic.com/sc/ooxml/e-ssml_dateGroupItem-1.html
8
7
  class DateGroupItem < OOXMLObject
9
8
  define_attribute(:year, :int, :required => true)
10
9
  define_attribute(:month, :int)
@@ -16,16 +15,16 @@ module RubyXL
16
15
  define_element_name 'dateGroupItem'
17
16
  end
18
17
 
19
- # http://www.schemacentral.com/sc/ooxml/e-ssml_filters-1.html
18
+ # http://www.datypic.com/sc/ooxml/e-ssml_filters-1.html
20
19
  class FilterContainer < OOXMLObject
21
- define_attribute(:blank, :bool, :default => false)
20
+ define_attribute(:blank, :bool, :default => false)
22
21
  define_attribute(:calendarType, RubyXL::ST_CalendarType, :default => 'none')
23
22
  define_child_node(RubyXL::StringValue, :collection => true, :accessor => :filters, :node_name => :filter)
24
23
  define_child_node(RubyXL::DateGroupItem, :collection => true, :accessor => :date_group_items)
25
24
  define_element_name 'filters'
26
25
  end
27
26
 
28
- # http://www.schemacentral.com/sc/ooxml/e-ssml_top10-1.html
27
+ # http://www.datypic.com/sc/ooxml/e-ssml_top10-1.html
29
28
  class Top10 < OOXMLObject
30
29
  define_attribute(:top, :bool, :default => true)
31
30
  define_attribute(:percent, :bool, :default => false)
@@ -34,21 +33,21 @@ module RubyXL
34
33
  define_element_name 'top10'
35
34
  end
36
35
 
37
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customFilter-1.html
36
+ # http://www.datypic.com/sc/ooxml/e-ssml_customFilter-1.html
38
37
  class CustomFilter < OOXMLObject
39
38
  define_attribute(:operator, RubyXL::ST_FilterOperator, :default => 'equal')
40
39
  define_attribute(:val, :string)
41
40
  define_element_name 'customFilter'
42
41
  end
43
42
 
44
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customFilters-1.html
43
+ # http://www.datypic.com/sc/ooxml/e-ssml_customFilters-1.html
45
44
  class CustomFilters < OOXMLContainerObject
46
- define_attribute(:and, :bool, :default => false)
45
+ define_attribute(:and, :bool, :default => false)
47
46
  define_child_node(RubyXL::CustomFilter, :collection => true)
48
47
  define_element_name 'customFilters'
49
48
  end
50
49
 
51
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dynamicFilter-1.html
50
+ # http://www.datypic.com/sc/ooxml/e-ssml_dynamicFilter-1.html
52
51
  class DynamicFilter < OOXMLObject
53
52
  define_attribute(:type, RubyXL::ST_DynamicFilterType, :required => true)
54
53
  define_attribute(:val, :double)
@@ -56,21 +55,21 @@ module RubyXL
56
55
  define_element_name 'dynamicFilter'
57
56
  end
58
57
 
59
- # http://www.schemacentral.com/sc/ooxml/e-ssml_colorFilter-1.html
58
+ # http://www.datypic.com/sc/ooxml/e-ssml_colorFilter-1.html
60
59
  class ColorFilter < OOXMLObject
61
60
  define_attribute(:dxfId, :string)
62
61
  define_attribute(:cellColor, :bool)
63
62
  define_element_name 'colorFilter'
64
63
  end
65
64
 
66
- # http://www.schemacentral.com/sc/ooxml/e-ssml_iconFilter-1.html
65
+ # http://www.datypic.com/sc/ooxml/e-ssml_iconFilter-1.html
67
66
  class IconFilter < OOXMLObject
68
67
  define_attribute(:iconSet, RubyXL::ST_IconSetType)
69
68
  define_attribute(:iconId, :int)
70
69
  define_element_name 'iconFilter'
71
70
  end
72
71
 
73
- # http://www.schemacentral.com/sc/ooxml/e-ssml_filterColumn-1.html
72
+ # http://www.datypic.com/sc/ooxml/e-ssml_filterColumn-1.html
74
73
  class AutoFilterColumn < OOXMLObject
75
74
  define_attribute(:colId, :int, :required => true)
76
75
  define_attribute(:hiddenButton, :bool, :default => false)
@@ -85,11 +84,11 @@ module RubyXL
85
84
  define_element_name 'filterColumn'
86
85
  end
87
86
 
88
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sortCondition-1.html
87
+ # http://www.datypic.com/sc/ooxml/e-ssml_sortCondition-1.html
89
88
  class SortCondition < OOXMLObject
90
- define_attribute(:descending, :bool, :default => false)
89
+ define_attribute(:descending, :bool, :default => false)
91
90
  define_attribute(:sortBy, RubyXL::ST_SortBy, :default => 'value')
92
- define_attribute(:ref, :ref, :required => true)
91
+ define_attribute(:ref, :ref, :required => true)
93
92
  define_attribute(:customList, :string)
94
93
  define_attribute(:dxfId, :int)
95
94
  define_attribute(:iconSet, RubyXL::ST_IconSetType, :required => true, :default => '3Arrows')
@@ -97,7 +96,7 @@ module RubyXL
97
96
  define_element_name 'sortCondition'
98
97
  end
99
98
 
100
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sortState-2.html
99
+ # http://www.datypic.com/sc/ooxml/e-ssml_sortState-2.html
101
100
  class SortState < OOXMLObject
102
101
  define_attribute(:columnSort, :bool, :default => false)
103
102
  define_attribute(:caseSensitive, :bool, :default => false)
@@ -108,7 +107,7 @@ module RubyXL
108
107
  define_element_name 'sortState'
109
108
  end
110
109
 
111
- # http://www.schemacentral.com/sc/ooxml/e-ssml_autoFilter-2.html
110
+ # http://www.datypic.com/sc/ooxml/e-ssml_autoFilter-2.html
112
111
  class AutoFilter < OOXMLObject
113
112
  define_attribute(:ref, :ref)
114
113
  define_child_node(RubyXL::AutoFilterColumn)
@@ -116,5 +115,4 @@ module RubyXL
116
115
  define_child_node(RubyXL::ExtensionStorageArea)
117
116
  define_element_name 'autoFilter'
118
117
  end
119
-
120
- end
118
+ end
@@ -3,8 +3,7 @@ require 'rubyXL/objects/container_nodes'
3
3
  require 'rubyXL/objects/color'
4
4
 
5
5
  module RubyXL
6
-
7
- # http://www.schemacentral.com/sc/ooxml/e-ssml_font-1.html
6
+ # http://www.datypic.com/sc/ooxml/e-ssml_font-1.html
8
7
  class Font < OOXMLObject
9
8
  # Since we have no capability to load the actual fonts, we'll have to live with the default.
10
9
  MAX_DIGIT_WIDTH = 7 # Calibri 11 pt @ 96 dpi
@@ -21,76 +20,18 @@ module RubyXL
21
20
  define_child_node(RubyXL::BooleanValue, :node_name => :extend)
22
21
  define_child_node(RubyXL::Color)
23
22
  define_child_node(RubyXL::FloatValue, :node_name => :sz)
24
- define_child_node(RubyXL::BooleanValue, :node_name => :u)
23
+ define_child_node(RubyXL::StringValue, :node_name => :u) # ST_UnderlineValues (http://www.datypic.com/sc/ooxml/e-ssml_u-1.html)
25
24
  define_child_node(RubyXL::StringValue, :node_name => :vertAlign)
26
25
  define_child_node(RubyXL::StringValue, :node_name => :scheme)
27
26
  define_element_name 'font'
28
27
 
29
- def is_italic
30
- i && i.val
31
- end
32
-
33
- def set_italic(val)
34
- self.i = RubyXL::BooleanValue.new(:val => val)
35
- end
36
-
37
- def is_bold
38
- b && b.val
39
- end
40
-
41
- def set_bold(val)
42
- self.b = RubyXL::BooleanValue.new(:val => val)
43
- end
44
-
45
- def is_underlined
46
- u && u.val
47
- end
48
-
49
- def set_underline(val)
50
- self.u = RubyXL::BooleanValue.new(:val => val)
51
- end
52
-
53
- def is_strikethrough
54
- strike && strike.val
55
- end
56
-
57
- def set_strikethrough(val)
58
- self.strike = RubyXL::BooleanValue.new(:val => val)
59
- end
60
-
61
- def get_name
62
- name && name.val
63
- end
64
-
65
- def set_name(val)
66
- self.name = RubyXL::StringValue.new(:val => val)
67
- end
68
-
69
- def get_size
70
- sz && sz.val
71
- end
72
-
73
- def set_size(val)
74
- self.sz = RubyXL::FloatValue.new(:val => val)
75
- end
76
-
77
- def get_rgb_color
78
- color && color.rgb
79
- end
80
-
81
- # Helper method to modify the font color
82
- def set_rgb_color(font_color)
83
- self.color = RubyXL::Color.new(:rgb => font_color.to_s)
84
- end
85
-
86
28
  def self.default(size = 10)
87
29
  self.new(:name => RubyXL::StringValue.new(:val => 'Verdana'),
88
- :sz => RubyXL::FloatValue.new(:val => size) )
30
+ :sz => RubyXL::FloatValue.new(:val => size))
89
31
  end
90
-
91
32
  end
92
33
 
93
- # http://www.schemacentral.com/sc/ooxml/e-ssml_fonts-1.html
34
+ # http://www.datypic.com/sc/ooxml/e-ssml_fonts-1.html
94
35
  class Fonts < OOXMLContainerObject
95
36
  define_child_node(RubyXL::Font, :collection => :with_count)
96
37
  define_element_name 'fonts'
@@ -99,5 +40,4 @@ module RubyXL
99
40
  self.new(:_ => [ RubyXL::Font.default(10), RubyXL::Font.default(8) ])
100
41
  end
101
42
  end
102
-
103
43
  end
@@ -2,12 +2,11 @@ require 'rubyXL/objects/ooxml_object'
2
2
  require 'rubyXL/objects/simple_types'
3
3
 
4
4
  module RubyXL
5
-
6
- # http://www.schemacentral.com/sc/ooxml/e-ssml_f-1.html
5
+ # http://www.datypic.com/sc/ooxml/e-ssml_f-1.html
7
6
  class Formula < OOXMLObject
8
7
  define_attribute(:_, :string, :accessor => :expression)
9
8
  define_attribute(:t, RubyXL::ST_CellFormulaType, :default => 'normal')
10
- define_attribute(:aca, :bool, :default => false)
9
+ define_attribute(:aca, :bool, :default => false)
11
10
  define_attribute(:ref, :ref)
12
11
  define_attribute(:dt2D, :bool, :default => false)
13
12
  define_attribute(:dtr, :bool, :default => false)
@@ -15,10 +14,9 @@ module RubyXL
15
14
  define_attribute(:del2, :bool, :default => false)
16
15
  define_attribute(:r1, :ref)
17
16
  define_attribute(:r2, :ref)
18
- define_attribute(:ca, :bool, :default => false)
17
+ define_attribute(:ca, :bool, :default => false)
19
18
  define_attribute(:si, :int)
20
- define_attribute(:bx, :bool, :default => false)
19
+ define_attribute(:bx, :bool, :default => false)
21
20
  define_element_name 'f'
22
21
  end
23
-
24
22
  end
@@ -12,10 +12,10 @@ module RubyXL
12
12
  # addressing variable by name creates it in the context of defining class, while calling
13
13
  # the setter/getter method addresses it in the context of descendant class,
14
14
  # which is what we need.
15
- def obtain_class_variable(var_name, default = {})
15
+ def obtain_class_variable(var_name, default = nil)
16
16
  self.class_variable_get(var_name)
17
17
  rescue NameError
18
- self.class_variable_set(var_name, default)
18
+ self.class_variable_set(var_name, default || {})
19
19
  end
20
20
 
21
21
  # Defines an attribute of OOXML object.
@@ -45,14 +45,20 @@ module RubyXL
45
45
  # The value of the element will be accessible as a <tt>String</tt> by calling +obj.expression+
46
46
  # define_attribute(:errorStyle, %w{ stop warning information }, :default => 'stop',)
47
47
  # A <tt>String</tt> attribute named 'errorStyle' will be accessible as +obj.error_style+, valid values are <tt>"stop"</tt>, <tt>"warning"</tt>, <tt>"information"</tt>
48
- def define_attribute(attr_name, attr_type, extra_params = {})
48
+ def define_attribute(attr_name, attr_type, extra_params = nil)
49
49
  attrs = obtain_class_variable(:@@ooxml_attributes)
50
- attr_hash = extra_params.merge({ :attr_type => attr_type })
50
+ attr_hash = { :attr_type => attr_type }
51
+ attr_hash.merge!(extra_params) if extra_params
51
52
  attr_hash[:accessor] ||= accessorize(attr_name)
52
53
  attrs[attr_name.to_s] = attr_hash
53
54
  self.send(:attr_accessor, attr_hash[:accessor]) unless attr_hash[:computed]
54
55
  end
55
56
 
57
+ # Defines a `r:id` attribute
58
+ def define_relationship(extra_params = {})
59
+ define_attribute(:'r:id', :string, extra_params)
60
+ end
61
+
56
62
  # Defines a child node of OOXML object.
57
63
  # === Parameters
58
64
  # * +klass+ - Class (descendant of RubyXL::OOXMLObject) of the child nodes. Child node objects will be produced by calling +parse+ method of that class.
@@ -79,7 +85,7 @@ module RubyXL
79
85
  accessor = (extra_params[:accessor] || accessorize(child_node_name)).to_sym
80
86
 
81
87
  child_nodes[child_node_name] = {
82
- :class => klass,
88
+ :class => klass,
83
89
  :is_array => extra_params[:collection],
84
90
  :accessor => accessor
85
91
  }
@@ -142,9 +148,10 @@ module RubyXL
142
148
  known_namespaces ||= obtain_class_variable(:@@ooxml_namespaces)
143
149
 
144
150
  node.element_children.each { |child_node|
145
-
146
151
  ns = child_node.namespace
147
- prefix = known_namespaces[ns.href] || ns.prefix
152
+ prefix = if known_namespaces.has_key?(ns.href) then known_namespaces[ns.href]
153
+ else ns.prefix
154
+ end
148
155
 
149
156
  child_node_name = case prefix
150
157
  when '', nil then child_node.name
@@ -178,9 +185,9 @@ module RubyXL
178
185
  private
179
186
  def accessorize(str)
180
187
  acc = str.to_s.dup
181
- acc.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
182
- acc.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
183
- acc.gsub!(':','_')
188
+ acc.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
189
+ acc.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
190
+ acc.gsub!(':', '_')
184
191
  acc.downcase.to_sym
185
192
  end
186
193
 
@@ -192,7 +199,7 @@ module RubyXL
192
199
  when Array then raw_value # Case of Simple Types
193
200
  when :sqref then RubyXL::Sqref.new(raw_value)
194
201
  when :ref then RubyXL::Reference.new(raw_value)
195
- when :bool then ['1', 'true'].include?(raw_value)
202
+ when :bool then ['1', 'true'].include?(raw_value) # http://www.datypic.com/sc/xsd/t-xsd_boolean.html
196
203
  when :int then Integer(raw_value)
197
204
  when :uint then
198
205
  v = Integer(raw_value)
@@ -201,7 +208,6 @@ module RubyXL
201
208
  end
202
209
  obj.send("#{params[:accessor]}=", val)
203
210
  end
204
-
205
211
  end
206
212
 
207
213
 
@@ -217,8 +223,9 @@ module RubyXL
217
223
  end
218
224
  private :obtain_class_variable
219
225
 
220
- def initialize(params = {})
226
+ def initialize(params = nil)
221
227
  @local_namespaces = nil
228
+ params ||= {}
222
229
 
223
230
  obtain_class_variable(:@@ooxml_attributes).each_value { |v|
224
231
  instance_variable_set("@#{v[:accessor]}", params[v[:accessor]]) unless v[:computed]
@@ -229,7 +236,6 @@ module RubyXL
229
236
 
230
237
  def init_child_nodes(params)
231
238
  obtain_class_variable(:@@ooxml_child_nodes).each_value { |v|
232
-
233
239
  initial_value =
234
240
  if params.has_key?(v[:accessor]) then params[v[:accessor]]
235
241
  elsif v[:is_array] then []
@@ -270,6 +276,11 @@ module RubyXL
270
276
  if xml.nil? then
271
277
  seed_xml = Nokogiri::XML('<?xml version = "1.0" standalone ="yes"?>')
272
278
  seed_xml.encoding = 'UTF-8'
279
+
280
+ if Nokogiri.jruby? then # Issue 188 workaround for JRuby
281
+ seed_xml.to_java.strict_error_checking = false
282
+ end
283
+
273
284
  result = self.write_xml(seed_xml)
274
285
  return result if result == ''
275
286
  seed_xml << result
@@ -349,7 +360,6 @@ module RubyXL
349
360
  }
350
361
  true
351
362
  end
352
-
353
363
  end
354
364
 
355
365
  # Parent class for defining OOXML based objects (not unlike Rails' +ActiveRecord+!)
@@ -403,7 +413,6 @@ module RubyXL
403
413
  end
404
414
  protected :define_count_attribute
405
415
  end
406
-
407
416
  end
408
417
 
409
418
  # Extension class providing functionality for top-level OOXML objects that are represented by
@@ -454,7 +463,5 @@ module RubyXL
454
463
  def file_index
455
464
  root.rels_hash[self.class].index{ |f| f.equal?(self) }.to_i + 1
456
465
  end
457
-
458
466
  end
459
-
460
467
  end