rubyXL 3.4.12 → 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 (456) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +2 -1
  3. data/Gemfile +8 -8
  4. data/Gemfile.lock +82 -50
  5. data/README.rdoc +26 -9
  6. data/Rakefile +26 -27
  7. data/VERSION +1 -1
  8. data/lib/rubyXL/cell.rb +2 -4
  9. data/lib/rubyXL/convenience_methods/cell.rb +35 -31
  10. data/lib/rubyXL/convenience_methods/color.rb +6 -8
  11. data/lib/rubyXL/convenience_methods/workbook.rb +9 -4
  12. data/lib/rubyXL/convenience_methods/worksheet.rb +77 -1
  13. data/lib/rubyXL/objects/border.rb +0 -3
  14. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  15. data/lib/rubyXL/objects/cell_style.rb +1 -3
  16. data/lib/rubyXL/objects/chartsheet.rb +6 -10
  17. data/lib/rubyXL/objects/color.rb +1 -3
  18. data/lib/rubyXL/objects/column_range.rb +0 -3
  19. data/lib/rubyXL/objects/comments.rb +1 -4
  20. data/lib/rubyXL/objects/connection.rb +11 -11
  21. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  22. data/lib/rubyXL/objects/content_types.rb +3 -6
  23. data/lib/rubyXL/objects/data_validation.rb +2 -2
  24. data/lib/rubyXL/objects/document_properties.rb +9 -13
  25. data/lib/rubyXL/objects/extensions.rb +0 -2
  26. data/lib/rubyXL/objects/external_links.rb +29 -7
  27. data/lib/rubyXL/objects/fill.rb +2 -5
  28. data/lib/rubyXL/objects/filters.rb +5 -7
  29. data/lib/rubyXL/objects/font.rb +2 -4
  30. data/lib/rubyXL/objects/formula.rb +3 -5
  31. data/lib/rubyXL/objects/ooxml_object.rb +18 -18
  32. data/lib/rubyXL/objects/query_table.rb +3 -3
  33. data/lib/rubyXL/objects/reference.rb +6 -8
  34. data/lib/rubyXL/objects/relationships.rb +6 -11
  35. data/lib/rubyXL/objects/root.rb +0 -2
  36. data/lib/rubyXL/objects/shared_strings.rb +3 -6
  37. data/lib/rubyXL/objects/sheet_common.rb +1 -3
  38. data/lib/rubyXL/objects/sheet_data.rb +6 -8
  39. data/lib/rubyXL/objects/simple_types.rb +3 -1
  40. data/lib/rubyXL/objects/storage.rb +51 -50
  41. data/lib/rubyXL/objects/stylesheet.rb +8 -15
  42. data/lib/rubyXL/objects/text.rb +5 -7
  43. data/lib/rubyXL/objects/theme.rb +5 -8
  44. data/lib/rubyXL/objects/workbook.rb +35 -31
  45. data/lib/rubyXL/objects/worksheet.rb +33 -29
  46. data/lib/rubyXL/parser.rb +1 -3
  47. data/lib/rubyXL/worksheet.rb +83 -84
  48. data/lib/rubyXL.rb +0 -1
  49. data/rdoc/README_rdoc.html +42 -28
  50. data/rdoc/RubyXL/AExtension.html +9 -49
  51. data/rdoc/RubyXL/AExtensionStorageArea.html +5 -12
  52. data/rdoc/RubyXL/ActiveX.html +12 -41
  53. data/rdoc/RubyXL/ActiveXBinary.html +5 -17
  54. data/rdoc/RubyXL/AdjustHandleList.html +5 -12
  55. data/rdoc/RubyXL/Alignment.html +5 -12
  56. data/rdoc/RubyXL/AlternateContent.html +5 -12
  57. data/rdoc/RubyXL/Authors.html +5 -12
  58. data/rdoc/RubyXL/AutoFilter.html +5 -12
  59. data/rdoc/RubyXL/AutoFilterColumn.html +5 -12
  60. data/rdoc/RubyXL/BinaryImageFile.html +5 -20
  61. data/rdoc/RubyXL/BodyProperties.html +5 -12
  62. data/rdoc/RubyXL/BooleanNode.html +5 -12
  63. data/rdoc/RubyXL/BooleanValue.html +5 -12
  64. data/rdoc/RubyXL/Border.html +12 -72
  65. data/rdoc/RubyXL/BorderEdge.html +10 -44
  66. data/rdoc/RubyXL/Borders.html +9 -30
  67. data/rdoc/RubyXL/Break.html +5 -12
  68. data/rdoc/RubyXL/BreakList.html +5 -12
  69. data/rdoc/RubyXL/CT_AdjPoint2D.html +5 -12
  70. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +5 -12
  71. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +5 -12
  72. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +5 -12
  73. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +5 -12
  74. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +5 -12
  75. data/rdoc/RubyXL/CT_Backdrop.html +5 -12
  76. data/rdoc/RubyXL/CT_Bevel.html +5 -12
  77. data/rdoc/RubyXL/CT_BiLevelEffect.html +5 -12
  78. data/rdoc/RubyXL/CT_BlendEffect.html +5 -12
  79. data/rdoc/RubyXL/CT_Blip.html +5 -12
  80. data/rdoc/RubyXL/CT_BlipFillProperties.html +5 -12
  81. data/rdoc/RubyXL/CT_BlurEffect.html +5 -12
  82. data/rdoc/RubyXL/CT_Camera.html +5 -12
  83. data/rdoc/RubyXL/CT_Color.html +5 -12
  84. data/rdoc/RubyXL/CT_ColorChangeEffect.html +5 -12
  85. data/rdoc/RubyXL/CT_ColorMapping.html +5 -12
  86. data/rdoc/RubyXL/CT_ColorScheme.html +5 -12
  87. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +5 -12
  88. data/rdoc/RubyXL/CT_ConnectionSite.html +5 -12
  89. data/rdoc/RubyXL/CT_ConnectionSiteList.html +5 -12
  90. data/rdoc/RubyXL/CT_DashStop.html +5 -12
  91. data/rdoc/RubyXL/CT_DashStopList.html +5 -12
  92. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +5 -12
  93. data/rdoc/RubyXL/CT_DuotoneEffect.html +5 -12
  94. data/rdoc/RubyXL/CT_EffectContainer.html +5 -12
  95. data/rdoc/RubyXL/CT_EffectList.html +5 -12
  96. data/rdoc/RubyXL/CT_EffectReference.html +5 -12
  97. data/rdoc/RubyXL/CT_EffectStyleItem.html +5 -12
  98. data/rdoc/RubyXL/CT_EffectStyleList.html +5 -12
  99. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +5 -12
  100. data/rdoc/RubyXL/CT_FillEffect.html +5 -12
  101. data/rdoc/RubyXL/CT_FillOverlayEffect.html +5 -12
  102. data/rdoc/RubyXL/CT_FillStyleList.html +5 -12
  103. data/rdoc/RubyXL/CT_FlatText.html +5 -12
  104. data/rdoc/RubyXL/CT_FontCollection.html +5 -12
  105. data/rdoc/RubyXL/CT_FontReference.html +5 -12
  106. data/rdoc/RubyXL/CT_GeomGuideList.html +5 -12
  107. data/rdoc/RubyXL/CT_GlowEffect.html +5 -12
  108. data/rdoc/RubyXL/CT_GradientFillProperties.html +5 -12
  109. data/rdoc/RubyXL/CT_GradientStop.html +5 -12
  110. data/rdoc/RubyXL/CT_GradientStopList.html +5 -12
  111. data/rdoc/RubyXL/CT_HSLEffect.html +5 -12
  112. data/rdoc/RubyXL/CT_HslColor.html +5 -12
  113. data/rdoc/RubyXL/CT_Hyperlink.html +5 -12
  114. data/rdoc/RubyXL/CT_InnerShadowEffect.html +5 -12
  115. data/rdoc/RubyXL/CT_LightRig.html +5 -12
  116. data/rdoc/RubyXL/CT_LineEndProperties.html +5 -12
  117. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +5 -12
  118. data/rdoc/RubyXL/CT_LineProperties.html +5 -12
  119. data/rdoc/RubyXL/CT_LineStyleList.html +5 -12
  120. data/rdoc/RubyXL/CT_LinearShadeProperties.html +5 -12
  121. data/rdoc/RubyXL/CT_LuminanceEffect.html +5 -12
  122. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +5 -12
  123. data/rdoc/RubyXL/CT_OuterShadowEffect.html +5 -12
  124. data/rdoc/RubyXL/CT_Path2D.html +5 -12
  125. data/rdoc/RubyXL/CT_Path2DArcTo.html +5 -12
  126. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +5 -12
  127. data/rdoc/RubyXL/CT_Path2DList.html +5 -12
  128. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +5 -12
  129. data/rdoc/RubyXL/CT_Path2DTo.html +5 -12
  130. data/rdoc/RubyXL/CT_PathShadeProperties.html +5 -12
  131. data/rdoc/RubyXL/CT_PatternFillProperties.html +5 -12
  132. data/rdoc/RubyXL/CT_Point3D.html +5 -12
  133. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +5 -12
  134. data/rdoc/RubyXL/CT_PresetColor.html +5 -12
  135. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +5 -12
  136. data/rdoc/RubyXL/CT_PresetShadowEffect.html +5 -12
  137. data/rdoc/RubyXL/CT_PresetTextShape.html +5 -12
  138. data/rdoc/RubyXL/CT_ReflectionEffect.html +5 -12
  139. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +5 -12
  140. data/rdoc/RubyXL/CT_RelativeRect.html +5 -12
  141. data/rdoc/RubyXL/CT_SRgbColor.html +5 -12
  142. data/rdoc/RubyXL/CT_ScRgbColor.html +5 -12
  143. data/rdoc/RubyXL/CT_Scene3D.html +5 -12
  144. data/rdoc/RubyXL/CT_SchemeColor.html +5 -12
  145. data/rdoc/RubyXL/CT_Shape3D.html +5 -12
  146. data/rdoc/RubyXL/CT_ShapeStyle.html +5 -12
  147. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +5 -12
  148. data/rdoc/RubyXL/CT_SphereCoords.html +5 -12
  149. data/rdoc/RubyXL/CT_StretchInfoProperties.html +5 -12
  150. data/rdoc/RubyXL/CT_StyleMatrix.html +5 -12
  151. data/rdoc/RubyXL/CT_StyleMatrixReference.html +5 -12
  152. data/rdoc/RubyXL/CT_SupplementalFont.html +5 -12
  153. data/rdoc/RubyXL/CT_SystemColor.html +5 -12
  154. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +5 -12
  155. data/rdoc/RubyXL/CT_TextBlipBullet.html +5 -12
  156. data/rdoc/RubyXL/CT_TextCharBullet.html +5 -12
  157. data/rdoc/RubyXL/CT_TextCharacterProperties.html +5 -12
  158. data/rdoc/RubyXL/CT_TextFont.html +5 -12
  159. data/rdoc/RubyXL/CT_TextListStyle.html +5 -12
  160. data/rdoc/RubyXL/CT_TextNormalAutofit.html +5 -12
  161. data/rdoc/RubyXL/CT_TextParagraphProperties.html +5 -12
  162. data/rdoc/RubyXL/CT_TextSpacing.html +5 -12
  163. data/rdoc/RubyXL/CT_TextTabStop.html +5 -12
  164. data/rdoc/RubyXL/CT_TextTabStopList.html +5 -12
  165. data/rdoc/RubyXL/CT_TileInfoProperties.html +5 -12
  166. data/rdoc/RubyXL/CT_TintEffect.html +5 -12
  167. data/rdoc/RubyXL/CT_Transform2D.html +5 -12
  168. data/rdoc/RubyXL/CT_TransformEffect.html +5 -12
  169. data/rdoc/RubyXL/CT_Vector3D.html +5 -12
  170. data/rdoc/RubyXL/CT_XYAdjustHandle.html +5 -12
  171. data/rdoc/RubyXL/CalculationChain.html +8 -37
  172. data/rdoc/RubyXL/CalculationChainCell.html +5 -12
  173. data/rdoc/RubyXL/CalculationProperties.html +5 -12
  174. data/rdoc/RubyXL/Cell.html +26 -228
  175. data/rdoc/RubyXL/CellConvenienceMethods.html +108 -503
  176. data/rdoc/RubyXL/CellExt.html +5 -12
  177. data/rdoc/RubyXL/CellSmartTag.html +5 -12
  178. data/rdoc/RubyXL/CellSmartTagProperty.html +5 -12
  179. data/rdoc/RubyXL/CellSmartTags.html +5 -12
  180. data/rdoc/RubyXL/CellStyle.html +5 -12
  181. data/rdoc/RubyXL/CellStyleXFs.html +9 -30
  182. data/rdoc/RubyXL/CellStyles.html +9 -30
  183. data/rdoc/RubyXL/CellValue.html +9 -30
  184. data/rdoc/RubyXL/CellWatch.html +5 -12
  185. data/rdoc/RubyXL/CellWatches.html +5 -12
  186. data/rdoc/RubyXL/CellXFs.html +10 -33
  187. data/rdoc/RubyXL/ChartColorsFile.html +5 -20
  188. data/rdoc/RubyXL/ChartFile.html +11 -43
  189. data/rdoc/RubyXL/ChartStyleFile.html +5 -20
  190. data/rdoc/RubyXL/ChartUserShapesFile.html +5 -20
  191. data/rdoc/RubyXL/Chartsheet.html +11 -60
  192. data/rdoc/RubyXL/ChartsheetPageSetup.html +5 -12
  193. data/rdoc/RubyXL/ChartsheetProperties.html +5 -12
  194. data/rdoc/RubyXL/ChartsheetProtection.html +5 -12
  195. data/rdoc/RubyXL/ChartsheetView.html +5 -12
  196. data/rdoc/RubyXL/ChartsheetViews.html +5 -12
  197. data/rdoc/RubyXL/Color.html +10 -36
  198. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +10 -58
  199. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +18 -78
  200. data/rdoc/RubyXL/ColorConvenienceClasses.html +3 -9
  201. data/rdoc/RubyXL/ColorConvenienceMethods.html +7 -27
  202. data/rdoc/RubyXL/ColorFilter.html +5 -12
  203. data/rdoc/RubyXL/ColorScale.html +5 -12
  204. data/rdoc/RubyXL/ColorSet.html +5 -12
  205. data/rdoc/RubyXL/Colors.html +5 -12
  206. data/rdoc/RubyXL/ColumnRange.html +11 -63
  207. data/rdoc/RubyXL/ColumnRanges.html +12 -72
  208. data/rdoc/RubyXL/Comment.html +5 -12
  209. data/rdoc/RubyXL/CommentList.html +5 -12
  210. data/rdoc/RubyXL/CommentsFile.html +9 -43
  211. data/rdoc/RubyXL/ConditionalFormatValue.html +5 -12
  212. data/rdoc/RubyXL/ConditionalFormatting.html +5 -12
  213. data/rdoc/RubyXL/ConditionalFormattingRule.html +5 -12
  214. data/rdoc/RubyXL/Connection.html +5 -12
  215. data/rdoc/RubyXL/ConnectionTable.html +5 -12
  216. data/rdoc/RubyXL/ConnectionTables.html +5 -12
  217. data/rdoc/RubyXL/ConnectionTextField.html +5 -12
  218. data/rdoc/RubyXL/ConnectionTextFields.html +5 -12
  219. data/rdoc/RubyXL/Connections.html +8 -37
  220. data/rdoc/RubyXL/ContentTypeDefault.html +5 -12
  221. data/rdoc/RubyXL/ContentTypeOverride.html +5 -12
  222. data/rdoc/RubyXL/ContentTypes.html +12 -54
  223. data/rdoc/RubyXL/ControlPropertiesFile.html +7 -17
  224. data/rdoc/RubyXL/CorePropertiesFile.html +17 -155
  225. data/rdoc/RubyXL/CustomColor.html +5 -12
  226. data/rdoc/RubyXL/CustomColorList.html +5 -12
  227. data/rdoc/RubyXL/CustomFilter.html +5 -12
  228. data/rdoc/RubyXL/CustomFilters.html +5 -12
  229. data/rdoc/RubyXL/CustomGeometry.html +5 -12
  230. data/rdoc/RubyXL/CustomProperties.html +5 -12
  231. data/rdoc/RubyXL/CustomPropertiesFile.html +5 -20
  232. data/rdoc/RubyXL/CustomProperty.html +5 -12
  233. data/rdoc/RubyXL/CustomPropertyFile.html +5 -20
  234. data/rdoc/RubyXL/CustomSheetView.html +5 -12
  235. data/rdoc/RubyXL/CustomSheetViews.html +5 -12
  236. data/rdoc/RubyXL/CustomWorkbookView.html +5 -12
  237. data/rdoc/RubyXL/CustomWorkbookViews.html +5 -12
  238. data/rdoc/RubyXL/CustomXMLFile.html +5 -17
  239. data/rdoc/RubyXL/DXF.html +5 -12
  240. data/rdoc/RubyXL/DXFs.html +5 -12
  241. data/rdoc/RubyXL/DataBar.html +5 -12
  242. data/rdoc/RubyXL/DataConsolidate.html +5 -12
  243. data/rdoc/RubyXL/DataConsolidationReference.html +5 -12
  244. data/rdoc/RubyXL/DataConsolidationReferences.html +5 -12
  245. data/rdoc/RubyXL/DataType.html +3 -32
  246. data/rdoc/RubyXL/DataValidation.html +5 -12
  247. data/rdoc/RubyXL/DataValidations.html +5 -12
  248. data/rdoc/RubyXL/DateGroupItem.html +5 -12
  249. data/rdoc/RubyXL/DefinedName.html +5 -12
  250. data/rdoc/RubyXL/DefinedNameExt.html +5 -12
  251. data/rdoc/RubyXL/DefinedNames.html +5 -12
  252. data/rdoc/RubyXL/DefinedNamesExt.html +5 -12
  253. data/rdoc/RubyXL/DocumentPropertiesFile.html +10 -57
  254. data/rdoc/RubyXL/DrawingFile.html +11 -43
  255. data/rdoc/RubyXL/DynamicFilter.html +5 -12
  256. data/rdoc/RubyXL/EmbeddedControl.html +5 -12
  257. data/rdoc/RubyXL/EmbeddedControls.html +5 -12
  258. data/rdoc/RubyXL/Extension.html +5 -12
  259. data/rdoc/RubyXL/ExtensionStorageArea.html +5 -12
  260. data/rdoc/RubyXL/Extents.html +5 -12
  261. data/rdoc/RubyXL/ExternalBook.html +5 -12
  262. data/rdoc/RubyXL/ExternalLinksFile.html +11 -43
  263. data/rdoc/RubyXL/ExternalReference.html +5 -12
  264. data/rdoc/RubyXL/ExternalReferences.html +5 -12
  265. data/rdoc/RubyXL/ExtraColorSchemeList.html +5 -12
  266. data/rdoc/RubyXL/FieldItem.html +5 -12
  267. data/rdoc/RubyXL/FileRecoveryProperties.html +5 -12
  268. data/rdoc/RubyXL/FileSharing.html +5 -12
  269. data/rdoc/RubyXL/FileVersion.html +5 -12
  270. data/rdoc/RubyXL/Fill.html +9 -30
  271. data/rdoc/RubyXL/Fills.html +9 -30
  272. data/rdoc/RubyXL/FilterContainer.html +5 -12
  273. data/rdoc/RubyXL/FloatNode.html +5 -12
  274. data/rdoc/RubyXL/FloatValue.html +5 -12
  275. data/rdoc/RubyXL/Font.html +11 -37
  276. data/rdoc/RubyXL/FontConvenienceMethods.html +7 -196
  277. data/rdoc/RubyXL/FontScheme.html +5 -12
  278. data/rdoc/RubyXL/Fonts.html +9 -30
  279. data/rdoc/RubyXL/Formula.html +5 -12
  280. data/rdoc/RubyXL/FunctionGroup.html +5 -12
  281. data/rdoc/RubyXL/FunctionGroups.html +5 -12
  282. data/rdoc/RubyXL/GenericStorageObject.html +12 -76
  283. data/rdoc/RubyXL/GradientFill.html +5 -12
  284. data/rdoc/RubyXL/HeaderFooterSettings.html +5 -12
  285. data/rdoc/RubyXL/Hyperlink.html +5 -12
  286. data/rdoc/RubyXL/HyperlinkRelFile.html +5 -17
  287. data/rdoc/RubyXL/Hyperlinks.html +5 -12
  288. data/rdoc/RubyXL/IconFilter.html +5 -12
  289. data/rdoc/RubyXL/IconSet.html +5 -12
  290. data/rdoc/RubyXL/IgnoredError.html +5 -12
  291. data/rdoc/RubyXL/IgnoredErrors.html +5 -12
  292. data/rdoc/RubyXL/IndexedColors.html +5 -12
  293. data/rdoc/RubyXL/InputCells.html +5 -12
  294. data/rdoc/RubyXL/IntegerNode.html +5 -12
  295. data/rdoc/RubyXL/IntegerValue.html +5 -12
  296. data/rdoc/RubyXL/LegacyCell.html +7 -27
  297. data/rdoc/RubyXL/LegacyWorksheet.html +11 -88
  298. data/rdoc/RubyXL/MRUColors.html +5 -12
  299. data/rdoc/RubyXL/MacrosFile.html +5 -20
  300. data/rdoc/RubyXL/MergedCell.html +5 -12
  301. data/rdoc/RubyXL/MergedCells.html +5 -12
  302. data/rdoc/RubyXL/NumFmt.html +5 -12
  303. data/rdoc/RubyXL/NumberFormat.html +10 -31
  304. data/rdoc/RubyXL/NumberFormats.html +9 -35
  305. data/rdoc/RubyXL/OLEObject.html +5 -12
  306. data/rdoc/RubyXL/OLEObjectFile.html +5 -20
  307. data/rdoc/RubyXL/OLEObjects.html +5 -12
  308. data/rdoc/RubyXL/OLESize.html +5 -12
  309. data/rdoc/RubyXL/OOXMLContainerObject.html +19 -114
  310. data/rdoc/RubyXL/OOXMLIgnored.html +11 -46
  311. data/rdoc/RubyXL/OOXMLObject.html +8 -18
  312. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +42 -92
  313. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +23 -144
  314. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +24 -181
  315. data/rdoc/RubyXL/OOXMLTopLevelObject.html +15 -102
  316. data/rdoc/RubyXL/OdbcOleDbProperties.html +5 -12
  317. data/rdoc/RubyXL/Offset.html +5 -12
  318. data/rdoc/RubyXL/OlapProperties.html +5 -12
  319. data/rdoc/RubyXL/OleItem.html +99 -0
  320. data/rdoc/RubyXL/OleItems.html +99 -0
  321. data/rdoc/RubyXL/OleLink.html +99 -0
  322. data/rdoc/RubyXL/OutlineProperties.html +5 -12
  323. data/rdoc/RubyXL/PageMargins.html +5 -12
  324. data/rdoc/RubyXL/PageSetup.html +5 -12
  325. data/rdoc/RubyXL/PageSetupProperties.html +5 -12
  326. data/rdoc/RubyXL/Pane.html +5 -12
  327. data/rdoc/RubyXL/Parser.html +11 -45
  328. data/rdoc/RubyXL/PatternFill.html +5 -12
  329. data/rdoc/RubyXL/PhoneticProperties.html +5 -12
  330. data/rdoc/RubyXL/PhoneticRun.html +5 -12
  331. data/rdoc/RubyXL/PivotArea.html +5 -12
  332. data/rdoc/RubyXL/PivotCache.html +5 -12
  333. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +7 -25
  334. data/rdoc/RubyXL/PivotCacheRecordsFile.html +5 -20
  335. data/rdoc/RubyXL/PivotCaches.html +5 -12
  336. data/rdoc/RubyXL/PivotReference.html +5 -12
  337. data/rdoc/RubyXL/PivotReferences.html +5 -12
  338. data/rdoc/RubyXL/PivotTableFile.html +7 -25
  339. data/rdoc/RubyXL/PivotTableSelection.html +5 -12
  340. data/rdoc/RubyXL/PresetGeometry.html +5 -12
  341. data/rdoc/RubyXL/PrintOptions.html +5 -12
  342. data/rdoc/RubyXL/PrinterSettingsFile.html +5 -20
  343. data/rdoc/RubyXL/ProtectedRange.html +5 -12
  344. data/rdoc/RubyXL/ProtectedRanges.html +5 -12
  345. data/rdoc/RubyXL/Protection.html +5 -12
  346. data/rdoc/RubyXL/QueryParameter.html +5 -12
  347. data/rdoc/RubyXL/QueryParameters.html +5 -12
  348. data/rdoc/RubyXL/QueryTable.html +10 -42
  349. data/rdoc/RubyXL/QueryTableDeletedField.html +5 -12
  350. data/rdoc/RubyXL/QueryTableDeletedFields.html +5 -12
  351. data/rdoc/RubyXL/QueryTableField.html +5 -12
  352. data/rdoc/RubyXL/QueryTableFields.html +5 -12
  353. data/rdoc/RubyXL/QueryTableRefresh.html +5 -12
  354. data/rdoc/RubyXL/RID.html +5 -12
  355. data/rdoc/RubyXL/RawOOXML.html +11 -51
  356. data/rdoc/RubyXL/Reference.html +42 -204
  357. data/rdoc/RubyXL/Relationship.html +5 -12
  358. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +7 -27
  359. data/rdoc/RubyXL/RelationshipSupport.html +15 -112
  360. data/rdoc/RubyXL/RevisionPointer.html +5 -12
  361. data/rdoc/RubyXL/RichText.html +11 -31
  362. data/rdoc/RubyXL/RichTextRun.html +9 -30
  363. data/rdoc/RubyXL/Row.html +8 -143
  364. data/rdoc/RubyXL/RowExt.html +5 -12
  365. data/rdoc/RubyXL/RunProperties.html +5 -12
  366. data/rdoc/RubyXL/Scenario.html +5 -12
  367. data/rdoc/RubyXL/Scenarios.html +5 -12
  368. data/rdoc/RubyXL/Selection.html +9 -30
  369. data/rdoc/RubyXL/ShapeGuide.html +5 -12
  370. data/rdoc/RubyXL/ShapeTextRectangle.html +5 -12
  371. data/rdoc/RubyXL/SharedStringsTable.html +16 -126
  372. data/rdoc/RubyXL/Sheet.html +5 -12
  373. data/rdoc/RubyXL/SheetCalculationProperties.html +5 -12
  374. data/rdoc/RubyXL/SheetData.html +8 -42
  375. data/rdoc/RubyXL/SheetDataExt.html +5 -12
  376. data/rdoc/RubyXL/SheetDataSet.html +5 -12
  377. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  378. data/rdoc/RubyXL/SheetName.html +5 -12
  379. data/rdoc/RubyXL/SheetNames.html +5 -12
  380. data/rdoc/RubyXL/Sheets.html +5 -12
  381. data/rdoc/RubyXL/SlicerCacheFile.html +5 -20
  382. data/rdoc/RubyXL/SlicerFile.html +5 -20
  383. data/rdoc/RubyXL/SmartTagProperties.html +5 -12
  384. data/rdoc/RubyXL/SmartTagType.html +5 -12
  385. data/rdoc/RubyXL/SmartTagTypes.html +5 -12
  386. data/rdoc/RubyXL/SmartTags.html +5 -12
  387. data/rdoc/RubyXL/SortCondition.html +5 -12
  388. data/rdoc/RubyXL/SortState.html +5 -12
  389. data/rdoc/RubyXL/Sqref.html +11 -46
  390. data/rdoc/RubyXL/Stop.html +5 -12
  391. data/rdoc/RubyXL/StringNode.html +5 -12
  392. data/rdoc/RubyXL/StringNodeW3C.html +11 -46
  393. data/rdoc/RubyXL/StringValue.html +5 -12
  394. data/rdoc/RubyXL/Stylesheet.html +14 -97
  395. data/rdoc/RubyXL/TableFile.html +5 -20
  396. data/rdoc/RubyXL/TableParts.html +5 -12
  397. data/rdoc/RubyXL/TableStyle.html +5 -12
  398. data/rdoc/RubyXL/TableStyles.html +5 -12
  399. data/rdoc/RubyXL/Text.html +12 -54
  400. data/rdoc/RubyXL/TextImportSettings.html +5 -12
  401. data/rdoc/RubyXL/Theme.html +12 -68
  402. data/rdoc/RubyXL/ThemeElements.html +5 -12
  403. data/rdoc/RubyXL/ThumbnailFile.html +5 -20
  404. data/rdoc/RubyXL/Top10.html +5 -12
  405. data/rdoc/RubyXL/VMLDrawingFile.html +8 -26
  406. data/rdoc/RubyXL/Variant.html +5 -12
  407. data/rdoc/RubyXL/Vector.html +9 -30
  408. data/rdoc/RubyXL/VectorValue.html +5 -12
  409. data/rdoc/RubyXL/VisualProperties.html +5 -12
  410. data/rdoc/RubyXL/WebPublishObject.html +5 -12
  411. data/rdoc/RubyXL/WebPublishObjects.html +5 -12
  412. data/rdoc/RubyXL/WebPublishingItem.html +5 -12
  413. data/rdoc/RubyXL/WebPublishingItems.html +5 -12
  414. data/rdoc/RubyXL/WebPublishingProperties.html +5 -12
  415. data/rdoc/RubyXL/WebQueryProperties.html +5 -12
  416. data/rdoc/RubyXL/Workbook.html +45 -462
  417. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +68 -239
  418. data/rdoc/RubyXL/WorkbookProperties.html +5 -12
  419. data/rdoc/RubyXL/WorkbookProtection.html +5 -12
  420. data/rdoc/RubyXL/WorkbookRoot.html +16 -104
  421. data/rdoc/RubyXL/WorkbookView.html +5 -12
  422. data/rdoc/RubyXL/WorkbookViews.html +5 -12
  423. data/rdoc/RubyXL/Worksheet.html +40 -135
  424. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +170 -989
  425. data/rdoc/RubyXL/WorksheetDimensions.html +5 -12
  426. data/rdoc/RubyXL/WorksheetFormatProperties.html +5 -12
  427. data/rdoc/RubyXL/WorksheetProperties.html +5 -12
  428. data/rdoc/RubyXL/WorksheetProtection.html +5 -12
  429. data/rdoc/RubyXL/WorksheetView.html +5 -12
  430. data/rdoc/RubyXL/WorksheetViews.html +5 -12
  431. data/rdoc/RubyXL/XF.html +5 -12
  432. data/rdoc/RubyXL.html +8 -319
  433. data/rdoc/created.rid +44 -44
  434. data/rdoc/css/rdoc.css +21 -1
  435. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  436. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  437. data/rdoc/index.html +9 -388
  438. data/rdoc/js/navigation.js.gz +0 -0
  439. data/rdoc/js/search_index.js +1 -1
  440. data/rdoc/js/search_index.js.gz +0 -0
  441. data/rdoc/js/searcher.js.gz +0 -0
  442. data/rdoc/table_of_contents.html +57 -5
  443. data/rubyXL.gemspec +24 -30
  444. data/spec/lib/cell_spec.rb +38 -6
  445. data/spec/lib/color_spec.rb +1 -1
  446. data/spec/lib/parser_spec.rb +24 -27
  447. data/spec/lib/reference_spec.rb +9 -3
  448. data/spec/lib/rgb_color_spec.rb +27 -0
  449. data/spec/lib/stylesheet_spec.rb +8 -11
  450. data/spec/lib/text_spec.rb +1 -5
  451. data/spec/lib/workbook_spec.rb +14 -4
  452. data/spec/lib/worksheet_spec.rb +790 -447
  453. data/spec/spec_helper.rb +2 -0
  454. data/test/test_parse_write.rb +3 -3
  455. metadata +11 -8
  456. data/test/output/test.xlsx +0 -0
@@ -1,7 +1,5 @@
1
1
  module RubyXL
2
-
3
2
  module WorkbookConvenienceMethods
4
-
5
3
  def each
6
4
  worksheets.each{ |i| yield i }
7
5
  end
@@ -73,8 +71,8 @@ module RubyXL
73
71
  def modify_fill(style_index, rgb)
74
72
  xf = cell_xfs[style_index || 0].dup
75
73
  new_fill = RubyXL::Fill.new(:pattern_fill =>
76
- RubyXL::PatternFill.new(:pattern_type => 'solid',
77
- :fg_color => RubyXL::Color.new(:rgb => rgb)))
74
+ RubyXL::PatternFill.new(:pattern_type => 'solid',
75
+ :fg_color => RubyXL::Color.new(:rgb => rgb)))
78
76
  register_new_xf(register_new_fill(new_fill, xf))
79
77
  end
80
78
 
@@ -130,6 +128,13 @@ module RubyXL
130
128
  self.defined_names && self.defined_names.find { |n| n.name == name }
131
129
  end
132
130
 
131
+ def title
132
+ self.root.core_properties.dc_title && self.root.core_properties.dc_title.value
133
+ end
134
+
135
+ def title=(v)
136
+ self.root.core_properties.dc_title = v && RubyXL::StringNode.new(:value => v)
137
+ end
133
138
  end
134
139
 
135
140
  RubyXL::Workbook.send(:include, RubyXL::WorkbookConvenienceMethods) # ruby 2.1 compat
@@ -1,5 +1,4 @@
1
1
  module RubyXL
2
-
3
2
  module WorksheetConvenienceMethods
4
3
  NAME = 0
5
4
  SIZE = 1
@@ -106,6 +105,21 @@ module RubyXL
106
105
  }
107
106
  }
108
107
 
108
+ # Update merged cells for all rows below
109
+ if self.merged_cells then
110
+ merged_cells.each { |mc|
111
+ next if mc.ref.row_range.last < row_index
112
+
113
+ in_merged_cell = mc.ref.row_range.first < row_index
114
+ mc.ref = RubyXL::Reference.new(
115
+ mc.ref.row_range.first + (in_merged_cell ? 0 : 1),
116
+ mc.ref.row_range.last + 1,
117
+ mc.ref.col_range.first,
118
+ mc.ref.col_range.last,
119
+ )
120
+ }
121
+ end
122
+
109
123
  return new_row
110
124
  end
111
125
 
@@ -121,6 +135,23 @@ module RubyXL
121
135
  row && row.cells.each{ |c| c.row -= 1 unless c.nil? }
122
136
  }
123
137
 
138
+ # Update row number of merged cells
139
+ if self.merged_cells then
140
+ merged_cells.delete_if { |mc| mc.ref.row_range == (row_index..row_index) }
141
+ merged_cells.each { |mc|
142
+ next if mc.ref.row_range.last < row_index
143
+
144
+ in_merged_cell = mc.ref.row_range.first <= row_index
145
+ mc.ref = RubyXL::Reference.new(
146
+ mc.ref.row_range.first - (in_merged_cell ? 0 : 1),
147
+ mc.ref.row_range.last - 1,
148
+ mc.ref.col_range.first,
149
+ mc.ref.col_range.last,
150
+ )
151
+ }
152
+ merged_cells.delete_if { |mc| mc.ref.single_cell? }
153
+ end
154
+
124
155
  return deleted
125
156
  end
126
157
 
@@ -152,6 +183,21 @@ module RubyXL
152
183
 
153
184
  cols.insert_column(column_index)
154
185
 
186
+ # Update merged cells for all rows below
187
+ if self.merged_cells then
188
+ merged_cells.each { |mc|
189
+ next if mc.ref.col_range.last < column_index
190
+
191
+ in_merged_cell = mc.ref.row_range.first < column_index
192
+ mc.ref = RubyXL::Reference.new(
193
+ mc.ref.row_range.first,
194
+ mc.ref.row_range.last,
195
+ mc.ref.col_range.first + (in_merged_cell ? 0 : 1),
196
+ mc.ref.col_range.last + 1,
197
+ )
198
+ }
199
+ end
200
+
155
201
  # TODO: update column numbers
156
202
  end
157
203
 
@@ -171,6 +217,24 @@ module RubyXL
171
217
  }
172
218
 
173
219
  cols.each { |range| range.delete_column(column_index) }
220
+
221
+ # Update row number of merged cells
222
+ return unless self.merged_cells
223
+
224
+ merged_cells.delete_if { |mc| mc.ref.col_range == (column_index..column_index) }
225
+ merged_cells.each { |mc|
226
+ next if mc.ref.col_range.last < column_index
227
+
228
+ in_merged_cell = mc.ref.col_range.first <= column_index
229
+ mc.ref = RubyXL::Reference.new(
230
+ mc.ref.row_range.first,
231
+ mc.ref.row_range.last,
232
+ mc.ref.col_range.first - (in_merged_cell ? 0 : 1),
233
+ mc.ref.col_range.last - 1,
234
+ )
235
+ }
236
+
237
+ merged_cells.delete_if { |mc| mc.ref.single_cell? }
174
238
  end
175
239
 
176
240
  def get_row_style(row_index)
@@ -632,6 +696,18 @@ module RubyXL
632
696
  # TODO: add validation to make sure ranges are not intersecting with existing ones
633
697
  merged_cells << RubyXL::MergedCell.new(:ref => RubyXL::Reference.new(start_row, end_row, start_col, end_col))
634
698
  end
699
+
700
+ def add_validation_list(ref, list_arr)
701
+ # "Any double quote characters in the value should be escaped with another double quote.
702
+ # If the value does not contain a comma, newline or double quote, then the String value should be returned unchanged.
703
+ # If the value contains a comma, newline or double quote, then the String value should be returned enclosed in double quotes."
704
+ expr = '"' + list_arr.collect{ |str| str.gsub('"', '""') }.join(',') + '"'
705
+ self.data_validations ||= RubyXL::DataValidations.new
706
+ self.data_validations <<
707
+ RubyXL::DataValidation.new({:sqref => RubyXL::Reference.new(ref),
708
+ :formula1 => RubyXL::Formula.new(:expression => expr),
709
+ :type => 'list'})
710
+ end
635
711
  end
636
712
 
637
713
  RubyXL::Worksheet.send(:include, RubyXL::WorksheetConvenienceMethods) # ruby 2.1 compat
@@ -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
  class BorderEdge < OOXMLObject
7
6
  define_attribute(:style, RubyXL::ST_BorderStyle, :default => 'none')
8
7
  define_child_node(RubyXL::Color)
@@ -68,7 +67,5 @@ module RubyXL
68
67
  def self.default
69
68
  self.new(:_ => [ RubyXL::Border.new ])
70
69
  end
71
-
72
70
  end
73
-
74
71
  end
@@ -15,8 +15,8 @@ module RubyXL
15
15
 
16
16
  # http://www.datypic.com/sc/ooxml/e-ssml_calcChain.html
17
17
  class CalculationChain < OOXMLTopLevelObject
18
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml'
19
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain'
18
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml'.freeze
19
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain'.freeze
20
20
 
21
21
  define_child_node(RubyXL::CalculationChainCell, :collection => true, :accessor => :cells)
22
22
  define_child_node(RubyXL::ExtensionStorageArea)
@@ -2,11 +2,10 @@ 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_cellStyle-1.html
7
6
  class CellStyle < OOXMLObject
8
7
  define_attribute(:name, :string)
9
- define_attribute(:xfId, :int, :required => true)
8
+ define_attribute(:xfId, :int, :required => true)
10
9
  define_attribute(:builtinId, :int)
11
10
  define_attribute(:iLevel, :int)
12
11
  define_attribute(:hidden, :bool)
@@ -61,5 +60,4 @@ module RubyXL
61
60
  define_attribute(:formatCode, :string, :required => true)
62
61
  define_element_name 'numFmt'
63
62
  end
64
-
65
63
  end
@@ -5,7 +5,6 @@ require 'rubyXL/objects/relationships'
5
5
  require 'rubyXL/objects/sheet_common'
6
6
 
7
7
  module RubyXL
8
-
9
8
  # http://www.datypic.com/sc/ooxml/e-ssml_sheetProtection-4.html
10
9
  class ChartsheetProtection < OOXMLObject
11
10
  define_attribute(:password, RubyXL::ST_UnsignedShortHex)
@@ -34,7 +33,7 @@ module RubyXL
34
33
  define_attribute(:horizontalDpi, :int, :default => 600)
35
34
  define_attribute(:verticalDpi, :int, :default => 600)
36
35
  define_attribute(:copies, :int, :default => 1)
37
- define_attribute(:'r:id', :string)
36
+ define_relationship
38
37
  define_element_name 'pageSetup'
39
38
  end
40
39
 
@@ -42,7 +41,7 @@ module RubyXL
42
41
  class ChartsheetView < OOXMLObject
43
42
  define_attribute(:tabSelected, :bool, :default => false)
44
43
  define_attribute(:zoomScale, :int, :default => 100)
45
- define_attribute(:workbookViewId, :int, :required => true, :default => 0 )
44
+ define_attribute(:workbookViewId, :int, :required => true, :default => 0)
46
45
  define_attribute(:zoomToFit, :bool, :default => false)
47
46
  define_child_node(RubyXL::ExtensionStorageArea)
48
47
  define_element_name 'sheetView'
@@ -57,14 +56,13 @@ module RubyXL
57
56
 
58
57
  # http://www.datypic.com/sc/ooxml/e-ssml_chartsheet.html
59
58
  class Chartsheet < OOXMLTopLevelObject
60
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'
61
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet'
59
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'.freeze
60
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet'.freeze
62
61
 
63
62
  include RubyXL::RelationshipSupport
64
63
  define_relationship(RubyXL::DrawingFile)
65
64
 
66
- attr_accessor :state, :rels
67
- attr_accessor :workbook, :sheet_name, :sheet_id
65
+ attr_accessor :state, :rels, :workbook, :sheet_name, :sheet_id
68
66
 
69
67
  define_child_node(RubyXL::ChartsheetProperties)
70
68
  define_child_node(RubyXL::ChartsheetViews)
@@ -80,13 +78,11 @@ module RubyXL
80
78
  define_child_node(RubyXL::WebPublishingItems)
81
79
  define_child_node(RubyXL::ExtensionStorageArea)
82
80
  define_element_name 'chartsheet'
83
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
81
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
84
82
  'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
85
83
 
86
84
  def xlsx_path
87
85
  ROOT.join('xl', 'chartsheets', "sheet#{file_index}.xml")
88
86
  end
89
-
90
87
  end
91
-
92
88
  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_color-4.html
7
6
  class Color < OOXMLObject
8
7
  COLOR_REGEXP = /\A([a-f]|[A-F]|[0-9]){6}\Z/
@@ -14,7 +13,7 @@ module RubyXL
14
13
  define_attribute(:tint, :double, :default => 0.0)
15
14
  define_element_name 'color'
16
15
 
17
- #validates hex color code, no '#' allowed
16
+ # validates hex color code, no '#' allowed
18
17
  def self.validate_color(color)
19
18
  if color =~ COLOR_REGEXP
20
19
  return true
@@ -23,5 +22,4 @@ module RubyXL
23
22
  end
24
23
  end
25
24
  end
26
-
27
25
  end
@@ -1,7 +1,6 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
2
 
3
3
  module RubyXL
4
-
5
4
  # http://www.datypic.com/sc/ooxml/e-ssml_col-1.html
6
5
  class ColumnRange < OOXMLObject
7
6
  define_attribute(:min, :uint, :required => true)
@@ -86,7 +85,5 @@ module RubyXL
86
85
  self.sort_by!{ |r| r.min }
87
86
  !(self.empty?)
88
87
  end
89
-
90
88
  end
91
-
92
89
  end
@@ -2,7 +2,6 @@ require 'rubyXL/objects/ooxml_object'
2
2
  require 'rubyXL/objects/extensions'
3
3
 
4
4
  module RubyXL
5
-
6
5
  # http://www.datypic.com/sc/ooxml/e-ssml_comment-1.html
7
6
  class Comment < OOXMLObject
8
7
  define_child_node(RubyXL::RichText, :node_name => 'text')
@@ -28,7 +27,7 @@ module RubyXL
28
27
  # http://www.datypic.com/sc/ooxml/e-ssml_comments.html
29
28
  class CommentsFile < OOXMLTopLevelObject
30
29
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'
31
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments'
30
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments'.freeze
32
31
 
33
32
  define_child_node(RubyXL::Authors)
34
33
  define_child_node(RubyXL::CommentList)
@@ -41,7 +40,5 @@ module RubyXL
41
40
  def xlsx_path
42
41
  ROOT.join('xl', "comments#{file_index}.xml")
43
42
  end
44
-
45
43
  end
46
-
47
44
  end
@@ -59,7 +59,7 @@ module RubyXL
59
59
  define_attribute(:url, RubyXL::ST_Xstring)
60
60
  define_attribute(:post, RubyXL::ST_Xstring)
61
61
  define_attribute(:htmlTables, :bool, :default => false)
62
- define_attribute(:htmlFormat, ssml:ST_HtmlFmt, :default => "none")
62
+ define_attribute(:htmlFormat, ssml:ST_HtmlFmt, :default => 'none')
63
63
  define_attribute(:editPage, RubyXL::ST_Xstring)
64
64
 
65
65
  define_child_node(RubyXL::ConnectionTables)
@@ -69,7 +69,7 @@ module RubyXL
69
69
 
70
70
  # http://www.datypic.com/sc/ooxml/e-ssml_textField-1.html
71
71
  class ConnectionTextField < OOXMLObject
72
- define_attribute(:type, RubyXL::ST_ExternalConnectionType, :default => "general")
72
+ define_attribute(:type, RubyXL::ST_ExternalConnectionType, :default => 'general')
73
73
  define_attribute(:position, :uint, :default => 0)
74
74
  end
75
75
 
@@ -83,19 +83,19 @@ module RubyXL
83
83
  # http://www.datypic.com/sc/ooxml/e-ssml_textPr-1.html
84
84
  class TextImportSettings < OOXMLObject
85
85
  define_attribute(:prompt, :bool, :default => true)
86
- define_attribute(:fileType, RubyXL::ST_FileType, :default => "win")
86
+ define_attribute(:fileType, RubyXL::ST_FileType, :default => 'win')
87
87
  define_attribute(:codePage, :uint, :default => 1252)
88
88
  define_attribute(:firstRow, :uint, :default => 1)
89
- define_attribute(:sourceFile, RubyXL::ST_Xstring, :default => "")
89
+ define_attribute(:sourceFile, RubyXL::ST_Xstring, :default => '')
90
90
  define_attribute(:delimited, :bool, :default => true)
91
- define_attribute(:decimal, RubyXL::ST_Xstring, :default => ".")
92
- define_attribute(:thousands, RubyXL::ST_Xstring, :default => ",")
91
+ define_attribute(:decimal, RubyXL::ST_Xstring, :default => '.')
92
+ define_attribute(:thousands, RubyXL::ST_Xstring, :default => ',')
93
93
  define_attribute(:tab, :bool, :default => true)
94
94
  define_attribute(:space, :bool, :default => false)
95
95
  define_attribute(:comma, :bool, :default => false)
96
96
  define_attribute(:semicolon, :bool, :default => false)
97
97
  define_attribute(:consecutive, :bool, :default => false)
98
- define_attribute(:qualifier, ssml:ST_Qualifier, :default => "doubleQuote")
98
+ define_attribute(:qualifier, ssml:ST_Qualifier, :default => 'doubleQuote')
99
99
  define_attribute(:delimiter, RubyXL::ST_Xstring)
100
100
 
101
101
  define_child_node(RubyXL::ConnectionTextFields)
@@ -107,7 +107,7 @@ module RubyXL
107
107
  class QueryParameter < OOXMLObject
108
108
  define_attribute(:name, RubyXL::ST_Xstring)
109
109
  define_attribute(:sqlType, :int, :default => 0)
110
- define_attribute(:parameterType, RubyXL::ST_ParameterType, :default => "prompt")
110
+ define_attribute(:parameterType, RubyXL::ST_ParameterType, :default => 'prompt')
111
111
  define_attribute(:refreshOnChange, :bool, :default => false)
112
112
  define_attribute(:prompt, RubyXL::ST_Xstring)
113
113
  define_attribute(:boolean, :bool)
@@ -144,7 +144,7 @@ module RubyXL
144
144
  define_attribute(:background, :bool, :default => false)
145
145
  define_attribute(:refreshOnLoad, :bool, :default => false)
146
146
  define_attribute(:saveData, :bool, :default => false)
147
- define_attribute(:credentials, RubyXL::ST_CredMethod, :default => "integrated")
147
+ define_attribute(:credentials, RubyXL::ST_CredMethod, :default => 'integrated')
148
148
  define_attribute(:singleSignOnId, RubyXL::ST_Xstring)
149
149
 
150
150
  define_child_node(RubyXL::OdbcOleDbProperties)
@@ -159,8 +159,8 @@ module RubyXL
159
159
 
160
160
  # http://www.datypic.com/sc/ooxml/e-ssml_connections.html
161
161
  class Connections < OOXMLTopLevelObject
162
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'
163
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections'
162
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'.freeze
163
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections'.freeze
164
164
 
165
165
  define_child_node(RubyXL::Connection, :collection => true, :accessor => :connections)
166
166
 
@@ -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
  class BooleanValue < OOXMLObject
7
6
  define_attribute(:val, :bool, :required => true, :default => true)
8
7
  end
@@ -46,12 +45,11 @@ module RubyXL
46
45
  def self.default(v)
47
46
  v && self.new(:value => v.to_datetime.iso8601)
48
47
  end
49
-
50
48
  end
51
49
 
52
50
  # http://www.datypic.com/sc/ooxml/e-docPropsVTypes_variant.html
53
51
  class Variant < OOXMLObject
54
- define_child_node(RubyXL::Variant, :node_name => 'vt:variant')
52
+ define_child_node(RubyXL::Variant, :node_name => 'vt:variant')
55
53
 
56
54
  # vector Vector
57
55
  # array Array
@@ -125,11 +123,9 @@ module RubyXL
125
123
  known_child_nodes.values.each { |v| self.size += self.send(v[:accessor]).size }
126
124
  true
127
125
  end
128
-
129
126
  end
130
127
 
131
128
  class VectorValue < OOXMLObject
132
129
  define_child_node(RubyXL::Vector)
133
130
  end
134
-
135
131
  end
@@ -1,7 +1,6 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
2
 
3
3
  module RubyXL
4
-
5
4
  class ContentTypeDefault < OOXMLObject
6
5
  define_attribute(:Extension, :string)
7
6
  define_attribute(:ContentType, :string)
@@ -9,7 +8,7 @@ module RubyXL
9
8
  end
10
9
 
11
10
  class ContentTypeOverride < OOXMLObject
12
- define_attribute(:PartName, :string)
11
+ define_attribute(:PartName, :string)
13
12
  define_attribute(:ContentType, :string)
14
13
  define_element_name 'Override'
15
14
  end
@@ -48,7 +47,7 @@ module RubyXL
48
47
  content_types_by_ext.each_pair { |ext, content_types_arr|
49
48
  next if ext.nil? || defaults.any? { |d| d.extension == ext }
50
49
  most_frequent_ct = content_types_arr.group_by { |ct| ct }.values.max_by(&:size).first
51
- defaults << RubyXL::ContentTypeDefault.new(:extension => ext, :content_type => most_frequent_ct )
50
+ defaults << RubyXL::ContentTypeDefault.new(:extension => ext, :content_type => most_frequent_ct)
52
51
  }
53
52
 
54
53
  self.overrides = []
@@ -64,14 +63,12 @@ module RubyXL
64
63
 
65
64
  ext = obj.xlsx_path.extname[1..-1]
66
65
  next if defaults.any? { |d| (d.extension == ext) && (d.content_type == obj_content_type) }
67
- overrides << RubyXL::ContentTypeOverride.new(:part_name => obj.xlsx_path,
66
+ overrides << RubyXL::ContentTypeOverride.new(:part_name => obj.xlsx_path,
68
67
  :content_type => obj_content_type)
69
68
  }
70
69
  }
71
70
 
72
71
  true
73
72
  end
74
-
75
73
  end
76
-
77
74
  end
@@ -3,7 +3,6 @@ require 'rubyXL/objects/simple_types'
3
3
  require 'rubyXL/objects/formula'
4
4
 
5
5
  module RubyXL
6
-
7
6
  # http://www.datypic.com/sc/ooxml/e-ssml_dataValidation-1.html
8
7
  class DataValidation < OOXMLObject
9
8
  define_attribute(:type, RubyXL::ST_DataValidationType, :default => 'none')
@@ -11,6 +10,8 @@ module RubyXL
11
10
  define_attribute(:imeMode, RubyXL::ST_DataValidationImeMode, :default => 'noControl')
12
11
  define_attribute(:operator, RubyXL::ST_DataValidationOperator, :default => 'between')
13
12
  define_attribute(:allowBlank, :bool, :default => false)
13
+ # Documentation lies. This property should have been called "HIDE dropdown",
14
+ # since that's what happens when it is set to true.
14
15
  define_attribute(:showDropDown, :bool, :default => false)
15
16
  define_attribute(:showInputMessage, :bool, :default => false)
16
17
  define_attribute(:showErrorMessage, :bool, :default => false)
@@ -33,5 +34,4 @@ module RubyXL
33
34
  define_child_node(RubyXL::DataValidation, :collection => :with_count)
34
35
  define_element_name 'dataValidations'
35
36
  end
36
-
37
37
  end
@@ -3,11 +3,10 @@ require 'rubyXL/objects/container_nodes'
3
3
  require 'time'
4
4
 
5
5
  module RubyXL
6
-
7
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
@@ -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,7 +1,6 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
2
 
3
3
  module RubyXL
4
-
5
4
  # http://www.datypic.com/sc/ooxml/e-ssml_ext-1.html
6
5
  class RawOOXML < OOXMLObject
7
6
  attr_accessor :raw_xml
@@ -49,5 +48,4 @@ module RubyXL
49
48
  class RevisionPointer < OOXMLIgnored
50
49
  define_element_name 'xr:revisionPtr'
51
50
  end
52
-
53
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)
@@ -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)
@@ -13,8 +12,8 @@ module RubyXL
13
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
 
@@ -39,7 +38,6 @@ 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
43
  # http://www.datypic.com/sc/ooxml/e-ssml_fills-1.html
@@ -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