rubyXL 3.2.0 → 3.2.1

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 (379) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +2 -1
  3. data/VERSION +1 -1
  4. data/lib/rubyXL.rb +6 -1
  5. data/lib/rubyXL/objects/border.rb +13 -31
  6. data/lib/rubyXL/objects/calculation_chain.rb +31 -31
  7. data/lib/rubyXL/objects/cell_style.rb +65 -79
  8. data/lib/rubyXL/objects/chartsheet.rb +85 -85
  9. data/lib/rubyXL/objects/column_range.rb +40 -40
  10. data/lib/rubyXL/objects/comments.rb +21 -21
  11. data/lib/rubyXL/objects/content_types.rb +69 -78
  12. data/lib/rubyXL/objects/data_validation.rb +37 -37
  13. data/lib/rubyXL/objects/document_properties.rb +157 -157
  14. data/lib/rubyXL/objects/extensions.rb +17 -17
  15. data/lib/rubyXL/objects/fill.rb +48 -48
  16. data/lib/rubyXL/objects/filters.rb +119 -119
  17. data/lib/rubyXL/objects/font.rb +0 -10
  18. data/lib/rubyXL/objects/formula.rb +24 -24
  19. data/lib/rubyXL/objects/ooxml_object.rb +443 -456
  20. data/lib/rubyXL/objects/reference.rb +110 -110
  21. data/lib/rubyXL/objects/relationships.rb +3 -10
  22. data/lib/rubyXL/objects/root.rb +81 -81
  23. data/lib/rubyXL/objects/shared_strings.rb +60 -60
  24. data/lib/rubyXL/objects/sheet_common.rb +51 -51
  25. data/lib/rubyXL/objects/sheet_data.rb +173 -173
  26. data/lib/rubyXL/objects/simple_types.rb +229 -229
  27. data/lib/rubyXL/objects/storage.rb +141 -158
  28. data/lib/rubyXL/objects/stylesheet.rb +57 -57
  29. data/lib/rubyXL/objects/text.rb +87 -87
  30. data/lib/rubyXL/objects/theme.rb +21 -21
  31. data/lib/rubyXL/objects/workbook.rb +3 -3
  32. data/lib/rubyXL/objects/worksheet.rb +724 -723
  33. data/lib/rubyXL/parser.rb +0 -1
  34. data/lib/rubyXL/workbook.rb +1 -2
  35. data/rdoc/README_rdoc.html +6 -3
  36. data/rdoc/RubyXL.html +53 -1
  37. data/rdoc/RubyXL/AExtension.html +1 -1
  38. data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
  39. data/rdoc/RubyXL/AdjustHandleList.html +1 -1
  40. data/rdoc/RubyXL/Alignment.html +1 -1
  41. data/rdoc/RubyXL/AlternateContent.html +1 -1
  42. data/rdoc/RubyXL/Authors.html +1 -1
  43. data/rdoc/RubyXL/AutoFilter.html +1 -1
  44. data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
  45. data/rdoc/RubyXL/BinaryImageFile.html +1 -1
  46. data/rdoc/RubyXL/BodyProperties.html +1 -1
  47. data/rdoc/RubyXL/BooleanNode.html +1 -1
  48. data/rdoc/RubyXL/BooleanValue.html +1 -1
  49. data/rdoc/RubyXL/Border.html +1 -1
  50. data/rdoc/RubyXL/BorderEdge.html +1 -52
  51. data/rdoc/RubyXL/Borders.html +1 -1
  52. data/rdoc/RubyXL/Break.html +1 -1
  53. data/rdoc/RubyXL/BreakList.html +1 -1
  54. data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
  55. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
  56. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
  57. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
  58. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
  59. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
  60. data/rdoc/RubyXL/CT_Backdrop.html +1 -1
  61. data/rdoc/RubyXL/CT_Bevel.html +1 -1
  62. data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
  63. data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
  64. data/rdoc/RubyXL/CT_Blip.html +1 -1
  65. data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
  66. data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
  67. data/rdoc/RubyXL/CT_Camera.html +1 -1
  68. data/rdoc/RubyXL/CT_Color.html +1 -1
  69. data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
  70. data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
  71. data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
  72. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
  73. data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
  74. data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
  75. data/rdoc/RubyXL/CT_DashStop.html +1 -1
  76. data/rdoc/RubyXL/CT_DashStopList.html +1 -1
  77. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
  78. data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
  79. data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
  80. data/rdoc/RubyXL/CT_EffectList.html +1 -1
  81. data/rdoc/RubyXL/CT_EffectReference.html +1 -1
  82. data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
  83. data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
  84. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
  85. data/rdoc/RubyXL/CT_FillEffect.html +1 -1
  86. data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
  87. data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
  88. data/rdoc/RubyXL/CT_FlatText.html +1 -1
  89. data/rdoc/RubyXL/CT_FontCollection.html +1 -1
  90. data/rdoc/RubyXL/CT_FontReference.html +1 -1
  91. data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
  92. data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
  93. data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
  94. data/rdoc/RubyXL/CT_GradientStop.html +1 -1
  95. data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
  96. data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
  97. data/rdoc/RubyXL/CT_HslColor.html +1 -1
  98. data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
  99. data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
  100. data/rdoc/RubyXL/CT_LightRig.html +1 -1
  101. data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
  102. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
  103. data/rdoc/RubyXL/CT_LineProperties.html +1 -1
  104. data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
  105. data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
  106. data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
  107. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
  108. data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
  109. data/rdoc/RubyXL/CT_Path2D.html +1 -1
  110. data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
  111. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
  112. data/rdoc/RubyXL/CT_Path2DList.html +1 -1
  113. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
  114. data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
  115. data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
  116. data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
  117. data/rdoc/RubyXL/CT_Point3D.html +1 -1
  118. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
  119. data/rdoc/RubyXL/CT_PresetColor.html +1 -1
  120. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
  121. data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
  122. data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
  123. data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
  124. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
  125. data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
  126. data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
  127. data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
  128. data/rdoc/RubyXL/CT_Scene3D.html +1 -1
  129. data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
  130. data/rdoc/RubyXL/CT_Shape3D.html +1 -1
  131. data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
  132. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
  133. data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
  134. data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
  135. data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
  136. data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
  137. data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
  138. data/rdoc/RubyXL/CT_SystemColor.html +1 -1
  139. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
  140. data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
  141. data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
  142. data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
  143. data/rdoc/RubyXL/CT_TextFont.html +1 -1
  144. data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
  145. data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
  146. data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
  147. data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
  148. data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
  149. data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
  150. data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
  151. data/rdoc/RubyXL/CT_TintEffect.html +1 -1
  152. data/rdoc/RubyXL/CT_Transform2D.html +1 -1
  153. data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
  154. data/rdoc/RubyXL/CT_Vector3D.html +1 -1
  155. data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
  156. data/rdoc/RubyXL/CalculationChain.html +3 -3
  157. data/rdoc/RubyXL/CalculationChainCell.html +1 -1
  158. data/rdoc/RubyXL/CalculationProperties.html +1 -1
  159. data/rdoc/RubyXL/Cell.html +36 -36
  160. data/rdoc/RubyXL/CellSmartTag.html +1 -1
  161. data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
  162. data/rdoc/RubyXL/CellSmartTags.html +1 -1
  163. data/rdoc/RubyXL/CellStyle.html +1 -1
  164. data/rdoc/RubyXL/CellStyleXFs.html +1 -1
  165. data/rdoc/RubyXL/CellStyles.html +1 -1
  166. data/rdoc/RubyXL/CellValue.html +4 -4
  167. data/rdoc/RubyXL/CellWatch.html +1 -1
  168. data/rdoc/RubyXL/CellWatches.html +1 -1
  169. data/rdoc/RubyXL/CellXFs.html +1 -1
  170. data/rdoc/RubyXL/ChartColorsFile.html +1 -1
  171. data/rdoc/RubyXL/ChartFile.html +1 -1
  172. data/rdoc/RubyXL/ChartStyleFile.html +1 -1
  173. data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
  174. data/rdoc/RubyXL/Chartsheet.html +1 -1
  175. data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
  176. data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
  177. data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
  178. data/rdoc/RubyXL/ChartsheetView.html +1 -1
  179. data/rdoc/RubyXL/ChartsheetViews.html +1 -1
  180. data/rdoc/RubyXL/Color.html +1 -1
  181. data/rdoc/RubyXL/ColorFilter.html +1 -1
  182. data/rdoc/RubyXL/ColorScale.html +1 -1
  183. data/rdoc/RubyXL/ColorSet.html +1 -1
  184. data/rdoc/RubyXL/Colors.html +1 -1
  185. data/rdoc/RubyXL/ColumnRange.html +1 -1
  186. data/rdoc/RubyXL/ColumnRanges.html +22 -22
  187. data/rdoc/RubyXL/Comment.html +1 -1
  188. data/rdoc/RubyXL/CommentList.html +1 -1
  189. data/rdoc/RubyXL/CommentsFile.html +1 -1
  190. data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
  191. data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
  192. data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
  193. data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
  194. data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
  195. data/rdoc/RubyXL/ContentTypes.html +47 -91
  196. data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
  197. data/rdoc/RubyXL/CorePropertiesFile.html +1 -1
  198. data/rdoc/RubyXL/CustomColor.html +1 -1
  199. data/rdoc/RubyXL/CustomColorList.html +1 -1
  200. data/rdoc/RubyXL/CustomFilter.html +1 -1
  201. data/rdoc/RubyXL/CustomFilters.html +1 -1
  202. data/rdoc/RubyXL/CustomGeometry.html +1 -1
  203. data/rdoc/RubyXL/CustomProperties.html +1 -1
  204. data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
  205. data/rdoc/RubyXL/CustomProperty.html +1 -1
  206. data/rdoc/RubyXL/CustomSheetView.html +1 -1
  207. data/rdoc/RubyXL/CustomSheetViews.html +1 -1
  208. data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
  209. data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
  210. data/rdoc/RubyXL/CustomXMLFile.html +1 -1
  211. data/rdoc/RubyXL/DXF.html +1 -1
  212. data/rdoc/RubyXL/DXFs.html +1 -1
  213. data/rdoc/RubyXL/DataBar.html +1 -1
  214. data/rdoc/RubyXL/DataConsolidate.html +1 -1
  215. data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
  216. data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
  217. data/rdoc/RubyXL/DataType.html +1 -1
  218. data/rdoc/RubyXL/DataValidation.html +1 -1
  219. data/rdoc/RubyXL/DataValidations.html +2 -2
  220. data/rdoc/RubyXL/DateGroupItem.html +1 -1
  221. data/rdoc/RubyXL/DefinedName.html +1 -1
  222. data/rdoc/RubyXL/DefinedNames.html +1 -1
  223. data/rdoc/RubyXL/DocumentPropertiesFile.html +28 -28
  224. data/rdoc/RubyXL/DrawingFile.html +1 -86
  225. data/rdoc/RubyXL/DynamicFilter.html +1 -1
  226. data/rdoc/RubyXL/EmbeddedControl.html +1 -1
  227. data/rdoc/RubyXL/EmbeddedControls.html +1 -1
  228. data/rdoc/RubyXL/Extension.html +1 -1
  229. data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
  230. data/rdoc/RubyXL/Extents.html +1 -1
  231. data/rdoc/RubyXL/ExternalLinksFile.html +1 -1
  232. data/rdoc/RubyXL/ExternalReference.html +1 -1
  233. data/rdoc/RubyXL/ExternalReferences.html +1 -1
  234. data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
  235. data/rdoc/RubyXL/FieldItem.html +1 -1
  236. data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
  237. data/rdoc/RubyXL/FileSharing.html +1 -1
  238. data/rdoc/RubyXL/FileVersion.html +1 -1
  239. data/rdoc/RubyXL/Fill.html +1 -1
  240. data/rdoc/RubyXL/Fills.html +1 -1
  241. data/rdoc/RubyXL/FilterContainer.html +1 -1
  242. data/rdoc/RubyXL/FloatNode.html +1 -1
  243. data/rdoc/RubyXL/FloatValue.html +1 -1
  244. data/rdoc/RubyXL/Font.html +15 -56
  245. data/rdoc/RubyXL/FontScheme.html +1 -1
  246. data/rdoc/RubyXL/Fonts.html +1 -1
  247. data/rdoc/RubyXL/Formula.html +1 -1
  248. data/rdoc/RubyXL/FunctionGroup.html +1 -1
  249. data/rdoc/RubyXL/FunctionGroups.html +1 -1
  250. data/rdoc/RubyXL/GenericStorageObject.html +14 -31
  251. data/rdoc/RubyXL/GradientFill.html +1 -1
  252. data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
  253. data/rdoc/RubyXL/Hyperlink.html +1 -1
  254. data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
  255. data/rdoc/RubyXL/Hyperlinks.html +1 -1
  256. data/rdoc/RubyXL/IconFilter.html +1 -1
  257. data/rdoc/RubyXL/IconSet.html +1 -1
  258. data/rdoc/RubyXL/IgnoredError.html +1 -1
  259. data/rdoc/RubyXL/IgnoredErrors.html +1 -1
  260. data/rdoc/RubyXL/IndexedColors.html +1 -1
  261. data/rdoc/RubyXL/InputCells.html +1 -1
  262. data/rdoc/RubyXL/IntegerNode.html +1 -1
  263. data/rdoc/RubyXL/IntegerValue.html +1 -1
  264. data/rdoc/RubyXL/LegacyCell.html +1 -1
  265. data/rdoc/RubyXL/LegacyWorkbook.html +22 -22
  266. data/rdoc/RubyXL/LegacyWorksheet.html +1 -1
  267. data/rdoc/RubyXL/MRUColors.html +1 -1
  268. data/rdoc/RubyXL/MacrosFile.html +1 -1
  269. data/rdoc/RubyXL/MergedCell.html +1 -1
  270. data/rdoc/RubyXL/MergedCells.html +1 -1
  271. data/rdoc/RubyXL/NumFmt.html +1 -1
  272. data/rdoc/RubyXL/NumberFormat.html +2 -2
  273. data/rdoc/RubyXL/NumberFormats.html +1 -1
  274. data/rdoc/RubyXL/OLEObject.html +1 -1
  275. data/rdoc/RubyXL/OLEObjects.html +1 -1
  276. data/rdoc/RubyXL/OLESize.html +1 -1
  277. data/rdoc/RubyXL/OOXMLContainerObject.html +1 -1
  278. data/rdoc/RubyXL/OOXMLObject.html +1 -1
  279. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +99 -99
  280. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +1 -1
  281. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +12 -19
  282. data/rdoc/RubyXL/OOXMLTopLevelObject.html +1 -1
  283. data/rdoc/RubyXL/Offset.html +1 -1
  284. data/rdoc/RubyXL/OutlineProperties.html +1 -1
  285. data/rdoc/RubyXL/PageMargins.html +1 -1
  286. data/rdoc/RubyXL/PageSetup.html +1 -1
  287. data/rdoc/RubyXL/PageSetupProperties.html +1 -1
  288. data/rdoc/RubyXL/Pane.html +1 -1
  289. data/rdoc/RubyXL/Parser.html +4 -4
  290. data/rdoc/RubyXL/PatternFill.html +1 -1
  291. data/rdoc/RubyXL/PhoneticProperties.html +1 -1
  292. data/rdoc/RubyXL/PhoneticRun.html +1 -1
  293. data/rdoc/RubyXL/PivotArea.html +1 -1
  294. data/rdoc/RubyXL/PivotCache.html +1 -1
  295. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
  296. data/rdoc/RubyXL/PivotCaches.html +1 -1
  297. data/rdoc/RubyXL/PivotReference.html +1 -1
  298. data/rdoc/RubyXL/PivotReferences.html +1 -1
  299. data/rdoc/RubyXL/PivotTableFile.html +1 -1
  300. data/rdoc/RubyXL/PivotTableSelection.html +1 -1
  301. data/rdoc/RubyXL/PresetGeometry.html +1 -1
  302. data/rdoc/RubyXL/PrintOptions.html +1 -1
  303. data/rdoc/RubyXL/PrinterSettingsFile.html +1 -20
  304. data/rdoc/RubyXL/ProtectedRange.html +1 -1
  305. data/rdoc/RubyXL/ProtectedRanges.html +1 -1
  306. data/rdoc/RubyXL/Protection.html +1 -1
  307. data/rdoc/RubyXL/RID.html +1 -1
  308. data/rdoc/RubyXL/RawOOXML.html +1 -1
  309. data/rdoc/RubyXL/Reference.html +60 -60
  310. data/rdoc/RubyXL/Relationship.html +1 -1
  311. data/rdoc/RubyXL/RelationshipSupport.html +1 -1
  312. data/rdoc/RubyXL/RelationshipSupport/ClassMehods.html +1 -1
  313. data/rdoc/RubyXL/RichText.html +1 -1
  314. data/rdoc/RubyXL/RichTextRun.html +1 -1
  315. data/rdoc/RubyXL/Row.html +1 -1
  316. data/rdoc/RubyXL/RunProperties.html +1 -1
  317. data/rdoc/RubyXL/Scenario.html +2 -2
  318. data/rdoc/RubyXL/Scenarios.html +1 -1
  319. data/rdoc/RubyXL/Selection.html +1 -1
  320. data/rdoc/RubyXL/ShapeGuide.html +1 -1
  321. data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
  322. data/rdoc/RubyXL/SharedStringsTable.html +25 -25
  323. data/rdoc/RubyXL/Sheet.html +1 -1
  324. data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
  325. data/rdoc/RubyXL/SheetData.html +1 -1
  326. data/rdoc/RubyXL/Sheets.html +1 -1
  327. data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
  328. data/rdoc/RubyXL/SlicerFile.html +1 -1
  329. data/rdoc/RubyXL/SmartTagProperties.html +1 -1
  330. data/rdoc/RubyXL/SmartTagType.html +1 -1
  331. data/rdoc/RubyXL/SmartTagTypes.html +1 -1
  332. data/rdoc/RubyXL/SmartTags.html +1 -1
  333. data/rdoc/RubyXL/SortCondition.html +1 -1
  334. data/rdoc/RubyXL/SortState.html +1 -1
  335. data/rdoc/RubyXL/Sqref.html +5 -5
  336. data/rdoc/RubyXL/Stop.html +1 -1
  337. data/rdoc/RubyXL/StringNode.html +1 -1
  338. data/rdoc/RubyXL/StringNodeW3C.html +1 -1
  339. data/rdoc/RubyXL/StringValue.html +1 -1
  340. data/rdoc/RubyXL/Stylesheet.html +1 -1
  341. data/rdoc/RubyXL/TableFile.html +1 -1
  342. data/rdoc/RubyXL/TableParts.html +1 -1
  343. data/rdoc/RubyXL/TableStyle.html +1 -1
  344. data/rdoc/RubyXL/TableStyles.html +1 -1
  345. data/rdoc/RubyXL/Text.html +6 -6
  346. data/rdoc/RubyXL/Theme.html +1 -1
  347. data/rdoc/RubyXL/ThemeElements.html +1 -1
  348. data/rdoc/RubyXL/ThumbnailFile.html +1 -1
  349. data/rdoc/RubyXL/Top10.html +1 -1
  350. data/rdoc/RubyXL/VMLDrawingFile.html +1 -1
  351. data/rdoc/RubyXL/Variant.html +1 -1
  352. data/rdoc/RubyXL/Vector.html +1 -1
  353. data/rdoc/RubyXL/VectorValue.html +1 -1
  354. data/rdoc/RubyXL/VisualProperties.html +1 -1
  355. data/rdoc/RubyXL/WebPublishObject.html +1 -1
  356. data/rdoc/RubyXL/WebPublishObjects.html +1 -1
  357. data/rdoc/RubyXL/WebPublishingItem.html +1 -1
  358. data/rdoc/RubyXL/WebPublishingItems.html +1 -1
  359. data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
  360. data/rdoc/RubyXL/Workbook.html +1 -1
  361. data/rdoc/RubyXL/WorkbookProperties.html +1 -1
  362. data/rdoc/RubyXL/WorkbookProtection.html +1 -1
  363. data/rdoc/RubyXL/WorkbookRoot.html +46 -46
  364. data/rdoc/RubyXL/WorkbookView.html +1 -1
  365. data/rdoc/RubyXL/WorkbookViews.html +1 -1
  366. data/rdoc/RubyXL/Worksheet.html +1 -1
  367. data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
  368. data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
  369. data/rdoc/RubyXL/WorksheetProperties.html +1 -1
  370. data/rdoc/RubyXL/WorksheetProtection.html +1 -1
  371. data/rdoc/RubyXL/WorksheetView.html +1 -1
  372. data/rdoc/RubyXL/WorksheetViews.html +1 -1
  373. data/rdoc/RubyXL/XF.html +1 -1
  374. data/rdoc/created.rid +37 -37
  375. data/rdoc/index.html +2 -8
  376. data/rdoc/js/search_index.js +1 -1
  377. data/rdoc/table_of_contents.html +77 -101
  378. data/rubyXL.gemspec +4 -4
  379. metadata +3 -3
@@ -1377,27 +1377,27 @@ module RubyXL
1377
1377
  define_element_name 'a:custClrLst'
1378
1378
  end
1379
1379
 
1380
- # http://www.schemacentral.com/sc/ooxml/e-a_theme.html
1381
- class Theme < OOXMLTopLevelObject
1382
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'
1383
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'
1384
-
1385
- define_attribute(:name, :string, :default => '')
1386
- define_child_node(RubyXL::ThemeElements)
1387
- define_child_node(RubyXL::CT_ObjectStyleDefaults)
1388
- define_child_node(RubyXL::ExtraColorSchemeList)
1389
- define_child_node(RubyXL::CustomColorList)
1390
- define_child_node(RubyXL::AExtensionStorageArea)
1391
-
1392
- define_element_name 'a:theme'
1393
-
1394
- set_namespaces('http://schemas.openxmlformats.org/drawingml/2006/main' => 'a')
1395
-
1396
- def xlsx_path
1397
- ROOT.join('xl', 'theme', 'theme1.xml')
1398
- end
1399
-
1400
- def self.defaults
1380
+ # http://www.schemacentral.com/sc/ooxml/e-a_theme.html
1381
+ class Theme < OOXMLTopLevelObject
1382
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.theme+xml'
1383
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme'
1384
+
1385
+ define_attribute(:name, :string, :default => '')
1386
+ define_child_node(RubyXL::ThemeElements)
1387
+ define_child_node(RubyXL::CT_ObjectStyleDefaults)
1388
+ define_child_node(RubyXL::ExtraColorSchemeList)
1389
+ define_child_node(RubyXL::CustomColorList)
1390
+ define_child_node(RubyXL::AExtensionStorageArea)
1391
+
1392
+ define_element_name 'a:theme'
1393
+
1394
+ set_namespaces('http://schemas.openxmlformats.org/drawingml/2006/main' => 'a')
1395
+
1396
+ def xlsx_path
1397
+ ROOT.join('xl', 'theme', 'theme1.xml')
1398
+ end
1399
+
1400
+ def self.defaults
1401
1401
  default_theme = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1402
1402
  <a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">
1403
1403
  <a:themeElements>
@@ -292,7 +292,7 @@ module RubyXL
292
292
  define_child_node(RubyXL::CustomWorkbookView, :collection => true)
293
293
  define_element_name 'customWorkbookViews'
294
294
  end
295
-
295
+
296
296
  # http://www.schemacentral.com/sc/ooxml/e-ssml_workbook.html
297
297
  class Workbook < OOXMLTopLevelObject
298
298
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
@@ -433,5 +433,5 @@ module RubyXL
433
433
  include LegacyWorkbook
434
434
 
435
435
  end
436
-
437
- end
436
+
437
+ end
@@ -16,726 +16,727 @@ module RubyXL
16
16
 
17
17
  # Eventually, the entire code for Worksheet will be moved here. One small step at a time!
18
18
 
19
- # http://www.schemacentral.com/sc/ooxml/e-ssml_outlinePr-1.html
20
- class OutlineProperties < OOXMLObject
21
- define_attribute(:applyStyles, :bool, :default => false)
22
- define_attribute(:summaryBelow, :bool, :default => true)
23
- define_attribute(:summaryRight, :bool, :default => true)
24
- define_attribute(:showOutlineSymbols, :bool, :default => true)
25
- define_element_name 'outlinePr'
26
- end
27
-
28
- # http://www.schemacentral.com/sc/ooxml/e-ssml_pageSetUpPr-1.html
29
- class PageSetupProperties < OOXMLObject
30
- define_attribute(:autoPageBreaks, :bool, :default => true)
31
- define_attribute(:fitToPage, :bool, :default => false)
32
- define_element_name 'pageSetUpPr'
33
- end
34
-
35
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetPr-3.html
36
- class WorksheetProperties < OOXMLObject
37
- define_attribute(:syncHorizontal, :bool, :default => false)
38
- define_attribute(:syncVertical, :bool, :default => false)
39
- define_attribute(:syncRef, :ref)
40
- define_attribute(:transitionEvaluation, :bool, :default => false)
41
- define_attribute(:transitionEntry, :bool, :default => false)
42
- define_attribute(:published, :bool, :default => true)
43
- define_attribute(:codeName, :string)
44
- define_attribute(:filterMode, :bool, :default => false)
45
- define_attribute(:enableFormatConditionsCalculation, :bool, :default => true)
46
- define_child_node(RubyXL::Color, :node_name => :tabColor)
47
- define_child_node(RubyXL::OutlineProperties)
48
- define_child_node(RubyXL::PageSetupProperties)
49
- define_element_name 'sheetPr'
50
- end
51
-
52
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dimension-3.html
53
- class WorksheetDimensions < OOXMLObject
54
- define_attribute(:ref, :ref)
55
- define_element_name 'dimension'
56
- end
57
-
58
- class WorksheetFormatProperties < OOXMLObject
59
- define_attribute(:baseColWidth, :int, :default => 8)
60
- define_attribute(:defaultColWidth, :double)
61
- define_attribute(:defaultRowHeight, :double, :required => true)
62
- define_attribute(:customHeight, :bool, :default => false)
63
- define_attribute(:zeroHeight, :bool, :default => false)
64
- define_attribute(:thickTop, :bool, :default => false)
65
- define_attribute(:thickBottom, :bool, :default => false)
66
- define_attribute(:outlineLevelRow, :int, :default => 0)
67
- define_attribute(:outlineLevelCol, :int, :default => 0)
68
- define_element_name 'sheetFormatPr'
69
- end
70
-
71
- # http://www.schemacentral.com/sc/ooxml/e-ssml_pageSetup-1.html
72
- class PageSetup < OOXMLObject
73
- define_attribute(:paperSize, :int, :default => 1)
74
- define_attribute(:scale, :int, :default => 100)
75
- define_attribute(:firstPageNumber, :int, :default => 1)
76
- define_attribute(:fitToWidth, :int, :default => 1)
77
- define_attribute(:fitToHeight, :int, :default => 1)
78
- define_attribute(:pageOrder, RubyXL::ST_PageOrder, :default => 'downThenOver')
79
- define_attribute(:orientation, RubyXL::ST_Orientation, :default => 'default')
80
- define_attribute(:usePrinterDefaults, :bool, :default => true)
81
- define_attribute(:blackAndWhite, :bool, :default => false)
82
- define_attribute(:draft, :bool, :default => false)
83
- define_attribute(:cellComments, RubyXL::ST_CellComments, :default => 'none')
84
- define_attribute(:useFirstPageNumber, :bool, :default => false)
85
- define_attribute(:errors, RubyXL::ST_PrintError, :default => 'displayed')
86
- define_attribute(:horizontalDpi, :int, :default => 600)
87
- define_attribute(:verticalDpi, :int, :default => 600)
88
- define_attribute(:copies, :int, :default => 1)
89
- define_attribute(:'r:id', :string)
90
- define_element_name 'pageSetup'
91
- end
92
-
93
- class TableParts < OOXMLContainerObject
94
- define_child_node(RubyXL::RID, :collection => :with_count, :node_name => :tablePart)
95
- define_element_name 'tableParts'
96
- end
97
-
98
- # http://www.schemacentral.com/sc/ooxml/e-ssml_mergeCell-1.html
99
- class MergedCell < OOXMLObject
100
- define_attribute(:ref, :ref)
101
- define_element_name 'mergeCell'
102
- end
103
-
104
- # http://www.schemacentral.com/sc/ooxml/e-ssml_mergeCells-1.html
105
- class MergedCells < OOXMLContainerObject
106
- define_child_node(RubyXL::MergedCell, :collection => :with_count)
107
- define_element_name 'mergeCells'
108
- end
109
-
110
- # http://www.schemacentral.com/sc/ooxml/e-ssml_printOptions-1.html
111
- class PrintOptions < OOXMLObject
112
- define_attribute(:horizontalCentered, :bool, :default => false)
113
- define_attribute(:verticalCentered, :bool, :default => false)
114
- define_attribute(:headings, :bool, :default => false)
115
- define_attribute(:gridLines, :bool, :default => false)
116
- define_attribute(:gridLinesSet, :bool, :default => true)
117
- define_element_name 'printOptions'
118
- end
119
-
120
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetCalcPr-1.html
121
- class SheetCalculationProperties < OOXMLObject
122
- define_attribute(:fullCalcOnLoad, :bool, :default => false)
123
- define_element_name 'sheetCalcPr'
124
- end
125
-
126
- # http://www.schemacentral.com/sc/ooxml/e-ssml_protectedRange-1.html
127
- class ProtectedRange < OOXMLObject
128
- define_attribute(:password, :string)
129
- define_attribute(:sqref, :sqref, :required => true)
130
- define_attribute(:name, :string, :required => true)
131
- define_attribute(:securityDescriptor, :string)
132
- define_element_name 'protectedRange'
133
- end
134
-
135
- # http://www.schemacentral.com/sc/ooxml/e-ssml_protectedRanges-1.html
136
- class ProtectedRanges < OOXMLContainerObject
137
- define_child_node(RubyXL::ProtectedRange, :collection => true)
138
- define_element_name 'protectedRanges'
139
- end
140
-
141
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetProtection-1.html
142
- class WorksheetProtection < OOXMLObject
143
- define_attribute(:password, :string)
144
- define_attribute(:sheet, :bool, :default => false)
145
- define_attribute(:objects, :bool, :default => false)
146
- define_attribute(:scenarios, :bool, :default => false)
147
- define_attribute(:formatCells, :bool, :default => true)
148
- define_attribute(:formatColumns, :bool, :default => true)
149
- define_attribute(:formatRows, :bool, :default => true)
150
- define_attribute(:insertColumns, :bool, :default => true)
151
- define_attribute(:insertRows, :bool, :default => true)
152
- define_attribute(:insertHyperlinks, :bool, :default => true)
153
- define_attribute(:deleteColumns, :bool, :default => true)
154
- define_attribute(:deleteRows, :bool, :default => true)
155
- define_attribute(:selectLockedCells, :bool, :default => false)
156
- define_attribute(:sort, :bool, :default => true)
157
- define_attribute(:autoFilter, :bool, :default => true)
158
- define_attribute(:pivotTables, :bool, :default => true)
159
- define_attribute(:selectUnlockedCells, :bool, :default => false)
160
- define_element_name 'sheetProtection'
161
- end
162
-
163
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cfvo-1.html
164
- class ConditionalFormatValue < OOXMLObject
165
- define_attribute(:type, RubyXL::ST_CfvoType, :required => true)
166
- define_attribute(:val, :string)
167
- define_attribute(:gte, :bool, :default => true)
168
- define_child_node(RubyXL::ExtensionStorageArea)
169
- define_element_name 'cfvo'
170
- end
171
-
172
- # http://www.schemacentral.com/sc/ooxml/e-ssml_colorScale-1.html
173
- class ColorScale < OOXMLObject
174
- define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
175
- define_child_node(RubyXL::Color)
176
- define_element_name 'colorScale'
177
- end
178
-
179
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dataBar-1.html
180
- class DataBar < OOXMLObject
181
- define_attribute(:minLength, :int, :default => 10)
182
- define_attribute(:maxLength, :int, :default => 90)
183
- define_attribute(:showValue, :bool, :default => true)
184
- define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
185
- define_child_node(RubyXL::Color)
186
- define_element_name 'dataBar'
187
- end
188
-
189
- # http://www.schemacentral.com/sc/ooxml/e-ssml_iconSet-1.html
190
- class IconSet < OOXMLObject
191
- define_attribute(:type, RubyXL::ST_IconSetType, :required => true, :default => '3TrafficLights1')
192
- define_attribute(:showValue, :bool, :default => true)
193
- define_attribute(:percent, :bool, :default => true)
194
- define_attribute(:reverse, :bool, :default => false)
195
- define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
196
- define_element_name 'iconSet'
197
- end
198
-
199
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cfRule-1.html
200
- class ConditionalFormattingRule < OOXMLObject
201
- define_attribute(:type, RubyXL::ST_CfType)
202
- define_attribute(:dxfId, :int)
203
- define_attribute(:priority, :int, :required => 1)
204
- define_attribute(:stopIfTrue, :bool, :default => false)
205
- define_attribute(:aboveAverage, :bool, :default => true)
206
- define_attribute(:percent, :bool, :default => false)
207
- define_attribute(:bottom, :bool, :default => false)
208
- define_attribute(:operator, RubyXL::ST_ConditionalFormattingOperator)
209
- define_attribute(:text, :string)
210
- define_attribute(:timePeriod, RubyXL::ST_TimePeriod)
211
- define_attribute(:rank, :int)
212
- define_attribute(:stdDev, :int)
213
- define_attribute(:equalAverage, :bool, :default => false)
214
- define_child_node(RubyXL::Formula, :collection => true, :node_name => :formula, :accessor => :formulas)
215
- define_child_node(RubyXL::ColorScale)
216
- define_child_node(RubyXL::DataBar)
217
- define_child_node(RubyXL::IconSet)
218
- define_child_node(RubyXL::ExtensionStorageArea)
219
- define_element_name 'cfRule'
220
- end
221
-
222
- # http://www.schemacentral.com/sc/ooxml/e-ssml_brk-1.html
223
- class Break < OOXMLObject
224
- define_attribute(:id, :int, :default => 0)
225
- define_attribute(:min, :int, :default => 0)
226
- define_attribute(:max, :int, :default => 0)
227
- define_attribute(:man, :bool, :default => false)
228
- define_attribute(:pt, :bool, :default => false)
229
- define_element_name 'brk'
230
- end
231
-
232
- # http://www.schemacentral.com/sc/ooxml/e-ssml_rowBreaks-1.html
233
- class BreakList < OOXMLContainerObject
234
- define_attribute(:manualBreakCount, :int, :default => 0)
235
- define_child_node(RubyXL::Break, :collection => :with_count)
236
- end
237
-
238
- # http://www.schemacentral.com/sc/ooxml/e-ssml_conditionalFormatting-1.html
239
- class ConditionalFormatting < OOXMLContainerObject
240
- define_attribute(:pivot, :bool, :default => false)
241
- define_attribute(:sqref, :sqref)
242
- define_child_node(RubyXL::ConditionalFormattingRule, :collection => true)
243
- define_child_node(RubyXL::ExtensionStorageArea)
244
- define_element_name 'conditionalFormatting'
245
- end
246
-
247
- # http://www.schemacentral.com/sc/ooxml/e-ssml_inputCells-1.html
248
- class InputCells < OOXMLObject
249
- define_attribute(:r, :ref, :required => true)
250
- define_attribute(:deleted, :bool, :default => false)
251
- define_attribute(:undone, :bool, :default => false)
252
- define_attribute(:val, :string, :required => true)
253
- define_attribute(:numFmtId, :int)
254
- define_element_name 'inputCells'
255
- end
256
-
257
- # http://www.schemacentral.com/sc/ooxml/e-ssml_scenario-1.html
258
- class Scenario < OOXMLObject
259
- define_attribute(:name, :string)
260
- define_attribute(:locked, :bool, :default => false)
261
- define_attribute(:hidden, :bool, :default => false)
262
- define_attribute(:user, :string)
263
- define_attribute(:comment, :string)
264
- define_child_node(RubyXL::InputCells, :collection => :with_count)
265
- define_element_name 'scenario'
266
- end
267
-
268
- # http://www.schemacentral.com/sc/ooxml/e-ssml_scenarios-1.html
269
- class Scenarios < OOXMLContainerObject
270
- define_attribute(:current, :int)
271
- define_attribute(:show, :int)
272
- define_attribute(:sqref, :sqref)
273
- define_child_node(RubyXL::Scenario, :collection => true)
274
- define_element_name 'scenarios'
275
- end
276
-
277
- # http://www.schemacentral.com/sc/ooxml/e-ssml_ignoredError-1.html
278
- class IgnoredError < OOXMLObject
279
- define_attribute(:sqref, :sqref, :required => true)
280
- define_attribute(:pivot, :bool, :default => false)
281
- define_attribute(:evalError, :bool, :default => false)
282
- define_attribute(:twoDigitTextYear, :bool, :default => false)
283
- define_attribute(:numberStoredAsText, :bool, :default => false)
284
- define_attribute(:formula, :bool, :default => false)
285
- define_attribute(:formulaRange, :bool, :default => false)
286
- define_attribute(:unlockedFormula, :bool, :default => false)
287
- define_attribute(:emptyCellReference, :bool, :default => false)
288
- define_attribute(:listDataValidation, :bool, :default => false)
289
- define_attribute(:calculatedColumn, :bool, :default => false)
290
- define_element_name 'ignoredError'
291
- end
292
-
293
- # http://www.schemacentral.com/sc/ooxml/e-ssml_ignoredErrors-1.html
294
- class IgnoredErrors < OOXMLContainerObject
295
- define_child_node(RubyXL::IgnoredError, :collection => true)
296
- define_child_node(RubyXL::ExtensionStorageArea)
297
- define_element_name 'ignoredErrors'
298
- end
299
-
300
- # http://www.schemacentral.com/sc/ooxml/e-ssml_hyperlink-1.html
301
- class Hyperlink < OOXMLObject
302
- define_attribute(:ref, :ref, :required => true)
303
- define_attribute(:'r:id', :string)
304
- define_attribute(:location, :string)
305
- define_attribute(:tooltip, :string)
306
- define_attribute(:display, :string)
307
- define_element_name 'hyperlink'
308
- end
309
-
310
- # http://www.schemacentral.com/sc/ooxml/e-ssml_hyperlinks-1.html
311
- class Hyperlinks < OOXMLContainerObject
312
- define_child_node(RubyXL::Hyperlink, :collection => true)
313
- define_element_name 'hyperlinks'
314
- end
315
-
316
- # http://www.schemacentral.com/sc/ooxml/e-ssml_oleObject-1.html
317
- class OLEObject < OOXMLObject
318
- define_attribute(:progId, :string)
319
- define_attribute(:dvAspect, RubyXL::ST_DvAspect, :default => 'DVASPECT_CONTENT')
320
- define_attribute(:link, :string)
321
- define_attribute(:oleUpdate, RubyXL::ST_OleUpdate)
322
- define_attribute(:autoLoad, :bool, :default => false)
323
- define_attribute(:shapeId, :int, :required => true)
324
- define_attribute(:'r:id', :string)
325
- define_element_name 'oleObject'
326
- end
327
-
328
- # http://www.schemacentral.com/sc/ooxml/e-ssml_oleObjects-1.html
329
- class OLEObjects < OOXMLContainerObject
330
- define_child_node(RubyXL::OLEObject, :collection => true)
331
- define_element_name 'oleObjects'
332
- end
333
-
334
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dataRef-1.html
335
- class DataConsolidationReference < OOXMLObject
336
- define_attribute(:ref, :ref)
337
- define_attribute(:name, :string)
338
- define_attribute(:sheet, :string)
339
- define_attribute(:'r:id', :string)
340
- define_element_name 'dataRef'
341
- end
342
-
343
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dataRefs-1.html
344
- class DataConsolidationReferences < OOXMLContainerObject
345
- define_child_node(RubyXL::DataConsolidationReference, :collection => :with_count)
346
- define_element_name 'dataRefs'
347
- end
348
-
349
- # http://www.schemacentral.com/sc/ooxml/e-ssml_dataConsolidate-1.html
350
- class DataConsolidate < OOXMLObject
351
- define_attribute(:function, RubyXL::ST_DataConsolidateFunction, :default => 'sum')
352
- define_attribute(:leftLabels, :bool, :default => false)
353
- define_attribute(:topLabels, :bool, :default => false)
354
- define_attribute(:link, :bool, :default => false)
355
- define_child_node(RubyXL::DataConsolidationReferences)
356
- define_element_name 'dataConsolidate'
357
- end
358
-
359
- # http://www.schemacentral.com/sc/ooxml/e-ssml_pane-1.html
360
- class Pane < OOXMLObject
361
- define_attribute(:xSplit, :double)
362
- define_attribute(:ySplit, :double)
363
- define_attribute(:topLeftCell, :string)
364
- define_attribute(:activePane, RubyXL::ST_Pane, :default => 'topLeft', )
365
- define_attribute(:state, RubyXL::ST_PaneState, :default=> 'split')
366
- define_element_name 'pane'
367
- end
368
-
369
- # http://www.schemacentral.com/sc/ooxml/e-ssml_selection-1.html
370
- class Selection < OOXMLObject
371
- define_attribute(:pane, RubyXL::ST_Pane)
372
- define_attribute(:activeCell, :ref)
373
- define_attribute(:activeCellId, :int) # 0-based index of @active_cell in @sqref
374
- define_attribute(:sqref, :sqref) # Array of references to the selected cells.
375
- define_element_name 'selection'
376
-
377
- def before_write_xml
378
- # Normally, rindex of activeCellId in sqref:
379
- # <selection activeCell="E12" activeCellId="9" sqref="A4 B6 C8 D10 E12 A4 B6 C8 D10 E12"/>
380
- if @active_cell_id.nil? && !@active_cell.nil? && @sqref.size > 1 then
381
- # But, things can be more complex:
382
- # <selection activeCell="E8" activeCellId="2" sqref="A4:B4 C6:D6 E8:F8"/>
383
- # Not using .reverse.each here to avoid memory reallocation.
384
- @sqref.each_with_index { |ref, ind| @active_cell_id = ind if ref.cover?(@active_cell) }
385
- end
386
- true
387
- end
388
- end
389
-
390
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customSheetView-1.html
391
- class CustomSheetView < OOXMLObject
392
- define_attribute(:guid, :string, :required => true)
393
- define_attribute(:scale, :int, :default => 100)
394
- define_attribute(:colorId, :int, :default => 64)
395
- define_attribute(:showPageBreaks, :bool, :default => false)
396
- define_attribute(:showFormulas, :bool, :default => false)
397
- define_attribute(:showGridLines, :bool, :default => true)
398
- define_attribute(:showRowCol, :bool, :default => true)
399
- define_attribute(:outlineSymbols, :bool, :default => true)
400
- define_attribute(:zeroValues, :bool, :default => true)
401
- define_attribute(:fitToPage, :bool, :default => false)
402
- define_attribute(:printArea, :bool, :default => false)
403
- define_attribute(:filter, :bool, :default => false)
404
- define_attribute(:showAutoFilter, :bool, :default => false)
405
- define_attribute(:hiddenRows, :bool, :default => false)
406
- define_attribute(:hiddenColumns, :bool, :default => false)
407
- define_attribute(:state, RubyXL::ST_Visibility, :default => 'visible')
408
- define_attribute(:filterUnique, :bool, :default => false)
409
- define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
410
- define_attribute(:showRuler, :bool, :default => true)
411
- define_attribute(:topLeftCell, :ref)
412
- define_child_node(RubyXL::Pane)
413
- define_child_node(RubyXL::Selection)
414
- define_child_node(RubyXL::BreakList, :node_name => :rowBreaks)
415
- define_child_node(RubyXL::BreakList, :node_name => :colBreaks)
416
- define_child_node(RubyXL::PageMargins)
417
- define_child_node(RubyXL::PrintOptions)
418
- define_child_node(RubyXL::PageSetup)
419
- define_child_node(RubyXL::HeaderFooterSettings)
420
- define_child_node(RubyXL::AutoFilter)
421
- define_child_node(RubyXL::ExtensionStorageArea)
422
- define_element_name 'customSheetView'
423
- end
424
-
425
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customSheetViews-1.html
426
- class CustomSheetViews < OOXMLContainerObject
427
- define_child_node(RubyXL::CustomSheetView, :collection => true)
428
- define_element_name 'customSheetViews'
429
- end
430
-
431
- # http://www.schemacentral.com/sc/ooxml/e-ssml_control-1.html
432
- class EmbeddedControl < OOXMLObject
433
- define_attribute(:shapeId, :int, :required => :true)
434
- define_attribute(:'r:id', :string, :required => :true)
435
- define_attribute(:name, :string)
436
- define_element_name 'control'
437
- end
438
-
439
- # http://www.schemacentral.com/sc/ooxml/e-ssml_controls-1.html
440
- class EmbeddedControls < OOXMLContainerObject
441
- define_child_node(RubyXL::EmbeddedControl, :collection => true)
442
- define_element_name 'controls'
443
- end
444
-
445
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cellWatch-1.html
446
- class CellWatch < OOXMLObject
447
- define_attribute(:r, :ref)
448
- define_element_name 'cellWatch'
449
- end
450
-
451
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cellWatches-1.html
452
- class CellWatches < OOXMLContainerObject
453
- define_child_node(RubyXL::CellWatch, :collection => true)
454
- define_element_name 'cellWatches'
455
- end
456
-
457
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTagPr-1.html
458
- class CellSmartTagProperty < OOXMLObject
459
- define_attribute(:key, :string, :required => :true)
460
- define_attribute(:val, :string, :required => :true)
461
- define_element_name 'cellSmartTagPr'
462
- end
463
-
464
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTag-1.html
465
- class CellSmartTag < OOXMLObject
466
- define_attribute(:type, :int, :required => :true)
467
- define_attribute(:deleted, :bool, :default => false)
468
- define_attribute(:xmlBased, :bool, :default => false)
469
- define_child_node(RubyXL::CellSmartTagProperty, :collection => :true, :accessor => :smart_tag_props)
470
- define_element_name 'cellSmartTag'
471
- end
472
-
473
- # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTags-1.html
474
- class CellSmartTags < OOXMLContainerObject
475
- define_attribute(:r, :ref, :accessor => :ref)
476
- define_child_node(RubyXL::CellSmartTag, :collection => :true)
477
- define_element_name 'cellSmartTags'
478
- end
479
-
480
- # http://www.schemacentral.com/sc/ooxml/e-ssml_smartTags-1.html
481
- class SmartTags < OOXMLContainerObject
482
- define_child_node(RubyXL::CellSmartTags, :collection => :true)
483
- define_element_name 'smartTags'
484
- end
485
-
486
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customPr-1.html
487
- class CustomProperty < OOXMLObject
488
- define_attribute(:name, :string, :required => :true)
489
- define_attribute(:'r:id', :string, :required => :true)
490
- define_element_name 'customPr'
491
- end
492
-
493
- # http://www.schemacentral.com/sc/ooxml/e-ssml_customProperties-1.html
494
- class CustomProperties < OOXMLContainerObject
495
- define_child_node(RubyXL::CustomProperty, :collection => :true)
496
- define_element_name 'customProperties'
497
- end
498
-
499
- class FieldItem < OOXMLObject
500
- define_attribute(:v, :int, :required => true)
501
- define_element_name 'x'
502
- end
503
-
504
- # http://www.schemacentral.com/sc/ooxml/e-ssml_references-1.html
505
- class PivotReference < OOXMLObject
506
- define_attribute(:field, :int)
507
- define_attribute(:selected, :bool, :default => true)
508
- define_attribute(:byPosition, :bool, :default => false)
509
- define_attribute(:relative, :bool, :default => false)
510
- define_attribute(:defaultSubtotal, :bool, :default => false)
511
- define_attribute(:sumSubtotal, :bool, :default => false)
512
- define_attribute(:countASubtotal, :bool, :default => false)
513
- define_attribute(:avgSubtotal, :bool, :default => false)
514
- define_attribute(:maxSubtotal, :bool, :default => false)
515
- define_attribute(:minSubtotal, :bool, :default => false)
516
- define_attribute(:productSubtotal, :bool, :default => false)
517
- define_attribute(:countSubtotal, :bool, :default => false)
518
- define_attribute(:stdDevSubtotal, :bool, :default => false)
519
- define_attribute(:stdDevPSubtotal, :bool, :default => false)
520
- define_attribute(:varSubtotal, :bool, :default => false)
521
- define_attribute(:varPSubtotal, :bool, :default => false)
522
- define_child_node(RubyXL::FieldItem, :collection => :with_count, :accessor => :field_items)
523
- define_child_node(RubyXL::ExtensionStorageArea)
524
- define_element_name 'references'
525
- end
526
-
527
- # http://www.schemacentral.com/sc/ooxml/e-ssml_references-1.html
528
- class PivotReferences < OOXMLContainerObject
529
- define_child_node(RubyXL::PivotReference, :collection => :with_count)
530
- define_element_name 'references'
531
- end
532
-
533
- # http://www.schemacentral.com/sc/ooxml/e-ssml_pivotArea-4.html
534
- class PivotArea < OOXMLObject
535
- define_attribute(:field, :int)
536
- define_attribute(:type, RubyXL::ST_PivotAreaType, :default => 'normal')
537
- define_attribute(:dataOnly, :bool, :default => true)
538
- define_attribute(:labelOnly, :bool, :default => false)
539
- define_attribute(:grandRow, :bool, :default => false)
540
- define_attribute(:grandCol, :bool, :default => false)
541
- define_attribute(:cacheIndex, :bool, :default => false)
542
- define_attribute(:outline, :bool, :default => true)
543
- define_attribute(:offset, :ref)
544
- define_attribute(:collapsedLevelsAreSubtotals, :bool, :default => false)
545
- define_attribute(:axis, RubyXL::ST_Axis)
546
- define_attribute(:fieldPosition, :int, :default => 0)
547
- define_child_node(RubyXL::PivotReferences)
548
- define_child_node(RubyXL::ExtensionStorageArea)
549
- define_element_name 'pivotArea'
550
- end
551
-
552
- # http://www.schemacentral.com/sc/ooxml/e-ssml_pivotSelection-1.html
553
- class PivotTableSelection < OOXMLObject
554
- define_attribute(:pane, RubyXL::ST_Pane, :default => 'topLeft')
555
- define_attribute(:showHeader, :bool, :default => false)
556
- define_attribute(:label, :bool, :default => false)
557
- define_attribute(:data, :bool, :default => false)
558
- define_attribute(:extendable, :bool, :default => false)
559
- define_attribute(:count, :int, :default => 0)
560
- define_attribute(:axis, RubyXL::ST_Axis)
561
- define_attribute(:dimension, :int, :default => 0)
562
- define_attribute(:start, :int, :default => 0)
563
- define_attribute(:min, :int, :default => 0)
564
- define_attribute(:max, :int, :default => 0)
565
- define_attribute(:activeRow, :int, :default => 0)
566
- define_attribute(:activeCol, :int, :default => 0)
567
- define_attribute(:previousRow, :int, :default => 0)
568
- define_attribute(:previousCol, :int, :default => 0)
569
- define_attribute(:click, :int, :default => 0)
570
- define_attribute(:'r:id', :string)
571
- define_child_node(RubyXL::PivotArea)
572
- define_element_name 'pivotSelection'
573
- end
574
-
575
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetView-1.html
576
- class WorksheetView < OOXMLObject
577
- define_attribute(:windowProtection, :bool, :default => false)
578
- define_attribute(:showFormulas, :bool, :default => false)
579
- define_attribute(:showGridLines, :bool, :default => true)
580
- define_attribute(:showRowColHeaders, :bool, :default => true)
581
- define_attribute(:showZeros, :bool, :default => true)
582
- define_attribute(:rightToLeft, :bool, :default => false)
583
- define_attribute(:tabSelected, :bool, :default => false)
584
- define_attribute(:showRuler, :bool, :default => true)
585
- define_attribute(:showOutlineSymbols, :bool, :default => true)
586
- define_attribute(:defaultGridColor, :bool, :default => true)
587
- define_attribute(:showWhiteSpace, :bool, :default => true)
588
- define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
589
- define_attribute(:topLeftCell, :ref)
590
- define_attribute(:colorId, :int, :default => 64)
591
- define_attribute(:zoomScale, :int, :default => 100)
592
- define_attribute(:zoomScaleNormal, :int, :default => 0)
593
- define_attribute(:zoomScaleSheetLayoutView, :bool, :default => 0)
594
- define_attribute(:zoomScalePageLayoutView, :bool, :default => 0)
595
- define_attribute(:workbookViewId, :int, :required => true, :default => 0 )
596
- define_child_node(RubyXL::Pane)
597
- define_child_node(RubyXL::Selection, :collection => true, :accessor => :selections)
598
- define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections )
599
- define_child_node(RubyXL::ExtensionStorageArea)
600
- define_element_name 'sheetView'
601
- end
602
-
603
- # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetViews-3.html
604
- class WorksheetViews < OOXMLContainerObject
605
- define_child_node(RubyXL::WorksheetView, :collection => true)
606
- define_child_node(RubyXL::ExtensionStorageArea)
607
- define_element_name 'sheetViews'
608
- end
609
-
610
- # http://www.schemacentral.com/sc/ooxml/e-ssml_worksheet.html
611
- class Worksheet < OOXMLTopLevelObject
612
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
613
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
614
-
615
- include RubyXL::RelationshipSupport
616
-
617
- def related_objects
618
- comments + printer_settings
619
- end
620
-
621
- define_relationship(RubyXL::PrinterSettingsFile, :printer_settings)
622
- define_relationship(RubyXL::CommentsFile, :comments)
623
- define_relationship(RubyXL::VMLDrawingFile)
624
- define_relationship(RubyXL::DrawingFile)
625
- define_relationship(RubyXL::BinaryImageFile)
626
- define_relationship(RubyXL::PivotTableFile)
627
- define_relationship(RubyXL::TableFile)
628
- define_relationship(RubyXL::ControlPropertiesFile)
629
- define_relationship(RubyXL::SlicerFile)
630
-
631
- define_child_node(RubyXL::WorksheetProperties)
632
- define_child_node(RubyXL::WorksheetDimensions)
633
- define_child_node(RubyXL::WorksheetViews)
634
- define_child_node(RubyXL::WorksheetFormatProperties)
635
- define_child_node(RubyXL::ColumnRanges)
636
- define_child_node(RubyXL::SheetData)
637
- define_child_node(RubyXL::SheetCalculationProperties)
638
- define_child_node(RubyXL::WorksheetProtection)
639
- define_child_node(RubyXL::ProtectedRanges)
640
- define_child_node(RubyXL::Scenarios)
641
- define_child_node(RubyXL::AutoFilter)
642
- define_child_node(RubyXL::SortState)
643
- define_child_node(RubyXL::DataConsolidate)
644
- define_child_node(RubyXL::CustomSheetViews)
645
- define_child_node(RubyXL::MergedCells, :accessor => :merged_cells)
646
- define_child_node(RubyXL::PhoneticProperties)
647
- define_child_node(RubyXL::ConditionalFormatting)
648
- define_child_node(RubyXL::DataValidations)
649
- define_child_node(RubyXL::Hyperlinks)
650
- define_child_node(RubyXL::PrintOptions)
651
- define_child_node(RubyXL::PageMargins)
652
- define_child_node(RubyXL::PageSetup)
653
- define_child_node(RubyXL::HeaderFooterSettings)
654
- define_child_node(RubyXL::BreakList, :node_name => :rowBreaks)
655
- define_child_node(RubyXL::BreakList, :node_name => :colBreaks)
656
- define_child_node(RubyXL::CustomProperties)
657
- define_child_node(RubyXL::CellWatches)
658
- define_child_node(RubyXL::IgnoredErrors)
659
- define_child_node(RubyXL::SmartTags)
660
- define_child_node(RubyXL::RID, :node_name => :drawing)
661
- define_child_node(RubyXL::RID, :node_name => :legacyDrawing)
662
- define_child_node(RubyXL::RID, :node_name => :legacyDrawingHF)
663
- define_child_node(RubyXL::RID, :node_name => :picture)
664
- define_child_node(RubyXL::OLEObjects)
665
- define_child_node(RubyXL::EmbeddedControls)
666
- define_child_node(RubyXL::WebPublishingItems)
667
- define_child_node(RubyXL::TableParts)
668
- define_child_node(RubyXL::ExtensionStorageArea)
669
- define_child_node(RubyXL::AlternateContent)
670
- define_element_name 'worksheet'
671
- set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => '',
672
- 'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
673
- 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
674
- 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
675
- 'urn:schemas-microsoft-com:mac:vml' => 'mv')
676
-
677
- attr_accessor :workbook, :state, :sheet_name, :sheet_id, :rels
678
-
679
- def before_write_xml # This method may need to be moved higher in the hierarchy
680
- first_nonempty_row = nil
681
- last_nonempty_row = 0
682
- first_nonempty_column = nil
683
- last_nonempty_column = 0
684
-
685
- if sheet_data then
686
- sheet_data.rows.each_with_index { |row, row_index|
687
- next if row.nil? || row.cells.empty?
688
-
689
- first_nonempty_cell = nil
690
- last_nonempty_cell = 0
691
-
692
- row.cells.each_with_index { |cell, col_index|
693
- next if cell.nil?
694
- cell.r = RubyXL::Reference.new(row_index, col_index)
695
-
696
- first_nonempty_cell ||= col_index
697
- last_nonempty_cell = col_index
698
- }
699
-
700
- if first_nonempty_cell then # If there's nothing in this row, then +first_nonempty_cell+ will be +nil+.
701
- last_nonempty_row = row_index
702
- first_nonempty_row ||= row_index
703
-
704
- first_nonempty_column ||= first_nonempty_cell
705
- last_nonempty_column = last_nonempty_cell if last_nonempty_cell > last_nonempty_column
706
- end
707
-
708
- row.r = row_index + 1
709
- row.spans = "#{first_nonempty_cell + 1}:#{last_nonempty_cell + 1}" unless first_nonempty_cell.nil?
710
- row.custom_format = (row.style_index.to_i != 0)
711
- }
712
-
713
- if first_nonempty_row then
714
- self.dimension ||= RubyXL::WorksheetDimensions.new
715
- self.dimension.ref = RubyXL::Reference.new(first_nonempty_row, last_nonempty_row,
716
- first_nonempty_column, last_nonempty_column)
717
- end
718
-
719
- end
720
-
721
- true
722
- end
723
-
724
- def xlsx_path
725
- ROOT.join('xl', 'worksheets', "sheet#{file_index}.xml")
726
- end
727
-
728
- def self.parse(param)
729
- sheet_obj = super
730
- sheet_obj.sheet_data.rows.each { |r|
731
- next if r.nil?
732
- r.worksheet = sheet_obj
733
- r.cells.each { |c| c.worksheet = sheet_obj unless c.nil? }
734
- }
735
- sheet_obj
736
- end
737
-
738
- include LegacyWorksheet
739
- end
740
-
741
- end
19
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_outlinePr-1.html
20
+ class OutlineProperties < OOXMLObject
21
+ define_attribute(:applyStyles, :bool, :default => false)
22
+ define_attribute(:summaryBelow, :bool, :default => true)
23
+ define_attribute(:summaryRight, :bool, :default => true)
24
+ define_attribute(:showOutlineSymbols, :bool, :default => true)
25
+ define_element_name 'outlinePr'
26
+ end
27
+
28
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_pageSetUpPr-1.html
29
+ class PageSetupProperties < OOXMLObject
30
+ define_attribute(:autoPageBreaks, :bool, :default => true)
31
+ define_attribute(:fitToPage, :bool, :default => false)
32
+ define_element_name 'pageSetUpPr'
33
+ end
34
+
35
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetPr-3.html
36
+ class WorksheetProperties < OOXMLObject
37
+ define_attribute(:syncHorizontal, :bool, :default => false)
38
+ define_attribute(:syncVertical, :bool, :default => false)
39
+ define_attribute(:syncRef, :ref)
40
+ define_attribute(:transitionEvaluation, :bool, :default => false)
41
+ define_attribute(:transitionEntry, :bool, :default => false)
42
+ define_attribute(:published, :bool, :default => true)
43
+ define_attribute(:codeName, :string)
44
+ define_attribute(:filterMode, :bool, :default => false)
45
+ define_attribute(:enableFormatConditionsCalculation, :bool, :default => true)
46
+ define_child_node(RubyXL::Color, :node_name => :tabColor)
47
+ define_child_node(RubyXL::OutlineProperties)
48
+ define_child_node(RubyXL::PageSetupProperties)
49
+ define_element_name 'sheetPr'
50
+ end
51
+
52
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_dimension-3.html
53
+ class WorksheetDimensions < OOXMLObject
54
+ define_attribute(:ref, :ref)
55
+ define_element_name 'dimension'
56
+ end
57
+
58
+ class WorksheetFormatProperties < OOXMLObject
59
+ define_attribute(:baseColWidth, :int, :default => 8)
60
+ define_attribute(:defaultColWidth, :double)
61
+ define_attribute(:defaultRowHeight, :double, :required => true)
62
+ define_attribute(:customHeight, :bool, :default => false)
63
+ define_attribute(:zeroHeight, :bool, :default => false)
64
+ define_attribute(:thickTop, :bool, :default => false)
65
+ define_attribute(:thickBottom, :bool, :default => false)
66
+ define_attribute(:outlineLevelRow, :int, :default => 0)
67
+ define_attribute(:outlineLevelCol, :int, :default => 0)
68
+ define_element_name 'sheetFormatPr'
69
+ end
70
+
71
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_pageSetup-1.html
72
+ class PageSetup < OOXMLObject
73
+ define_attribute(:paperSize, :int, :default => 1)
74
+ define_attribute(:scale, :int, :default => 100)
75
+ define_attribute(:firstPageNumber, :int, :default => 1)
76
+ define_attribute(:fitToWidth, :int, :default => 1)
77
+ define_attribute(:fitToHeight, :int, :default => 1)
78
+ define_attribute(:pageOrder, RubyXL::ST_PageOrder, :default => 'downThenOver')
79
+ define_attribute(:orientation, RubyXL::ST_Orientation, :default => 'default')
80
+ define_attribute(:usePrinterDefaults, :bool, :default => true)
81
+ define_attribute(:blackAndWhite, :bool, :default => false)
82
+ define_attribute(:draft, :bool, :default => false)
83
+ define_attribute(:cellComments, RubyXL::ST_CellComments, :default => 'none')
84
+ define_attribute(:useFirstPageNumber, :bool, :default => false)
85
+ define_attribute(:errors, RubyXL::ST_PrintError, :default => 'displayed')
86
+ define_attribute(:horizontalDpi, :int, :default => 600)
87
+ define_attribute(:verticalDpi, :int, :default => 600)
88
+ define_attribute(:copies, :int, :default => 1)
89
+ define_attribute(:'r:id', :string)
90
+ define_element_name 'pageSetup'
91
+ end
92
+
93
+ class TableParts < OOXMLContainerObject
94
+ define_child_node(RubyXL::RID, :collection => :with_count, :node_name => :tablePart)
95
+ define_element_name 'tableParts'
96
+ end
97
+
98
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_mergeCell-1.html
99
+ class MergedCell < OOXMLObject
100
+ define_attribute(:ref, :ref)
101
+ define_element_name 'mergeCell'
102
+ end
103
+
104
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_mergeCells-1.html
105
+ class MergedCells < OOXMLContainerObject
106
+ define_child_node(RubyXL::MergedCell, :collection => :with_count)
107
+ define_element_name 'mergeCells'
108
+ end
109
+
110
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_printOptions-1.html
111
+ class PrintOptions < OOXMLObject
112
+ define_attribute(:horizontalCentered, :bool, :default => false)
113
+ define_attribute(:verticalCentered, :bool, :default => false)
114
+ define_attribute(:headings, :bool, :default => false)
115
+ define_attribute(:gridLines, :bool, :default => false)
116
+ define_attribute(:gridLinesSet, :bool, :default => true)
117
+ define_element_name 'printOptions'
118
+ end
119
+
120
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetCalcPr-1.html
121
+ class SheetCalculationProperties < OOXMLObject
122
+ define_attribute(:fullCalcOnLoad, :bool, :default => false)
123
+ define_element_name 'sheetCalcPr'
124
+ end
125
+
126
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_protectedRange-1.html
127
+ class ProtectedRange < OOXMLObject
128
+ define_attribute(:password, :string)
129
+ define_attribute(:sqref, :sqref, :required => true)
130
+ define_attribute(:name, :string, :required => true)
131
+ define_attribute(:securityDescriptor, :string)
132
+ define_element_name 'protectedRange'
133
+ end
134
+
135
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_protectedRanges-1.html
136
+ class ProtectedRanges < OOXMLContainerObject
137
+ define_child_node(RubyXL::ProtectedRange, :collection => true)
138
+ define_element_name 'protectedRanges'
139
+ end
140
+
141
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetProtection-1.html
142
+ class WorksheetProtection < OOXMLObject
143
+ define_attribute(:password, :string)
144
+ define_attribute(:sheet, :bool, :default => false)
145
+ define_attribute(:objects, :bool, :default => false)
146
+ define_attribute(:scenarios, :bool, :default => false)
147
+ define_attribute(:formatCells, :bool, :default => true)
148
+ define_attribute(:formatColumns, :bool, :default => true)
149
+ define_attribute(:formatRows, :bool, :default => true)
150
+ define_attribute(:insertColumns, :bool, :default => true)
151
+ define_attribute(:insertRows, :bool, :default => true)
152
+ define_attribute(:insertHyperlinks, :bool, :default => true)
153
+ define_attribute(:deleteColumns, :bool, :default => true)
154
+ define_attribute(:deleteRows, :bool, :default => true)
155
+ define_attribute(:selectLockedCells, :bool, :default => false)
156
+ define_attribute(:sort, :bool, :default => true)
157
+ define_attribute(:autoFilter, :bool, :default => true)
158
+ define_attribute(:pivotTables, :bool, :default => true)
159
+ define_attribute(:selectUnlockedCells, :bool, :default => false)
160
+ define_element_name 'sheetProtection'
161
+ end
162
+
163
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cfvo-1.html
164
+ class ConditionalFormatValue < OOXMLObject
165
+ define_attribute(:type, RubyXL::ST_CfvoType, :required => true)
166
+ define_attribute(:val, :string)
167
+ define_attribute(:gte, :bool, :default => true)
168
+ define_child_node(RubyXL::ExtensionStorageArea)
169
+ define_element_name 'cfvo'
170
+ end
171
+
172
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_colorScale-1.html
173
+ class ColorScale < OOXMLObject
174
+ define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
175
+ define_child_node(RubyXL::Color)
176
+ define_element_name 'colorScale'
177
+ end
178
+
179
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_dataBar-1.html
180
+ class DataBar < OOXMLObject
181
+ define_attribute(:minLength, :int, :default => 10)
182
+ define_attribute(:maxLength, :int, :default => 90)
183
+ define_attribute(:showValue, :bool, :default => true)
184
+ define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
185
+ define_child_node(RubyXL::Color)
186
+ define_element_name 'dataBar'
187
+ end
188
+
189
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_iconSet-1.html
190
+ class IconSet < OOXMLObject
191
+ define_attribute(:type, RubyXL::ST_IconSetType, :required => true, :default => '3TrafficLights1')
192
+ define_attribute(:showValue, :bool, :default => true)
193
+ define_attribute(:percent, :bool, :default => true)
194
+ define_attribute(:reverse, :bool, :default => false)
195
+ define_child_node(RubyXL::ConditionalFormatValue, :collection => true, :accessor => :cfvo)
196
+ define_element_name 'iconSet'
197
+ end
198
+
199
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cfRule-1.html
200
+ class ConditionalFormattingRule < OOXMLObject
201
+ define_attribute(:type, RubyXL::ST_CfType)
202
+ define_attribute(:dxfId, :int)
203
+ define_attribute(:priority, :int, :required => 1)
204
+ define_attribute(:stopIfTrue, :bool, :default => false)
205
+ define_attribute(:aboveAverage, :bool, :default => true)
206
+ define_attribute(:percent, :bool, :default => false)
207
+ define_attribute(:bottom, :bool, :default => false)
208
+ define_attribute(:operator, RubyXL::ST_ConditionalFormattingOperator)
209
+ define_attribute(:text, :string)
210
+ define_attribute(:timePeriod, RubyXL::ST_TimePeriod)
211
+ define_attribute(:rank, :int)
212
+ define_attribute(:stdDev, :int)
213
+ define_attribute(:equalAverage, :bool, :default => false)
214
+ define_child_node(RubyXL::Formula, :collection => true, :node_name => :formula, :accessor => :formulas)
215
+ define_child_node(RubyXL::ColorScale)
216
+ define_child_node(RubyXL::DataBar)
217
+ define_child_node(RubyXL::IconSet)
218
+ define_child_node(RubyXL::ExtensionStorageArea)
219
+ define_element_name 'cfRule'
220
+ end
221
+
222
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_brk-1.html
223
+ class Break < OOXMLObject
224
+ define_attribute(:id, :int, :default => 0)
225
+ define_attribute(:min, :int, :default => 0)
226
+ define_attribute(:max, :int, :default => 0)
227
+ define_attribute(:man, :bool, :default => false)
228
+ define_attribute(:pt, :bool, :default => false)
229
+ define_element_name 'brk'
230
+ end
231
+
232
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_rowBreaks-1.html
233
+ class BreakList < OOXMLContainerObject
234
+ define_attribute(:manualBreakCount, :int, :default => 0)
235
+ define_child_node(RubyXL::Break, :collection => :with_count)
236
+ end
237
+
238
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_conditionalFormatting-1.html
239
+ class ConditionalFormatting < OOXMLContainerObject
240
+ define_attribute(:pivot, :bool, :default => false)
241
+ define_attribute(:sqref, :sqref)
242
+ define_child_node(RubyXL::ConditionalFormattingRule, :collection => true)
243
+ define_child_node(RubyXL::ExtensionStorageArea)
244
+ define_element_name 'conditionalFormatting'
245
+ end
246
+
247
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_inputCells-1.html
248
+ class InputCells < OOXMLObject
249
+ define_attribute(:r, :ref, :required => true)
250
+ define_attribute(:deleted, :bool, :default => false)
251
+ define_attribute(:undone, :bool, :default => false)
252
+ define_attribute(:val, :string, :required => true)
253
+ define_attribute(:numFmtId, :int)
254
+ define_element_name 'inputCells'
255
+ end
256
+
257
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_scenario-1.html
258
+ class Scenario < OOXMLContainerObject
259
+ define_attribute(:name, :string)
260
+ define_attribute(:locked, :bool, :default => false)
261
+ define_attribute(:hidden, :bool, :default => false)
262
+ define_attribute(:user, :string)
263
+ define_attribute(:comment, :string)
264
+ define_child_node(RubyXL::InputCells, :collection => :with_count)
265
+ define_element_name 'scenario'
266
+ end
267
+
268
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_scenarios-1.html
269
+ class Scenarios < OOXMLContainerObject
270
+ define_attribute(:current, :int)
271
+ define_attribute(:show, :int)
272
+ define_attribute(:sqref, :sqref)
273
+ define_child_node(RubyXL::Scenario, :collection => true)
274
+ define_element_name 'scenarios'
275
+ end
276
+
277
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_ignoredError-1.html
278
+ class IgnoredError < OOXMLObject
279
+ define_attribute(:sqref, :sqref, :required => true)
280
+ define_attribute(:pivot, :bool, :default => false)
281
+ define_attribute(:evalError, :bool, :default => false)
282
+ define_attribute(:twoDigitTextYear, :bool, :default => false)
283
+ define_attribute(:numberStoredAsText, :bool, :default => false)
284
+ define_attribute(:formula, :bool, :default => false)
285
+ define_attribute(:formulaRange, :bool, :default => false)
286
+ define_attribute(:unlockedFormula, :bool, :default => false)
287
+ define_attribute(:emptyCellReference, :bool, :default => false)
288
+ define_attribute(:listDataValidation, :bool, :default => false)
289
+ define_attribute(:calculatedColumn, :bool, :default => false)
290
+ define_element_name 'ignoredError'
291
+ end
292
+
293
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_ignoredErrors-1.html
294
+ class IgnoredErrors < OOXMLContainerObject
295
+ define_child_node(RubyXL::IgnoredError, :collection => true)
296
+ define_child_node(RubyXL::ExtensionStorageArea)
297
+ define_element_name 'ignoredErrors'
298
+ end
299
+
300
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_hyperlink-1.html
301
+ class Hyperlink < OOXMLObject
302
+ define_attribute(:ref, :ref, :required => true)
303
+ define_attribute(:'r:id', :string)
304
+ define_attribute(:location, :string)
305
+ define_attribute(:tooltip, :string)
306
+ define_attribute(:display, :string)
307
+ define_element_name 'hyperlink'
308
+ end
309
+
310
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_hyperlinks-1.html
311
+ class Hyperlinks < OOXMLContainerObject
312
+ define_child_node(RubyXL::Hyperlink, :collection => true)
313
+ define_element_name 'hyperlinks'
314
+ end
315
+
316
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_oleObject-1.html
317
+ class OLEObject < OOXMLObject
318
+ define_attribute(:progId, :string)
319
+ define_attribute(:dvAspect, RubyXL::ST_DvAspect, :default => 'DVASPECT_CONTENT')
320
+ define_attribute(:link, :string)
321
+ define_attribute(:oleUpdate, RubyXL::ST_OleUpdate)
322
+ define_attribute(:autoLoad, :bool, :default => false)
323
+ define_attribute(:shapeId, :int, :required => true)
324
+ define_attribute(:'r:id', :string)
325
+ define_element_name 'oleObject'
326
+ end
327
+
328
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_oleObjects-1.html
329
+ class OLEObjects < OOXMLContainerObject
330
+ define_child_node(RubyXL::OLEObject, :collection => true)
331
+ define_element_name 'oleObjects'
332
+ end
333
+
334
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_dataRef-1.html
335
+ class DataConsolidationReference < OOXMLObject
336
+ define_attribute(:ref, :ref)
337
+ define_attribute(:name, :string)
338
+ define_attribute(:sheet, :string)
339
+ define_attribute(:'r:id', :string)
340
+ define_element_name 'dataRef'
341
+ end
342
+
343
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_dataRefs-1.html
344
+ class DataConsolidationReferences < OOXMLContainerObject
345
+ define_child_node(RubyXL::DataConsolidationReference, :collection => :with_count)
346
+ define_element_name 'dataRefs'
347
+ end
348
+
349
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_dataConsolidate-1.html
350
+ class DataConsolidate < OOXMLObject
351
+ define_attribute(:function, RubyXL::ST_DataConsolidateFunction, :default => 'sum')
352
+ define_attribute(:leftLabels, :bool, :default => false)
353
+ define_attribute(:topLabels, :bool, :default => false)
354
+ define_attribute(:link, :bool, :default => false)
355
+ define_child_node(RubyXL::DataConsolidationReferences)
356
+ define_element_name 'dataConsolidate'
357
+ end
358
+
359
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_pane-1.html
360
+ class Pane < OOXMLObject
361
+ define_attribute(:xSplit, :double)
362
+ define_attribute(:ySplit, :double)
363
+ define_attribute(:topLeftCell, :string)
364
+ define_attribute(:activePane, RubyXL::ST_Pane, :default => 'topLeft', )
365
+ define_attribute(:state, RubyXL::ST_PaneState, :default=> 'split')
366
+ define_element_name 'pane'
367
+ end
368
+
369
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_selection-1.html
370
+ class Selection < OOXMLObject
371
+ define_attribute(:pane, RubyXL::ST_Pane)
372
+ define_attribute(:activeCell, :ref)
373
+ define_attribute(:activeCellId, :int) # 0-based index of @active_cell in @sqref
374
+ define_attribute(:sqref, :sqref) # Array of references to the selected cells.
375
+ define_element_name 'selection'
376
+
377
+ def before_write_xml
378
+ # Normally, rindex of activeCellId in sqref:
379
+ # <selection activeCell="E12" activeCellId="9" sqref="A4 B6 C8 D10 E12 A4 B6 C8 D10 E12"/>
380
+ if @active_cell_id.nil? && !@active_cell.nil? && @sqref.size > 1 then
381
+ # But, things can be more complex:
382
+ # <selection activeCell="E8" activeCellId="2" sqref="A4:B4 C6:D6 E8:F8"/>
383
+ # Not using .reverse.each here to avoid memory reallocation.
384
+ @sqref.each_with_index { |ref, ind| @active_cell_id = ind if ref.cover?(@active_cell) }
385
+ end
386
+ true
387
+ end
388
+ end
389
+
390
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_customSheetView-1.html
391
+ class CustomSheetView < OOXMLObject
392
+ define_attribute(:guid, :string, :required => true)
393
+ define_attribute(:scale, :int, :default => 100)
394
+ define_attribute(:colorId, :int, :default => 64)
395
+ define_attribute(:showPageBreaks, :bool, :default => false)
396
+ define_attribute(:showFormulas, :bool, :default => false)
397
+ define_attribute(:showGridLines, :bool, :default => true)
398
+ define_attribute(:showRowCol, :bool, :default => true)
399
+ define_attribute(:outlineSymbols, :bool, :default => true)
400
+ define_attribute(:zeroValues, :bool, :default => true)
401
+ define_attribute(:fitToPage, :bool, :default => false)
402
+ define_attribute(:printArea, :bool, :default => false)
403
+ define_attribute(:filter, :bool, :default => false)
404
+ define_attribute(:showAutoFilter, :bool, :default => false)
405
+ define_attribute(:hiddenRows, :bool, :default => false)
406
+ define_attribute(:hiddenColumns, :bool, :default => false)
407
+ define_attribute(:state, RubyXL::ST_Visibility, :default => 'visible')
408
+ define_attribute(:filterUnique, :bool, :default => false)
409
+ define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
410
+ define_attribute(:showRuler, :bool, :default => true)
411
+ define_attribute(:topLeftCell, :ref)
412
+ define_child_node(RubyXL::Pane)
413
+ define_child_node(RubyXL::Selection)
414
+ define_child_node(RubyXL::BreakList, :node_name => :rowBreaks)
415
+ define_child_node(RubyXL::BreakList, :node_name => :colBreaks)
416
+ define_child_node(RubyXL::PageMargins)
417
+ define_child_node(RubyXL::PrintOptions)
418
+ define_child_node(RubyXL::PageSetup)
419
+ define_child_node(RubyXL::HeaderFooterSettings)
420
+ define_child_node(RubyXL::AutoFilter)
421
+ define_child_node(RubyXL::ExtensionStorageArea)
422
+ define_element_name 'customSheetView'
423
+ end
424
+
425
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_customSheetViews-1.html
426
+ class CustomSheetViews < OOXMLContainerObject
427
+ define_child_node(RubyXL::CustomSheetView, :collection => true)
428
+ define_element_name 'customSheetViews'
429
+ end
430
+
431
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_control-1.html
432
+ class EmbeddedControl < OOXMLObject
433
+ define_attribute(:shapeId, :int, :required => :true)
434
+ define_attribute(:'r:id', :string, :required => :true)
435
+ define_attribute(:name, :string)
436
+ define_element_name 'control'
437
+ end
438
+
439
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_controls-1.html
440
+ class EmbeddedControls < OOXMLContainerObject
441
+ define_child_node(RubyXL::EmbeddedControl, :collection => true)
442
+ define_element_name 'controls'
443
+ end
444
+
445
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cellWatch-1.html
446
+ class CellWatch < OOXMLObject
447
+ define_attribute(:r, :ref)
448
+ define_element_name 'cellWatch'
449
+ end
450
+
451
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cellWatches-1.html
452
+ class CellWatches < OOXMLContainerObject
453
+ define_child_node(RubyXL::CellWatch, :collection => true)
454
+ define_element_name 'cellWatches'
455
+ end
456
+
457
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTagPr-1.html
458
+ class CellSmartTagProperty < OOXMLObject
459
+ define_attribute(:key, :string, :required => :true)
460
+ define_attribute(:val, :string, :required => :true)
461
+ define_element_name 'cellSmartTagPr'
462
+ end
463
+
464
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTag-1.html
465
+ class CellSmartTag < OOXMLObject
466
+ define_attribute(:type, :int, :required => :true)
467
+ define_attribute(:deleted, :bool, :default => false)
468
+ define_attribute(:xmlBased, :bool, :default => false)
469
+ define_child_node(RubyXL::CellSmartTagProperty, :collection => :true, :accessor => :smart_tag_props)
470
+ define_element_name 'cellSmartTag'
471
+ end
472
+
473
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_cellSmartTags-1.html
474
+ class CellSmartTags < OOXMLContainerObject
475
+ define_attribute(:r, :ref, :accessor => :ref)
476
+ define_child_node(RubyXL::CellSmartTag, :collection => :true)
477
+ define_element_name 'cellSmartTags'
478
+ end
479
+
480
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_smartTags-1.html
481
+ class SmartTags < OOXMLContainerObject
482
+ define_child_node(RubyXL::CellSmartTags, :collection => :true)
483
+ define_element_name 'smartTags'
484
+ end
485
+
486
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_customPr-1.html
487
+ class CustomProperty < OOXMLObject
488
+ define_attribute(:name, :string, :required => :true)
489
+ define_attribute(:'r:id', :string, :required => :true)
490
+ define_element_name 'customPr'
491
+ end
492
+
493
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_customProperties-1.html
494
+ class CustomProperties < OOXMLContainerObject
495
+ define_child_node(RubyXL::CustomProperty, :collection => :true)
496
+ define_element_name 'customProperties'
497
+ end
498
+
499
+ # http://www.datypic.com/sc/ooxml/t-ssml_CT_Index.html
500
+ class FieldItem < OOXMLObject
501
+ define_attribute(:v, :uint, :required => true)
502
+ define_element_name 'x'
503
+ end
504
+
505
+ # http://www.datypic.com/sc/ooxml/t-ssml_CT_PivotAreaReference.html
506
+ class PivotReference < OOXMLObject
507
+ define_attribute(:field, :uint)
508
+ define_attribute(:selected, :bool, :default => true)
509
+ define_attribute(:byPosition, :bool, :default => false)
510
+ define_attribute(:relative, :bool, :default => false)
511
+ define_attribute(:defaultSubtotal, :bool, :default => false)
512
+ define_attribute(:sumSubtotal, :bool, :default => false)
513
+ define_attribute(:countASubtotal, :bool, :default => false)
514
+ define_attribute(:avgSubtotal, :bool, :default => false)
515
+ define_attribute(:maxSubtotal, :bool, :default => false)
516
+ define_attribute(:minSubtotal, :bool, :default => false)
517
+ define_attribute(:productSubtotal, :bool, :default => false)
518
+ define_attribute(:countSubtotal, :bool, :default => false)
519
+ define_attribute(:stdDevSubtotal, :bool, :default => false)
520
+ define_attribute(:stdDevPSubtotal, :bool, :default => false)
521
+ define_attribute(:varSubtotal, :bool, :default => false)
522
+ define_attribute(:varPSubtotal, :bool, :default => false)
523
+ define_child_node(RubyXL::FieldItem, :collection => :with_count, :accessor => :field_items)
524
+ define_child_node(RubyXL::ExtensionStorageArea)
525
+ define_element_name 'reference'
526
+ end
527
+
528
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_references-1.html
529
+ class PivotReferences < OOXMLContainerObject
530
+ define_child_node(RubyXL::PivotReference, :collection => :with_count)
531
+ define_element_name 'references'
532
+ end
533
+
534
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_pivotArea-4.html
535
+ class PivotArea < OOXMLObject
536
+ define_attribute(:field, :int)
537
+ define_attribute(:type, RubyXL::ST_PivotAreaType, :default => 'normal')
538
+ define_attribute(:dataOnly, :bool, :default => true)
539
+ define_attribute(:labelOnly, :bool, :default => false)
540
+ define_attribute(:grandRow, :bool, :default => false)
541
+ define_attribute(:grandCol, :bool, :default => false)
542
+ define_attribute(:cacheIndex, :bool, :default => false)
543
+ define_attribute(:outline, :bool, :default => true)
544
+ define_attribute(:offset, :ref)
545
+ define_attribute(:collapsedLevelsAreSubtotals, :bool, :default => false)
546
+ define_attribute(:axis, RubyXL::ST_Axis)
547
+ define_attribute(:fieldPosition, :int, :default => 0)
548
+ define_child_node(RubyXL::PivotReferences)
549
+ define_child_node(RubyXL::ExtensionStorageArea)
550
+ define_element_name 'pivotArea'
551
+ end
552
+
553
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_pivotSelection-1.html
554
+ class PivotTableSelection < OOXMLObject
555
+ define_attribute(:pane, RubyXL::ST_Pane, :default => 'topLeft')
556
+ define_attribute(:showHeader, :bool, :default => false)
557
+ define_attribute(:label, :bool, :default => false)
558
+ define_attribute(:data, :bool, :default => false)
559
+ define_attribute(:extendable, :bool, :default => false)
560
+ define_attribute(:count, :int, :default => 0)
561
+ define_attribute(:axis, RubyXL::ST_Axis)
562
+ define_attribute(:dimension, :int, :default => 0)
563
+ define_attribute(:start, :int, :default => 0)
564
+ define_attribute(:min, :int, :default => 0)
565
+ define_attribute(:max, :int, :default => 0)
566
+ define_attribute(:activeRow, :int, :default => 0)
567
+ define_attribute(:activeCol, :int, :default => 0)
568
+ define_attribute(:previousRow, :int, :default => 0)
569
+ define_attribute(:previousCol, :int, :default => 0)
570
+ define_attribute(:click, :int, :default => 0)
571
+ define_attribute(:'r:id', :string)
572
+ define_child_node(RubyXL::PivotArea)
573
+ define_element_name 'pivotSelection'
574
+ end
575
+
576
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetView-1.html
577
+ class WorksheetView < OOXMLObject
578
+ define_attribute(:windowProtection, :bool, :default => false)
579
+ define_attribute(:showFormulas, :bool, :default => false)
580
+ define_attribute(:showGridLines, :bool, :default => true)
581
+ define_attribute(:showRowColHeaders, :bool, :default => true)
582
+ define_attribute(:showZeros, :bool, :default => true)
583
+ define_attribute(:rightToLeft, :bool, :default => false)
584
+ define_attribute(:tabSelected, :bool, :default => false)
585
+ define_attribute(:showRuler, :bool, :default => true)
586
+ define_attribute(:showOutlineSymbols, :bool, :default => true)
587
+ define_attribute(:defaultGridColor, :bool, :default => true)
588
+ define_attribute(:showWhiteSpace, :bool, :default => true)
589
+ define_attribute(:view, RubyXL::ST_SheetViewType, :default => 'normal')
590
+ define_attribute(:topLeftCell, :ref)
591
+ define_attribute(:colorId, :int, :default => 64)
592
+ define_attribute(:zoomScale, :int, :default => 100)
593
+ define_attribute(:zoomScaleNormal, :int, :default => 0)
594
+ define_attribute(:zoomScaleSheetLayoutView, :bool, :default => 0)
595
+ define_attribute(:zoomScalePageLayoutView, :bool, :default => 0)
596
+ define_attribute(:workbookViewId, :int, :required => true, :default => 0 )
597
+ define_child_node(RubyXL::Pane)
598
+ define_child_node(RubyXL::Selection, :collection => true, :accessor => :selections)
599
+ define_child_node(RubyXL::PivotTableSelection, :collection => true, :accessor => :pivot_table_selections )
600
+ define_child_node(RubyXL::ExtensionStorageArea)
601
+ define_element_name 'sheetView'
602
+ end
603
+
604
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_sheetViews-3.html
605
+ class WorksheetViews < OOXMLContainerObject
606
+ define_child_node(RubyXL::WorksheetView, :collection => true)
607
+ define_child_node(RubyXL::ExtensionStorageArea)
608
+ define_element_name 'sheetViews'
609
+ end
610
+
611
+ # http://www.schemacentral.com/sc/ooxml/e-ssml_worksheet.html
612
+ class Worksheet < OOXMLTopLevelObject
613
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
614
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
615
+
616
+ include RubyXL::RelationshipSupport
617
+
618
+ def related_objects
619
+ comments + printer_settings
620
+ end
621
+
622
+ define_relationship(RubyXL::PrinterSettingsFile, :printer_settings)
623
+ define_relationship(RubyXL::CommentsFile, :comments)
624
+ define_relationship(RubyXL::VMLDrawingFile)
625
+ define_relationship(RubyXL::DrawingFile)
626
+ define_relationship(RubyXL::BinaryImageFile)
627
+ define_relationship(RubyXL::PivotTableFile)
628
+ define_relationship(RubyXL::TableFile)
629
+ define_relationship(RubyXL::ControlPropertiesFile)
630
+ define_relationship(RubyXL::SlicerFile)
631
+
632
+ define_child_node(RubyXL::WorksheetProperties)
633
+ define_child_node(RubyXL::WorksheetDimensions)
634
+ define_child_node(RubyXL::WorksheetViews)
635
+ define_child_node(RubyXL::WorksheetFormatProperties)
636
+ define_child_node(RubyXL::ColumnRanges)
637
+ define_child_node(RubyXL::SheetData)
638
+ define_child_node(RubyXL::SheetCalculationProperties)
639
+ define_child_node(RubyXL::WorksheetProtection)
640
+ define_child_node(RubyXL::ProtectedRanges)
641
+ define_child_node(RubyXL::Scenarios)
642
+ define_child_node(RubyXL::AutoFilter)
643
+ define_child_node(RubyXL::SortState)
644
+ define_child_node(RubyXL::DataConsolidate)
645
+ define_child_node(RubyXL::CustomSheetViews)
646
+ define_child_node(RubyXL::MergedCells, :accessor => :merged_cells)
647
+ define_child_node(RubyXL::PhoneticProperties)
648
+ define_child_node(RubyXL::ConditionalFormatting)
649
+ define_child_node(RubyXL::DataValidations)
650
+ define_child_node(RubyXL::Hyperlinks)
651
+ define_child_node(RubyXL::PrintOptions)
652
+ define_child_node(RubyXL::PageMargins)
653
+ define_child_node(RubyXL::PageSetup)
654
+ define_child_node(RubyXL::HeaderFooterSettings)
655
+ define_child_node(RubyXL::BreakList, :node_name => :rowBreaks)
656
+ define_child_node(RubyXL::BreakList, :node_name => :colBreaks)
657
+ define_child_node(RubyXL::CustomProperties)
658
+ define_child_node(RubyXL::CellWatches)
659
+ define_child_node(RubyXL::IgnoredErrors)
660
+ define_child_node(RubyXL::SmartTags)
661
+ define_child_node(RubyXL::RID, :node_name => :drawing)
662
+ define_child_node(RubyXL::RID, :node_name => :legacyDrawing)
663
+ define_child_node(RubyXL::RID, :node_name => :legacyDrawingHF)
664
+ define_child_node(RubyXL::RID, :node_name => :picture)
665
+ define_child_node(RubyXL::OLEObjects)
666
+ define_child_node(RubyXL::EmbeddedControls)
667
+ define_child_node(RubyXL::WebPublishingItems)
668
+ define_child_node(RubyXL::TableParts)
669
+ define_child_node(RubyXL::ExtensionStorageArea)
670
+ define_child_node(RubyXL::AlternateContent)
671
+ define_element_name 'worksheet'
672
+ set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => '',
673
+ 'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r',
674
+ 'http://schemas.openxmlformats.org/markup-compatibility/2006' => 'mc',
675
+ 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac' => 'x14ac',
676
+ 'urn:schemas-microsoft-com:mac:vml' => 'mv')
677
+
678
+ attr_accessor :workbook, :state, :sheet_name, :sheet_id, :rels
679
+
680
+ def before_write_xml # This method may need to be moved higher in the hierarchy
681
+ first_nonempty_row = nil
682
+ last_nonempty_row = 0
683
+ first_nonempty_column = nil
684
+ last_nonempty_column = 0
685
+
686
+ if sheet_data then
687
+ sheet_data.rows.each_with_index { |row, row_index|
688
+ next if row.nil? || row.cells.empty?
689
+
690
+ first_nonempty_cell = nil
691
+ last_nonempty_cell = 0
692
+
693
+ row.cells.each_with_index { |cell, col_index|
694
+ next if cell.nil?
695
+ cell.r = RubyXL::Reference.new(row_index, col_index)
696
+
697
+ first_nonempty_cell ||= col_index
698
+ last_nonempty_cell = col_index
699
+ }
700
+
701
+ if first_nonempty_cell then # If there's nothing in this row, then +first_nonempty_cell+ will be +nil+.
702
+ last_nonempty_row = row_index
703
+ first_nonempty_row ||= row_index
704
+
705
+ first_nonempty_column ||= first_nonempty_cell
706
+ last_nonempty_column = last_nonempty_cell if last_nonempty_cell > last_nonempty_column
707
+ end
708
+
709
+ row.r = row_index + 1
710
+ row.spans = "#{first_nonempty_cell + 1}:#{last_nonempty_cell + 1}" unless first_nonempty_cell.nil?
711
+ row.custom_format = (row.style_index.to_i != 0)
712
+ }
713
+
714
+ if first_nonempty_row then
715
+ self.dimension ||= RubyXL::WorksheetDimensions.new
716
+ self.dimension.ref = RubyXL::Reference.new(first_nonempty_row, last_nonempty_row,
717
+ first_nonempty_column, last_nonempty_column)
718
+ end
719
+
720
+ end
721
+
722
+ true
723
+ end
724
+
725
+ def xlsx_path
726
+ ROOT.join('xl', 'worksheets', "sheet#{file_index}.xml")
727
+ end
728
+
729
+ def self.parse(param)
730
+ sheet_obj = super
731
+ sheet_obj.sheet_data.rows.each { |r|
732
+ next if r.nil?
733
+ r.worksheet = sheet_obj
734
+ r.cells.each { |c| c.worksheet = sheet_obj unless c.nil? }
735
+ }
736
+ sheet_obj
737
+ end
738
+
739
+ include LegacyWorksheet
740
+ end
741
+
742
+ end