rubyXL 3.3.29 → 3.4.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (466) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +60 -0
  3. data/.rubocop.yml +124 -0
  4. data/CHANGELOG.md +12 -0
  5. data/Gemfile +11 -8
  6. data/LICENSE.txt +1 -1
  7. data/README.rdoc +57 -19
  8. data/Rakefile +29 -29
  9. data/VERSION +1 -1
  10. data/lib/rubyXL/cell.rb +2 -29
  11. data/lib/rubyXL/convenience_methods/cell.rb +276 -0
  12. data/lib/rubyXL/convenience_methods/color.rb +156 -0
  13. data/lib/rubyXL/convenience_methods/font.rb +63 -0
  14. data/lib/rubyXL/convenience_methods/workbook.rb +137 -0
  15. data/lib/rubyXL/convenience_methods/worksheet.rb +734 -0
  16. data/lib/rubyXL/convenience_methods.rb +5 -1122
  17. data/lib/rubyXL/objects/border.rb +0 -3
  18. data/lib/rubyXL/objects/calculation_chain.rb +2 -2
  19. data/lib/rubyXL/objects/cell_style.rb +4 -6
  20. data/lib/rubyXL/objects/chartsheet.rb +8 -12
  21. data/lib/rubyXL/objects/color.rb +4 -6
  22. data/lib/rubyXL/objects/column_range.rb +16 -15
  23. data/lib/rubyXL/objects/comments.rb +1 -4
  24. data/lib/rubyXL/objects/connection.rb +175 -0
  25. data/lib/rubyXL/objects/container_nodes.rb +1 -5
  26. data/lib/rubyXL/objects/content_types.rb +3 -6
  27. data/lib/rubyXL/objects/data_validation.rb +2 -2
  28. data/lib/rubyXL/objects/document_properties.rb +12 -15
  29. data/lib/rubyXL/objects/extensions.rb +0 -2
  30. data/lib/rubyXL/objects/external_links.rb +38 -8
  31. data/lib/rubyXL/objects/fill.rb +2 -5
  32. data/lib/rubyXL/objects/filters.rb +5 -7
  33. data/lib/rubyXL/objects/font.rb +2 -7
  34. data/lib/rubyXL/objects/formula.rb +3 -5
  35. data/lib/rubyXL/objects/ooxml_object.rb +40 -31
  36. data/lib/rubyXL/objects/query_table.rb +106 -0
  37. data/lib/rubyXL/objects/reference.rb +26 -17
  38. data/lib/rubyXL/objects/relationships.rb +14 -14
  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 +1 -3
  42. data/lib/rubyXL/objects/sheet_data.rb +44 -17
  43. data/lib/rubyXL/objects/simple_types.rb +19 -2
  44. data/lib/rubyXL/objects/storage.rb +60 -49
  45. data/lib/rubyXL/objects/stylesheet.rb +9 -17
  46. data/lib/rubyXL/objects/text.rb +6 -8
  47. data/lib/rubyXL/objects/theme.rb +23 -9
  48. data/lib/rubyXL/objects/workbook.rb +144 -36
  49. data/lib/rubyXL/objects/worksheet.rb +48 -34
  50. data/lib/rubyXL/parser.rb +1 -3
  51. data/lib/rubyXL/worksheet.rb +86 -86
  52. data/lib/rubyXL.rb +1 -1
  53. data/rdoc/README_rdoc.html +212 -153
  54. data/rdoc/RubyXL/AExtension.html +33 -69
  55. data/rdoc/RubyXL/AExtensionStorageArea.html +12 -18
  56. data/rdoc/RubyXL/ActiveX.html +26 -52
  57. data/rdoc/RubyXL/ActiveXBinary.html +12 -23
  58. data/rdoc/RubyXL/AdjustHandleList.html +13 -20
  59. data/rdoc/RubyXL/Alignment.html +13 -20
  60. data/rdoc/RubyXL/AlternateContent.html +12 -18
  61. data/rdoc/RubyXL/AlternateUrls.html +99 -0
  62. data/rdoc/RubyXL/Authors.html +13 -20
  63. data/rdoc/RubyXL/AutoFilter.html +13 -20
  64. data/rdoc/RubyXL/AutoFilterColumn.html +13 -20
  65. data/rdoc/RubyXL/BinaryImageFile.html +12 -26
  66. data/rdoc/RubyXL/BodyProperties.html +13 -20
  67. data/rdoc/RubyXL/BooleanNode.html +12 -18
  68. data/rdoc/RubyXL/BooleanValue.html +12 -18
  69. data/rdoc/RubyXL/Border.html +49 -101
  70. data/rdoc/RubyXL/BorderEdge.html +32 -61
  71. data/rdoc/RubyXL/Borders.html +25 -44
  72. data/rdoc/RubyXL/Break.html +13 -20
  73. data/rdoc/RubyXL/BreakList.html +13 -20
  74. data/rdoc/RubyXL/CT_AdjPoint2D.html +13 -20
  75. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +13 -20
  76. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +13 -20
  77. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +13 -20
  78. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +13 -20
  79. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +13 -20
  80. data/rdoc/RubyXL/CT_Backdrop.html +13 -20
  81. data/rdoc/RubyXL/CT_Bevel.html +13 -20
  82. data/rdoc/RubyXL/CT_BiLevelEffect.html +13 -20
  83. data/rdoc/RubyXL/CT_BlendEffect.html +13 -20
  84. data/rdoc/RubyXL/CT_Blip.html +13 -20
  85. data/rdoc/RubyXL/CT_BlipFillProperties.html +13 -20
  86. data/rdoc/RubyXL/CT_BlurEffect.html +13 -20
  87. data/rdoc/RubyXL/CT_Camera.html +13 -20
  88. data/rdoc/RubyXL/CT_Color.html +13 -20
  89. data/rdoc/RubyXL/CT_ColorChangeEffect.html +13 -20
  90. data/rdoc/RubyXL/CT_ColorMapping.html +13 -20
  91. data/rdoc/RubyXL/CT_ColorScheme.html +13 -20
  92. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +13 -20
  93. data/rdoc/RubyXL/CT_ConnectionSite.html +13 -20
  94. data/rdoc/RubyXL/CT_ConnectionSiteList.html +13 -20
  95. data/rdoc/RubyXL/CT_DashStop.html +13 -20
  96. data/rdoc/RubyXL/CT_DashStopList.html +13 -20
  97. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +13 -20
  98. data/rdoc/RubyXL/CT_DuotoneEffect.html +13 -20
  99. data/rdoc/RubyXL/CT_EffectContainer.html +13 -20
  100. data/rdoc/RubyXL/CT_EffectList.html +13 -20
  101. data/rdoc/RubyXL/CT_EffectReference.html +13 -20
  102. data/rdoc/RubyXL/CT_EffectStyleItem.html +13 -20
  103. data/rdoc/RubyXL/CT_EffectStyleList.html +13 -20
  104. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +13 -20
  105. data/rdoc/RubyXL/CT_FillEffect.html +13 -20
  106. data/rdoc/RubyXL/CT_FillOverlayEffect.html +13 -20
  107. data/rdoc/RubyXL/CT_FillStyleList.html +13 -20
  108. data/rdoc/RubyXL/CT_FlatText.html +13 -20
  109. data/rdoc/RubyXL/CT_FontCollection.html +13 -20
  110. data/rdoc/RubyXL/CT_FontReference.html +13 -20
  111. data/rdoc/RubyXL/CT_GeomGuideList.html +13 -20
  112. data/rdoc/RubyXL/CT_GlowEffect.html +13 -20
  113. data/rdoc/RubyXL/CT_GradientFillProperties.html +13 -20
  114. data/rdoc/RubyXL/CT_GradientStop.html +13 -20
  115. data/rdoc/RubyXL/CT_GradientStopList.html +13 -20
  116. data/rdoc/RubyXL/CT_HSLEffect.html +13 -20
  117. data/rdoc/RubyXL/CT_HslColor.html +13 -20
  118. data/rdoc/RubyXL/CT_Hyperlink.html +13 -20
  119. data/rdoc/RubyXL/CT_InnerShadowEffect.html +13 -20
  120. data/rdoc/RubyXL/CT_LightRig.html +13 -20
  121. data/rdoc/RubyXL/CT_LineEndProperties.html +13 -20
  122. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +13 -20
  123. data/rdoc/RubyXL/CT_LineProperties.html +13 -20
  124. data/rdoc/RubyXL/CT_LineStyleList.html +13 -20
  125. data/rdoc/RubyXL/CT_LinearShadeProperties.html +13 -20
  126. data/rdoc/RubyXL/CT_LuminanceEffect.html +13 -20
  127. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +13 -20
  128. data/rdoc/RubyXL/CT_OuterShadowEffect.html +13 -20
  129. data/rdoc/RubyXL/CT_Path2D.html +13 -20
  130. data/rdoc/RubyXL/CT_Path2DArcTo.html +13 -20
  131. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +13 -20
  132. data/rdoc/RubyXL/CT_Path2DList.html +13 -20
  133. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +13 -20
  134. data/rdoc/RubyXL/CT_Path2DTo.html +13 -20
  135. data/rdoc/RubyXL/CT_PathShadeProperties.html +13 -20
  136. data/rdoc/RubyXL/CT_PatternFillProperties.html +13 -20
  137. data/rdoc/RubyXL/CT_Point3D.html +13 -20
  138. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +13 -20
  139. data/rdoc/RubyXL/CT_PresetColor.html +13 -20
  140. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +13 -20
  141. data/rdoc/RubyXL/CT_PresetShadowEffect.html +13 -20
  142. data/rdoc/RubyXL/CT_PresetTextShape.html +13 -20
  143. data/rdoc/RubyXL/CT_ReflectionEffect.html +13 -20
  144. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +13 -20
  145. data/rdoc/RubyXL/CT_RelativeRect.html +13 -20
  146. data/rdoc/RubyXL/CT_SRgbColor.html +13 -20
  147. data/rdoc/RubyXL/CT_ScRgbColor.html +13 -20
  148. data/rdoc/RubyXL/CT_Scene3D.html +13 -20
  149. data/rdoc/RubyXL/CT_SchemeColor.html +13 -20
  150. data/rdoc/RubyXL/CT_Shape3D.html +13 -20
  151. data/rdoc/RubyXL/CT_ShapeStyle.html +13 -20
  152. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +13 -20
  153. data/rdoc/RubyXL/CT_SphereCoords.html +13 -20
  154. data/rdoc/RubyXL/CT_StretchInfoProperties.html +13 -20
  155. data/rdoc/RubyXL/CT_StyleMatrix.html +13 -20
  156. data/rdoc/RubyXL/CT_StyleMatrixReference.html +13 -20
  157. data/rdoc/RubyXL/CT_SupplementalFont.html +13 -20
  158. data/rdoc/RubyXL/CT_SystemColor.html +13 -20
  159. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +13 -20
  160. data/rdoc/RubyXL/CT_TextBlipBullet.html +13 -20
  161. data/rdoc/RubyXL/CT_TextCharBullet.html +13 -20
  162. data/rdoc/RubyXL/CT_TextCharacterProperties.html +13 -20
  163. data/rdoc/RubyXL/CT_TextFont.html +13 -20
  164. data/rdoc/RubyXL/CT_TextListStyle.html +13 -20
  165. data/rdoc/RubyXL/CT_TextNormalAutofit.html +13 -20
  166. data/rdoc/RubyXL/CT_TextParagraphProperties.html +13 -20
  167. data/rdoc/RubyXL/CT_TextSpacing.html +13 -20
  168. data/rdoc/RubyXL/CT_TextTabStop.html +13 -20
  169. data/rdoc/RubyXL/CT_TextTabStopList.html +13 -20
  170. data/rdoc/RubyXL/CT_TileInfoProperties.html +13 -20
  171. data/rdoc/RubyXL/CT_TintEffect.html +13 -20
  172. data/rdoc/RubyXL/CT_Transform2D.html +13 -20
  173. data/rdoc/RubyXL/CT_TransformEffect.html +13 -20
  174. data/rdoc/RubyXL/CT_Vector3D.html +13 -20
  175. data/rdoc/RubyXL/CT_XYAdjustHandle.html +13 -20
  176. data/rdoc/RubyXL/CalculationChain.html +23 -50
  177. data/rdoc/RubyXL/CalculationChainCell.html +13 -20
  178. data/rdoc/RubyXL/CalculationProperties.html +13 -20
  179. data/rdoc/RubyXL/Cell.html +210 -258
  180. data/rdoc/RubyXL/CellConvenienceMethods.html +438 -572
  181. data/rdoc/RubyXL/CellExt.html +13 -20
  182. data/rdoc/RubyXL/CellSmartTag.html +13 -20
  183. data/rdoc/RubyXL/CellSmartTagProperty.html +13 -20
  184. data/rdoc/RubyXL/CellSmartTags.html +13 -20
  185. data/rdoc/RubyXL/CellStyle.html +13 -20
  186. data/rdoc/RubyXL/CellStyleXFs.html +25 -44
  187. data/rdoc/RubyXL/CellStyles.html +25 -44
  188. data/rdoc/RubyXL/CellValue.html +24 -43
  189. data/rdoc/RubyXL/CellWatch.html +13 -20
  190. data/rdoc/RubyXL/CellWatches.html +13 -20
  191. data/rdoc/RubyXL/CellXFs.html +26 -48
  192. data/rdoc/RubyXL/ChartColorsFile.html +12 -26
  193. data/rdoc/RubyXL/ChartFile.html +25 -54
  194. data/rdoc/RubyXL/ChartStyleFile.html +12 -26
  195. data/rdoc/RubyXL/ChartUserShapesFile.html +12 -26
  196. data/rdoc/RubyXL/Chartsheet.html +26 -73
  197. data/rdoc/RubyXL/ChartsheetPageSetup.html +13 -20
  198. data/rdoc/RubyXL/ChartsheetProperties.html +13 -20
  199. data/rdoc/RubyXL/ChartsheetProtection.html +13 -20
  200. data/rdoc/RubyXL/ChartsheetView.html +13 -20
  201. data/rdoc/RubyXL/ChartsheetViews.html +13 -20
  202. data/rdoc/RubyXL/Color.html +24 -48
  203. data/rdoc/RubyXL/ColorConvenienceClasses/HlsColor.html +246 -0
  204. data/rdoc/RubyXL/ColorConvenienceClasses/RgbColor.html +285 -0
  205. data/rdoc/RubyXL/ColorConvenienceClasses.html +91 -0
  206. data/rdoc/RubyXL/ColorConvenienceMethods.html +139 -0
  207. data/rdoc/RubyXL/ColorFilter.html +13 -20
  208. data/rdoc/RubyXL/ColorScale.html +13 -20
  209. data/rdoc/RubyXL/ColorSet.html +13 -20
  210. data/rdoc/RubyXL/Colors.html +13 -20
  211. data/rdoc/RubyXL/ColumnRange.html +76 -91
  212. data/rdoc/RubyXL/ColumnRanges.html +54 -106
  213. data/rdoc/RubyXL/Comment.html +13 -20
  214. data/rdoc/RubyXL/CommentList.html +13 -20
  215. data/rdoc/RubyXL/CommentsFile.html +24 -56
  216. data/rdoc/RubyXL/ConditionalFormatValue.html +13 -20
  217. data/rdoc/RubyXL/ConditionalFormatting.html +13 -20
  218. data/rdoc/RubyXL/ConditionalFormattingRule.html +13 -20
  219. data/rdoc/RubyXL/Connection.html +99 -0
  220. data/rdoc/RubyXL/ConnectionTable.html +99 -0
  221. data/rdoc/RubyXL/ConnectionTables.html +99 -0
  222. data/rdoc/RubyXL/ConnectionTextField.html +99 -0
  223. data/rdoc/RubyXL/ConnectionTextFields.html +99 -0
  224. data/rdoc/RubyXL/Connections.html +149 -0
  225. data/rdoc/RubyXL/ContentTypeDefault.html +12 -18
  226. data/rdoc/RubyXL/ContentTypeOverride.html +12 -18
  227. data/rdoc/RubyXL/ContentTypes.html +35 -72
  228. data/rdoc/RubyXL/ControlPropertiesFile.html +14 -23
  229. data/rdoc/RubyXL/CorePropertiesFile.html +89 -208
  230. data/rdoc/RubyXL/CustomColor.html +13 -20
  231. data/rdoc/RubyXL/CustomColorList.html +13 -20
  232. data/rdoc/RubyXL/CustomFilter.html +13 -20
  233. data/rdoc/RubyXL/CustomFilters.html +13 -20
  234. data/rdoc/RubyXL/CustomGeometry.html +13 -20
  235. data/rdoc/RubyXL/CustomProperties.html +13 -20
  236. data/rdoc/RubyXL/CustomPropertiesFile.html +12 -26
  237. data/rdoc/RubyXL/CustomProperty.html +13 -20
  238. data/rdoc/RubyXL/CustomPropertyFile.html +108 -0
  239. data/rdoc/RubyXL/CustomSheetView.html +13 -20
  240. data/rdoc/RubyXL/CustomSheetViews.html +13 -20
  241. data/rdoc/RubyXL/CustomWorkbookView.html +13 -20
  242. data/rdoc/RubyXL/CustomWorkbookViews.html +13 -20
  243. data/rdoc/RubyXL/CustomXMLFile.html +12 -23
  244. data/rdoc/RubyXL/DXF.html +13 -20
  245. data/rdoc/RubyXL/DXFs.html +13 -20
  246. data/rdoc/RubyXL/DataBar.html +13 -20
  247. data/rdoc/RubyXL/DataConsolidate.html +13 -20
  248. data/rdoc/RubyXL/DataConsolidationReference.html +13 -20
  249. data/rdoc/RubyXL/DataConsolidationReferences.html +13 -20
  250. data/rdoc/RubyXL/DataType.html +11 -40
  251. data/rdoc/RubyXL/DataValidation.html +13 -20
  252. data/rdoc/RubyXL/DataValidations.html +13 -20
  253. data/rdoc/RubyXL/DateGroupItem.html +13 -20
  254. data/rdoc/RubyXL/DefinedName.html +13 -20
  255. data/rdoc/RubyXL/DefinedNameExt.html +13 -20
  256. data/rdoc/RubyXL/DefinedNames.html +13 -20
  257. data/rdoc/RubyXL/DefinedNamesExt.html +13 -20
  258. data/rdoc/RubyXL/DocumentPropertiesFile.html +34 -76
  259. data/rdoc/RubyXL/DrawingFile.html +25 -54
  260. data/rdoc/RubyXL/DynamicFilter.html +13 -20
  261. data/rdoc/RubyXL/EmbeddedControl.html +13 -20
  262. data/rdoc/RubyXL/EmbeddedControls.html +13 -20
  263. data/rdoc/RubyXL/Extension.html +13 -20
  264. data/rdoc/RubyXL/ExtensionStorageArea.html +13 -20
  265. data/rdoc/RubyXL/Extents.html +13 -20
  266. data/rdoc/RubyXL/ExternalBook.html +13 -20
  267. data/rdoc/RubyXL/ExternalLinksFile.html +25 -54
  268. data/rdoc/RubyXL/ExternalReference.html +13 -20
  269. data/rdoc/RubyXL/ExternalReferences.html +13 -20
  270. data/rdoc/RubyXL/ExtraColorSchemeList.html +13 -20
  271. data/rdoc/RubyXL/FieldItem.html +13 -20
  272. data/rdoc/RubyXL/FileRecoveryProperties.html +13 -20
  273. data/rdoc/RubyXL/FileSharing.html +13 -20
  274. data/rdoc/RubyXL/FileVersion.html +13 -20
  275. data/rdoc/RubyXL/Fill.html +25 -44
  276. data/rdoc/RubyXL/Fills.html +25 -44
  277. data/rdoc/RubyXL/FilterContainer.html +13 -20
  278. data/rdoc/RubyXL/FloatNode.html +12 -18
  279. data/rdoc/RubyXL/FloatValue.html +12 -18
  280. data/rdoc/RubyXL/Font.html +28 -64
  281. data/rdoc/RubyXL/FontConvenienceMethods.html +133 -294
  282. data/rdoc/RubyXL/FontScheme.html +13 -20
  283. data/rdoc/RubyXL/Fonts.html +25 -44
  284. data/rdoc/RubyXL/Formula.html +13 -20
  285. data/rdoc/RubyXL/FunctionGroup.html +13 -20
  286. data/rdoc/RubyXL/FunctionGroups.html +13 -20
  287. data/rdoc/RubyXL/GenericStorageObject.html +41 -98
  288. data/rdoc/RubyXL/GradientFill.html +13 -20
  289. data/rdoc/RubyXL/HeaderFooterSettings.html +13 -20
  290. data/rdoc/RubyXL/Hyperlink.html +13 -20
  291. data/rdoc/RubyXL/HyperlinkRelFile.html +12 -23
  292. data/rdoc/RubyXL/Hyperlinks.html +13 -20
  293. data/rdoc/RubyXL/IconFilter.html +13 -20
  294. data/rdoc/RubyXL/IconSet.html +13 -20
  295. data/rdoc/RubyXL/IgnoredError.html +13 -20
  296. data/rdoc/RubyXL/IgnoredErrors.html +13 -20
  297. data/rdoc/RubyXL/IndexedColors.html +13 -20
  298. data/rdoc/RubyXL/InputCells.html +13 -20
  299. data/rdoc/RubyXL/IntegerNode.html +12 -18
  300. data/rdoc/RubyXL/IntegerValue.html +12 -18
  301. data/rdoc/RubyXL/LegacyCell.html +20 -71
  302. data/rdoc/RubyXL/LegacyWorksheet.html +77 -126
  303. data/rdoc/RubyXL/MRUColors.html +13 -20
  304. data/rdoc/RubyXL/MacrosFile.html +12 -26
  305. data/rdoc/RubyXL/MergedCell.html +13 -20
  306. data/rdoc/RubyXL/MergedCells.html +13 -20
  307. data/rdoc/RubyXL/NumFmt.html +13 -20
  308. data/rdoc/RubyXL/NumberFormat.html +25 -44
  309. data/rdoc/RubyXL/NumberFormats.html +25 -50
  310. data/rdoc/RubyXL/OLEObject.html +13 -20
  311. data/rdoc/RubyXL/OLEObjectFile.html +12 -26
  312. data/rdoc/RubyXL/OLEObjects.html +13 -20
  313. data/rdoc/RubyXL/OLESize.html +13 -20
  314. data/rdoc/RubyXL/OOXMLContainerObject.html +72 -157
  315. data/rdoc/RubyXL/OOXMLIgnored.html +32 -62
  316. data/rdoc/RubyXL/OOXMLObject.html +15 -26
  317. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +126 -203
  318. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +104 -226
  319. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +109 -242
  320. data/rdoc/RubyXL/OOXMLTopLevelObject.html +67 -154
  321. data/rdoc/RubyXL/OdbcOleDbProperties.html +99 -0
  322. data/rdoc/RubyXL/Offset.html +13 -20
  323. data/rdoc/RubyXL/OlapProperties.html +99 -0
  324. data/rdoc/RubyXL/OleItem.html +99 -0
  325. data/rdoc/RubyXL/OleItems.html +99 -0
  326. data/rdoc/RubyXL/OleLink.html +99 -0
  327. data/rdoc/RubyXL/OutlineProperties.html +13 -20
  328. data/rdoc/RubyXL/PageMargins.html +13 -20
  329. data/rdoc/RubyXL/PageSetup.html +13 -20
  330. data/rdoc/RubyXL/PageSetupProperties.html +13 -20
  331. data/rdoc/RubyXL/Pane.html +13 -20
  332. data/rdoc/RubyXL/Parser.html +35 -65
  333. data/rdoc/RubyXL/PatternFill.html +13 -20
  334. data/rdoc/RubyXL/PersonMetadata.html +108 -0
  335. data/rdoc/RubyXL/PhoneticProperties.html +13 -20
  336. data/rdoc/RubyXL/PhoneticRun.html +13 -20
  337. data/rdoc/RubyXL/PivotArea.html +13 -20
  338. data/rdoc/RubyXL/PivotCache.html +13 -20
  339. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +14 -31
  340. data/rdoc/RubyXL/PivotCacheRecordsFile.html +12 -26
  341. data/rdoc/RubyXL/PivotCaches.html +13 -20
  342. data/rdoc/RubyXL/PivotReference.html +13 -20
  343. data/rdoc/RubyXL/PivotReferences.html +13 -20
  344. data/rdoc/RubyXL/PivotTableFile.html +14 -31
  345. data/rdoc/RubyXL/PivotTableSelection.html +13 -20
  346. data/rdoc/RubyXL/PresetGeometry.html +13 -20
  347. data/rdoc/RubyXL/PrintOptions.html +13 -20
  348. data/rdoc/RubyXL/PrinterSettingsFile.html +12 -26
  349. data/rdoc/RubyXL/ProtectedRange.html +13 -20
  350. data/rdoc/RubyXL/ProtectedRanges.html +13 -20
  351. data/rdoc/RubyXL/Protection.html +13 -20
  352. data/rdoc/RubyXL/QueryParameter.html +99 -0
  353. data/rdoc/RubyXL/QueryParameters.html +99 -0
  354. data/rdoc/RubyXL/QueryTable.html +157 -0
  355. data/rdoc/RubyXL/QueryTableDeletedField.html +99 -0
  356. data/rdoc/RubyXL/QueryTableDeletedFields.html +99 -0
  357. data/rdoc/RubyXL/QueryTableField.html +99 -0
  358. data/rdoc/RubyXL/QueryTableFields.html +99 -0
  359. data/rdoc/RubyXL/QueryTableRefresh.html +99 -0
  360. data/rdoc/RubyXL/RID.html +12 -18
  361. data/rdoc/RubyXL/RawOOXML.html +33 -69
  362. data/rdoc/RubyXL/Reference.html +156 -286
  363. data/rdoc/RubyXL/Relationship.html +12 -18
  364. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +20 -37
  365. data/rdoc/RubyXL/RelationshipSupport.html +62 -145
  366. data/rdoc/RubyXL/RevisionPointer.html +13 -23
  367. data/rdoc/RubyXL/RichText.html +27 -45
  368. data/rdoc/RubyXL/RichTextRun.html +24 -43
  369. data/rdoc/RubyXL/Row.html +88 -205
  370. data/rdoc/RubyXL/RowExt.html +13 -20
  371. data/rdoc/RubyXL/RunProperties.html +13 -20
  372. data/rdoc/RubyXL/Scenario.html +13 -20
  373. data/rdoc/RubyXL/Scenarios.html +13 -20
  374. data/rdoc/RubyXL/Selection.html +23 -42
  375. data/rdoc/RubyXL/ShapeGuide.html +13 -20
  376. data/rdoc/RubyXL/ShapeTextRectangle.html +13 -20
  377. data/rdoc/RubyXL/SharedStringsTable.html +81 -177
  378. data/rdoc/RubyXL/Sheet.html +13 -20
  379. data/rdoc/RubyXL/SheetCalculationProperties.html +13 -20
  380. data/rdoc/RubyXL/SheetData.html +32 -62
  381. data/rdoc/RubyXL/SheetDataExt.html +13 -20
  382. data/rdoc/RubyXL/SheetDataSet.html +13 -20
  383. data/rdoc/RubyXL/SheetMetadata.html +108 -0
  384. data/rdoc/RubyXL/SheetName.html +13 -20
  385. data/rdoc/RubyXL/SheetNames.html +13 -20
  386. data/rdoc/RubyXL/Sheets.html +13 -20
  387. data/rdoc/RubyXL/SlicerCacheFile.html +12 -26
  388. data/rdoc/RubyXL/SlicerFile.html +12 -26
  389. data/rdoc/RubyXL/SmartTagProperties.html +13 -20
  390. data/rdoc/RubyXL/SmartTagType.html +13 -20
  391. data/rdoc/RubyXL/SmartTagTypes.html +13 -20
  392. data/rdoc/RubyXL/SmartTags.html +13 -20
  393. data/rdoc/RubyXL/SortCondition.html +13 -20
  394. data/rdoc/RubyXL/SortState.html +13 -20
  395. data/rdoc/RubyXL/Sqref.html +33 -63
  396. data/rdoc/RubyXL/Stop.html +13 -20
  397. data/rdoc/RubyXL/StringNode.html +12 -18
  398. data/rdoc/RubyXL/StringNodeW3C.html +33 -63
  399. data/rdoc/RubyXL/StringValue.html +12 -18
  400. data/rdoc/RubyXL/Stylesheet.html +65 -138
  401. data/rdoc/RubyXL/TableFile.html +12 -26
  402. data/rdoc/RubyXL/TableParts.html +12 -18
  403. data/rdoc/RubyXL/TableStyle.html +13 -20
  404. data/rdoc/RubyXL/TableStyles.html +13 -20
  405. data/rdoc/RubyXL/Text.html +35 -76
  406. data/rdoc/RubyXL/TextImportSettings.html +99 -0
  407. data/rdoc/RubyXL/Theme.html +72 -72
  408. data/rdoc/RubyXL/ThemeElements.html +13 -20
  409. data/rdoc/RubyXL/ThumbnailFile.html +12 -26
  410. data/rdoc/RubyXL/Top10.html +13 -20
  411. data/rdoc/RubyXL/VMLDrawingFile.html +15 -33
  412. data/rdoc/RubyXL/Variant.html +13 -20
  413. data/rdoc/RubyXL/Vector.html +24 -43
  414. data/rdoc/RubyXL/VectorValue.html +12 -18
  415. data/rdoc/RubyXL/VisualProperties.html +13 -20
  416. data/rdoc/RubyXL/WebPublishObject.html +13 -20
  417. data/rdoc/RubyXL/WebPublishObjects.html +13 -20
  418. data/rdoc/RubyXL/WebPublishingItem.html +13 -20
  419. data/rdoc/RubyXL/WebPublishingItems.html +13 -20
  420. data/rdoc/RubyXL/WebPublishingProperties.html +13 -20
  421. data/rdoc/RubyXL/WebQueryProperties.html +99 -0
  422. data/rdoc/RubyXL/Workbook.html +581 -266
  423. data/rdoc/RubyXL/WorkbookConvenienceMethods.html +226 -951
  424. data/rdoc/RubyXL/WorkbookProperties.html +13 -20
  425. data/rdoc/RubyXL/WorkbookProtection.html +13 -20
  426. data/rdoc/RubyXL/WorkbookRoot.html +58 -135
  427. data/rdoc/RubyXL/WorkbookView.html +13 -20
  428. data/rdoc/RubyXL/WorkbookViews.html +13 -20
  429. data/rdoc/RubyXL/Worksheet.html +122 -137
  430. data/rdoc/RubyXL/WorksheetConvenienceMethods.html +717 -1373
  431. data/rdoc/RubyXL/WorksheetDimensions.html +13 -20
  432. data/rdoc/RubyXL/WorksheetFormatProperties.html +12 -18
  433. data/rdoc/RubyXL/WorksheetProperties.html +13 -20
  434. data/rdoc/RubyXL/WorksheetProtection.html +13 -20
  435. data/rdoc/RubyXL/WorksheetView.html +13 -20
  436. data/rdoc/RubyXL/WorksheetViews.html +13 -20
  437. data/rdoc/RubyXL/XF.html +13 -20
  438. data/rdoc/RubyXL.html +46 -306
  439. data/rdoc/created.rid +45 -38
  440. data/rdoc/css/rdoc.css +109 -12
  441. data/rdoc/fonts/SourceCodePro-Bold.ttf +0 -0
  442. data/rdoc/fonts/SourceCodePro-Regular.ttf +0 -0
  443. data/rdoc/index.html +403 -726
  444. data/rdoc/js/darkfish.js +33 -97
  445. data/rdoc/js/navigation.js +12 -49
  446. data/rdoc/js/navigation.js.gz +0 -0
  447. data/rdoc/js/search.js +35 -34
  448. data/rdoc/js/search_index.js +1 -1
  449. data/rdoc/js/search_index.js.gz +0 -0
  450. data/rdoc/js/searcher.js +6 -6
  451. data/rdoc/js/searcher.js.gz +0 -0
  452. data/rdoc/table_of_contents.html +287 -45
  453. data/rubyXL.gemspec +77 -43
  454. data/spec/lib/cell_spec.rb +119 -6
  455. data/spec/lib/color_spec.rb +9 -1
  456. data/spec/lib/parser_spec.rb +28 -28
  457. data/spec/lib/reference_spec.rb +41 -5
  458. data/spec/lib/rgb_color_spec.rb +29 -0
  459. data/spec/lib/stylesheet_spec.rb +10 -11
  460. data/spec/lib/text_spec.rb +4 -6
  461. data/spec/lib/workbook_spec.rb +31 -8
  462. data/spec/lib/worksheet_spec.rb +886 -480
  463. data/spec/spec_helper.rb +2 -0
  464. data/test/test_parse_write.rb +15 -15
  465. metadata +76 -10
  466. data/rdoc/js/jquery.js +0 -4
@@ -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)
@@ -18,13 +17,13 @@ module RubyXL
18
17
  class Alignment < OOXMLObject
19
18
  define_attribute(:horizontal, RubyXL::ST_HorizontalAlignment)
20
19
  define_attribute(:vertical, RubyXL::ST_VerticalAlignment)
21
- define_attribute(:textRotation, :int)
20
+ define_attribute(:textRotation, :uint)
22
21
  define_attribute(:wrapText, :bool)
23
- define_attribute(:indent, :int)
22
+ define_attribute(:indent, :uint)
24
23
  define_attribute(:relativeIndent, :int)
25
24
  define_attribute(:justifyLastLine, :bool)
26
25
  define_attribute(:shrinkToFit, :bool)
27
- define_attribute(:readingOrder, :int)
26
+ define_attribute(:readingOrder, :uint)
28
27
  define_element_name 'alignment'
29
28
  end
30
29
 
@@ -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)
@@ -16,8 +15,8 @@ module RubyXL
16
15
 
17
16
  # http://www.datypic.com/sc/ooxml/e-ssml_sheetPr-4.html
18
17
  class ChartsheetProperties < OOXMLObject
19
- define_attribute(:published, :bool, :default => true)
20
- define_attribute(:codeName, :string)
18
+ define_attribute(:published, :bool, :default => true)
19
+ define_attribute(:codeName, :string)
21
20
  define_child_node(RubyXL::Color, :node_name => :tabColor)
22
21
  define_element_name 'sheetPr'
23
22
  end
@@ -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
@@ -1,19 +1,19 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
+ require 'rubyXL/objects/simple_types'
2
3
 
3
4
  module RubyXL
4
-
5
5
  # http://www.datypic.com/sc/ooxml/e-ssml_color-4.html
6
6
  class Color < OOXMLObject
7
- COLOR_REGEXP = /\A([a-f]|[A-F]|[0-9]){6}\Z/
7
+ COLOR_REGEXP = /\A(?:[a-f0-9]{6}|[a-f0-9]{8})\Z/i
8
8
 
9
9
  define_attribute(:auto, :bool)
10
10
  define_attribute(:indexed, :uint)
11
- define_attribute(:rgb, :string)
11
+ define_attribute(:rgb, RubyXL::ST_UnsignedIntHex)
12
12
  define_attribute(:theme, :uint)
13
13
  define_attribute(:tint, :double, :default => 0.0)
14
14
  define_element_name 'color'
15
15
 
16
- #validates hex color code, no '#' allowed
16
+ # validates hex color code, no '#' allowed
17
17
  def self.validate_color(color)
18
18
  if color =~ COLOR_REGEXP
19
19
  return true
@@ -21,7 +21,5 @@ module RubyXL
21
21
  raise 'invalid color'
22
22
  end
23
23
  end
24
-
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)
@@ -18,21 +17,25 @@ module RubyXL
18
17
 
19
18
  def delete_column(col_index)
20
19
  col = col_index + 1
21
- self.min -=1 if min >= col
22
- self.max -=1 if max >= col
20
+ self.min -= 1 if min >= col
21
+ self.max -= 1 if max >= col
23
22
  end
24
23
 
25
24
  def insert_column(col_index)
26
25
  col = col_index + 1
27
- self.min +=1 if min >= col
28
- self.max +=1 if max >= col - 1
26
+ self.min += 1 if min >= col
27
+ self.max += 1 if max >= col - 1
29
28
  end
30
29
 
31
30
  def include?(col_index)
32
- ((min-1)..(max-1)).include?(col_index)
31
+ ((min - 1)..(max - 1)).include?(col_index)
32
+ end
33
+
34
+ def self.chars2raw(width_in_chars)
35
+ ((width_in_chars + (5.0 / RubyXL::Font::MAX_DIGIT_WIDTH)) * 256).to_i / 256.0
33
36
  end
34
37
 
35
- DEFAULT_WIDTH = 9
38
+ DEFAULT_WIDTH = 8
36
39
  end
37
40
 
38
41
  class ColumnRanges < OOXMLContainerObject
@@ -48,7 +51,7 @@ module RubyXL
48
51
  old_range = self.locate_range(col_index)
49
52
 
50
53
  if old_range.nil? then
51
- new_range = RubyXL::ColumnRange.new
54
+ new_range = RubyXL::ColumnRange.new(width: RubyXL::ColumnRange.chars2raw(RubyXL::ColumnRange::DEFAULT_WIDTH))
52
55
  else
53
56
  if old_range.min == col_num && old_range.max == col_num then
54
57
  return old_range # Single column range, OK to change in place
@@ -59,9 +62,9 @@ module RubyXL
59
62
  new_range = old_range.dup
60
63
  old_range.max -= 1
61
64
  else
62
- range_before = old_range.dup
63
- range_before.max = col_index # col_num - 1
64
- self << range_before
65
+ prior_range = old_range.dup
66
+ prior_range.max = col_index # col_num - 1
67
+ self << prior_range
65
68
 
66
69
  old_range.min = col_num + 1
67
70
 
@@ -83,10 +86,8 @@ module RubyXL
83
86
  end
84
87
 
85
88
  def before_write_xml
86
- self.sort_by!{ |r| r.min }
87
- !(self.empty?)
89
+ self.sort_by!(&:min)
90
+ !self.empty?
88
91
  end
89
-
90
92
  end
91
-
92
93
  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
@@ -0,0 +1,175 @@
1
+ require 'rubyXL/objects/ooxml_object'
2
+ require 'rubyXL/objects/simple_types'
3
+ require 'rubyXL/objects/extensions'
4
+
5
+ # Connections
6
+ # https://msdn.microsoft.com/en-us/library/dd908547(v=office.12).aspx
7
+ # http://www.datypic.com/sc/ooxml/s-sml-externalConnections.xsd.html
8
+
9
+ module RubyXL
10
+ # http://www.datypic.com/sc/ooxml/e-ssml_dbPr-1.html
11
+ class OdbcOleDbProperties < OOXMLObject
12
+ define_attribute(:connection, RubyXL::ST_Xstring, :required => true)
13
+ define_attribute(:command, RubyXL::ST_Xstring)
14
+ define_attribute(:serverCommand, RubyXL::ST_Xstring)
15
+ define_attribute(:commandType, :uint, :default => 2)
16
+
17
+ define_element_name 'dbPr'
18
+ end
19
+
20
+ # http://www.datypic.com/sc/ooxml/e-ssml_olapPr-1.html
21
+ class OlapProperties < OOXMLObject
22
+ define_attribute(:local, :bool, :default => false)
23
+ define_attribute(:localConnection, RubyXL::ST_Xstring)
24
+ define_attribute(:localRefresh, :bool, :default => true)
25
+ define_attribute(:sendLocale, :bool, :default => false)
26
+ define_attribute(:rowDrillCount, :uint)
27
+ define_attribute(:serverFill, :bool, :default => true)
28
+ define_attribute(:serverNumberFormat, :bool, :default => true)
29
+ define_attribute(:serverFont, :bool, :default => true)
30
+ define_attribute(:serverFontColor, :bool, :default => true)
31
+
32
+ define_element_name 'olapPr'
33
+ end
34
+
35
+ # http://www.datypic.com/sc/ooxml/e-ssml_s-1.html
36
+ # TODO: ssml:m & ssml:x... but how?
37
+ class ConnectionTable < OOXMLObject
38
+ define_attribute(:v, RubyXL::ST_Xstring, :required => true)
39
+
40
+ define_element_name 's'
41
+ end
42
+
43
+ # http://www.datypic.com/sc/ooxml/e-ssml_tables-1.html
44
+ class ConnectionTables < OOXMLObject
45
+ define_child_node(RubyXL::ConnectionTable, :collection => :with_count, :accessor => :tables, :node_name => :table)
46
+ define_element_name 'tables'
47
+ end
48
+
49
+ # http://www.datypic.com/sc/ooxml/e-ssml_webPr-1.html
50
+ class WebQueryProperties < OOXMLObject
51
+ define_attribute(:xml, :bool, :default => false)
52
+ define_attribute(:sourceData, :bool, :default => false)
53
+ define_attribute(:parsePre, :bool, :default => false)
54
+ define_attribute(:consecutive, :bool, :default => false)
55
+ define_attribute(:firstRow, :bool, :default => false)
56
+ define_attribute(:xl97, :bool, :default => false)
57
+ define_attribute(:textDates, :bool, :default => false)
58
+ define_attribute(:xl2000, :bool, :default => false)
59
+ define_attribute(:url, RubyXL::ST_Xstring)
60
+ define_attribute(:post, RubyXL::ST_Xstring)
61
+ define_attribute(:htmlTables, :bool, :default => false)
62
+ define_attribute(:htmlFormat, ssml:ST_HtmlFmt, :default => 'none')
63
+ define_attribute(:editPage, RubyXL::ST_Xstring)
64
+
65
+ define_child_node(RubyXL::ConnectionTables)
66
+
67
+ define_element_name 'webPr'
68
+ end
69
+
70
+ # http://www.datypic.com/sc/ooxml/e-ssml_textField-1.html
71
+ class ConnectionTextField < OOXMLObject
72
+ define_attribute(:type, RubyXL::ST_ExternalConnectionType, :default => 'general')
73
+ define_attribute(:position, :uint, :default => 0)
74
+ end
75
+
76
+ # http://www.datypic.com/sc/ooxml/e-ssml_textFields-1.html
77
+ class ConnectionTextFields < OOXMLObject
78
+ define_child_node(RubyXL::ConnectionTextField, :collection => :with_count, :accessor => :text_fields, :node_name => :textField)
79
+
80
+ define_element_name 'textFields'
81
+ end
82
+
83
+ # http://www.datypic.com/sc/ooxml/e-ssml_textPr-1.html
84
+ class TextImportSettings < OOXMLObject
85
+ define_attribute(:prompt, :bool, :default => true)
86
+ define_attribute(:fileType, RubyXL::ST_FileType, :default => 'win')
87
+ define_attribute(:codePage, :uint, :default => 1252)
88
+ define_attribute(:firstRow, :uint, :default => 1)
89
+ define_attribute(:sourceFile, RubyXL::ST_Xstring, :default => '')
90
+ define_attribute(:delimited, :bool, :default => true)
91
+ define_attribute(:decimal, RubyXL::ST_Xstring, :default => '.')
92
+ define_attribute(:thousands, RubyXL::ST_Xstring, :default => ',')
93
+ define_attribute(:tab, :bool, :default => true)
94
+ define_attribute(:space, :bool, :default => false)
95
+ define_attribute(:comma, :bool, :default => false)
96
+ define_attribute(:semicolon, :bool, :default => false)
97
+ define_attribute(:consecutive, :bool, :default => false)
98
+ define_attribute(:qualifier, ssml:ST_Qualifier, :default => 'doubleQuote')
99
+ define_attribute(:delimiter, RubyXL::ST_Xstring)
100
+
101
+ define_child_node(RubyXL::ConnectionTextFields)
102
+
103
+ define_element_name 'textPr'
104
+ end
105
+
106
+ # http://www.datypic.com/sc/ooxml/e-ssml_parameter-1.html
107
+ class QueryParameter < OOXMLObject
108
+ define_attribute(:name, RubyXL::ST_Xstring)
109
+ define_attribute(:sqlType, :int, :default => 0)
110
+ define_attribute(:parameterType, RubyXL::ST_ParameterType, :default => 'prompt')
111
+ define_attribute(:refreshOnChange, :bool, :default => false)
112
+ define_attribute(:prompt, RubyXL::ST_Xstring)
113
+ define_attribute(:boolean, :bool)
114
+ define_attribute(:double, :double)
115
+ define_attribute(:integer, :int)
116
+ define_attribute(:string, RubyXL::ST_Xstring)
117
+ define_attribute(:cell, RubyXL::ST_Xstring)
118
+ define_element_name 'parameter'
119
+ end
120
+
121
+ # http://www.datypic.com/sc/ooxml/e-ssml_parameters-1.html
122
+ class QueryParameters < OOXMLObject
123
+ define_child_node(RubyXL::QueryParameter, :collection => :with_count, :accessor => :parameters, :node_name => :parameter)
124
+ define_element_name 'parameters'
125
+ end
126
+
127
+ # http://www.datypic.com/sc/ooxml/e-ssml_connection-1.html
128
+ class Connection < OOXMLObject
129
+ define_attribute(:id, :uint, :required => true)
130
+ define_attribute(:sourceFile, RubyXL::ST_Xstring)
131
+ define_attribute(:odcFile, RubyXL::ST_Xstring)
132
+ define_attribute(:keepAlive, :bool, :default => false)
133
+ define_attribute(:interval, :uint, :default => 0)
134
+ define_attribute(:name, RubyXL::ST_Xstring)
135
+ define_attribute(:description, RubyXL::ST_Xstring)
136
+ define_attribute(:type, :uint)
137
+ define_attribute(:reconnectionMethod, :uint, :default => 1)
138
+ define_attribute(:refreshedVersion, :uint, :required => true)
139
+ define_attribute(:minRefreshableVersion, :uint, :default => 0)
140
+ define_attribute(:savePassword, :bool, :default => false)
141
+ define_attribute(:new, :bool, :default => false)
142
+ define_attribute(:deleted, :bool, :default => false)
143
+ define_attribute(:onlyUseConnectionFile, :bool, :default => false)
144
+ define_attribute(:background, :bool, :default => false)
145
+ define_attribute(:refreshOnLoad, :bool, :default => false)
146
+ define_attribute(:saveData, :bool, :default => false)
147
+ define_attribute(:credentials, RubyXL::ST_CredMethod, :default => 'integrated')
148
+ define_attribute(:singleSignOnId, RubyXL::ST_Xstring)
149
+
150
+ define_child_node(RubyXL::OdbcOleDbProperties)
151
+ define_child_node(RubyXL::OlapProperties)
152
+ define_child_node(RubyXL::WebQueryProperties)
153
+ define_child_node(RubyXL::TextImportSettings)
154
+ define_child_node(RubyXL::QueryParameters)
155
+ define_child_node(RubyXL::ExtensionStorageArea)
156
+
157
+ define_element_name 'connection'
158
+ end
159
+
160
+ # http://www.datypic.com/sc/ooxml/e-ssml_connections.html
161
+ class Connections < OOXMLTopLevelObject
162
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml'.freeze
163
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections'.freeze
164
+
165
+ define_child_node(RubyXL::Connection, :collection => true, :accessor => :connections)
166
+
167
+ define_element_name 'connections'
168
+
169
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil)
170
+
171
+ def xlsx_path
172
+ ROOT.join('xl', 'connections.xml')
173
+ end
174
+ end
175
+ 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
  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)
@@ -70,6 +69,7 @@ module RubyXL
70
69
  when RubyXL::Chartsheet then chartsheets += 1
71
70
  end
72
71
  }
72
+
73
73
  add_parts_count('Worksheets', worksheets) if worksheets > 0
74
74
  add_parts_count('Charts', chartsheets) if chartsheets > 0
75
75
 
@@ -84,13 +84,12 @@ module RubyXL
84
84
  def xlsx_path
85
85
  ROOT.join('docProps', 'app.xml')
86
86
  end
87
-
88
87
  end
89
88
 
90
89
 
91
90
  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'
91
+ CONTENT_TYPE = 'application/vnd.openxmlformats-package.core-properties+xml'.freeze
92
+ REL_TYPE = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties'.freeze
94
93
 
95
94
  attr_accessor :workbook
96
95
 
@@ -112,10 +111,10 @@ module RubyXL
112
111
  define_child_node(RubyXL::StringNode, :node_name => 'cp:version')
113
112
 
114
113
  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')
114
+ 'http://purl.org/dc/elements/1.1/' => 'dc',
115
+ 'http://purl.org/dc/terms/' => 'dcterms',
116
+ 'http://purl.org/dc/dcmitype/' => 'dcmitype',
117
+ 'http://www.w3.org/2001/XMLSchema-instance' => 'xsi')
119
118
  define_element_name 'cp:coreProperties'
120
119
 
121
120
  def xlsx_path
@@ -127,7 +126,7 @@ module RubyXL
127
126
  end
128
127
 
129
128
  def creator=(v)
130
- self.dc_creator = v && RubyXL::StringNodeW3C.new(:value => v)
129
+ self.dc_creator = v && RubyXL::StringNode.new(:value => v)
131
130
  end
132
131
 
133
132
  def modifier
@@ -135,7 +134,7 @@ module RubyXL
135
134
  end
136
135
 
137
136
  def modifier=(v)
138
- self.cp_last_modified_by = v && RubyXL::StringNodeW3C.new(:value => v)
137
+ self.cp_last_modified_by = v && RubyXL::StringNode.new(:value => v)
139
138
  end
140
139
 
141
140
  def created_at
@@ -153,7 +152,5 @@ module RubyXL
153
152
  def modified_at=(v)
154
153
  self.dcterms_modified = RubyXL::StringNodeW3C.default(v)
155
154
  end
156
-
157
155
  end
158
-
159
156
  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