rubyXL 3.0.2 → 3.1.0

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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/lib/rubyXL/cell.rb +1 -1
  4. data/lib/rubyXL/objects/border.rb +0 -1
  5. data/lib/rubyXL/objects/cell_style.rb +0 -1
  6. data/lib/rubyXL/objects/chartsheet.rb +2 -11
  7. data/lib/rubyXL/objects/fill.rb +0 -1
  8. data/lib/rubyXL/objects/font.rb +0 -1
  9. data/lib/rubyXL/objects/ooxml_object.rb +31 -9
  10. data/lib/rubyXL/objects/relationships.rb +1 -1
  11. data/lib/rubyXL/objects/root.rb +48 -15
  12. data/lib/rubyXL/objects/sheet_common.rb +1 -0
  13. data/lib/rubyXL/objects/storage.rb +8 -15
  14. data/lib/rubyXL/objects/workbook.rb +19 -25
  15. data/lib/rubyXL/objects/worksheet.rb +21 -28
  16. data/lib/rubyXL/parser.rb +0 -15
  17. data/lib/rubyXL/workbook.rb +22 -71
  18. data/lib/rubyXL/worksheet.rb +0 -9
  19. data/rdoc/README_rdoc.html +1 -1
  20. data/rdoc/RubyXL.html +1 -1
  21. data/rdoc/RubyXL/AExtension.html +1 -1
  22. data/rdoc/RubyXL/AExtensionStorageArea.html +1 -1
  23. data/rdoc/RubyXL/AdjustHandleList.html +1 -1
  24. data/rdoc/RubyXL/Alignment.html +1 -1
  25. data/rdoc/RubyXL/AlternateContent.html +1 -1
  26. data/rdoc/RubyXL/Authors.html +1 -1
  27. data/rdoc/RubyXL/AutoFilter.html +1 -1
  28. data/rdoc/RubyXL/AutoFilterColumn.html +1 -1
  29. data/rdoc/RubyXL/BinaryImageFile.html +1 -1
  30. data/rdoc/RubyXL/BodyProperties.html +1 -1
  31. data/rdoc/RubyXL/BooleanNode.html +1 -1
  32. data/rdoc/RubyXL/BooleanValue.html +1 -1
  33. data/rdoc/RubyXL/Border.html +1 -1
  34. data/rdoc/RubyXL/BorderEdge.html +1 -1
  35. data/rdoc/RubyXL/Borders.html +1 -1
  36. data/rdoc/RubyXL/Break.html +1 -1
  37. data/rdoc/RubyXL/BreakList.html +1 -1
  38. data/rdoc/RubyXL/CT_AdjPoint2D.html +1 -1
  39. data/rdoc/RubyXL/CT_AlphaBiLevelEffect.html +1 -1
  40. data/rdoc/RubyXL/CT_AlphaModulateEffect.html +1 -1
  41. data/rdoc/RubyXL/CT_AlphaModulateFixedEffect.html +1 -1
  42. data/rdoc/RubyXL/CT_AlphaOutsetEffect.html +1 -1
  43. data/rdoc/RubyXL/CT_AlphaReplaceEffect.html +1 -1
  44. data/rdoc/RubyXL/CT_Backdrop.html +1 -1
  45. data/rdoc/RubyXL/CT_Bevel.html +1 -1
  46. data/rdoc/RubyXL/CT_BiLevelEffect.html +1 -1
  47. data/rdoc/RubyXL/CT_BlendEffect.html +1 -1
  48. data/rdoc/RubyXL/CT_Blip.html +1 -1
  49. data/rdoc/RubyXL/CT_BlipFillProperties.html +1 -1
  50. data/rdoc/RubyXL/CT_BlurEffect.html +1 -1
  51. data/rdoc/RubyXL/CT_Camera.html +1 -1
  52. data/rdoc/RubyXL/CT_Color.html +1 -1
  53. data/rdoc/RubyXL/CT_ColorChangeEffect.html +1 -1
  54. data/rdoc/RubyXL/CT_ColorMapping.html +1 -1
  55. data/rdoc/RubyXL/CT_ColorScheme.html +1 -1
  56. data/rdoc/RubyXL/CT_ColorSchemeAndMapping.html +1 -1
  57. data/rdoc/RubyXL/CT_ConnectionSite.html +1 -1
  58. data/rdoc/RubyXL/CT_ConnectionSiteList.html +1 -1
  59. data/rdoc/RubyXL/CT_DashStop.html +1 -1
  60. data/rdoc/RubyXL/CT_DashStopList.html +1 -1
  61. data/rdoc/RubyXL/CT_DefaultShapeDefinition.html +1 -1
  62. data/rdoc/RubyXL/CT_DuotoneEffect.html +1 -1
  63. data/rdoc/RubyXL/CT_EffectContainer.html +1 -1
  64. data/rdoc/RubyXL/CT_EffectList.html +1 -1
  65. data/rdoc/RubyXL/CT_EffectReference.html +1 -1
  66. data/rdoc/RubyXL/CT_EffectStyleItem.html +1 -1
  67. data/rdoc/RubyXL/CT_EffectStyleList.html +1 -1
  68. data/rdoc/RubyXL/CT_EmbeddedWAVAudioFile.html +1 -1
  69. data/rdoc/RubyXL/CT_FillEffect.html +1 -1
  70. data/rdoc/RubyXL/CT_FillOverlayEffect.html +1 -1
  71. data/rdoc/RubyXL/CT_FillStyleList.html +1 -1
  72. data/rdoc/RubyXL/CT_FlatText.html +1 -1
  73. data/rdoc/RubyXL/CT_FontCollection.html +1 -1
  74. data/rdoc/RubyXL/CT_FontReference.html +1 -1
  75. data/rdoc/RubyXL/CT_GeomGuideList.html +1 -1
  76. data/rdoc/RubyXL/CT_GlowEffect.html +1 -1
  77. data/rdoc/RubyXL/CT_GradientFillProperties.html +1 -1
  78. data/rdoc/RubyXL/CT_GradientStop.html +1 -1
  79. data/rdoc/RubyXL/CT_GradientStopList.html +1 -1
  80. data/rdoc/RubyXL/CT_HSLEffect.html +1 -1
  81. data/rdoc/RubyXL/CT_HslColor.html +1 -1
  82. data/rdoc/RubyXL/CT_Hyperlink.html +1 -1
  83. data/rdoc/RubyXL/CT_InnerShadowEffect.html +1 -1
  84. data/rdoc/RubyXL/CT_LightRig.html +1 -1
  85. data/rdoc/RubyXL/CT_LineEndProperties.html +1 -1
  86. data/rdoc/RubyXL/CT_LineJoinMiterProperties.html +1 -1
  87. data/rdoc/RubyXL/CT_LineProperties.html +1 -1
  88. data/rdoc/RubyXL/CT_LineStyleList.html +1 -1
  89. data/rdoc/RubyXL/CT_LinearShadeProperties.html +1 -1
  90. data/rdoc/RubyXL/CT_LuminanceEffect.html +1 -1
  91. data/rdoc/RubyXL/CT_ObjectStyleDefaults.html +1 -1
  92. data/rdoc/RubyXL/CT_OuterShadowEffect.html +1 -1
  93. data/rdoc/RubyXL/CT_Path2D.html +1 -1
  94. data/rdoc/RubyXL/CT_Path2DArcTo.html +1 -1
  95. data/rdoc/RubyXL/CT_Path2DCubicBezierTo.html +1 -1
  96. data/rdoc/RubyXL/CT_Path2DList.html +1 -1
  97. data/rdoc/RubyXL/CT_Path2DQuadBezierTo.html +1 -1
  98. data/rdoc/RubyXL/CT_Path2DTo.html +1 -1
  99. data/rdoc/RubyXL/CT_PathShadeProperties.html +1 -1
  100. data/rdoc/RubyXL/CT_PatternFillProperties.html +1 -1
  101. data/rdoc/RubyXL/CT_Point3D.html +1 -1
  102. data/rdoc/RubyXL/CT_PolarAdjustHandle.html +1 -1
  103. data/rdoc/RubyXL/CT_PresetColor.html +1 -1
  104. data/rdoc/RubyXL/CT_PresetLineDashProperties.html +1 -1
  105. data/rdoc/RubyXL/CT_PresetShadowEffect.html +1 -1
  106. data/rdoc/RubyXL/CT_PresetTextShape.html +1 -1
  107. data/rdoc/RubyXL/CT_ReflectionEffect.html +1 -1
  108. data/rdoc/RubyXL/CT_RelativeOffsetEffect.html +1 -1
  109. data/rdoc/RubyXL/CT_RelativeRect.html +1 -1
  110. data/rdoc/RubyXL/CT_SRgbColor.html +1 -1
  111. data/rdoc/RubyXL/CT_ScRgbColor.html +1 -1
  112. data/rdoc/RubyXL/CT_Scene3D.html +1 -1
  113. data/rdoc/RubyXL/CT_SchemeColor.html +1 -1
  114. data/rdoc/RubyXL/CT_Shape3D.html +1 -1
  115. data/rdoc/RubyXL/CT_ShapeStyle.html +1 -1
  116. data/rdoc/RubyXL/CT_SoftEdgesEffect.html +1 -1
  117. data/rdoc/RubyXL/CT_SphereCoords.html +1 -1
  118. data/rdoc/RubyXL/CT_StretchInfoProperties.html +1 -1
  119. data/rdoc/RubyXL/CT_StyleMatrix.html +1 -1
  120. data/rdoc/RubyXL/CT_StyleMatrixReference.html +1 -1
  121. data/rdoc/RubyXL/CT_SupplementalFont.html +1 -1
  122. data/rdoc/RubyXL/CT_SystemColor.html +1 -1
  123. data/rdoc/RubyXL/CT_TextAutonumberBullet.html +1 -1
  124. data/rdoc/RubyXL/CT_TextBlipBullet.html +1 -1
  125. data/rdoc/RubyXL/CT_TextCharBullet.html +1 -1
  126. data/rdoc/RubyXL/CT_TextCharacterProperties.html +1 -1
  127. data/rdoc/RubyXL/CT_TextFont.html +1 -1
  128. data/rdoc/RubyXL/CT_TextListStyle.html +1 -1
  129. data/rdoc/RubyXL/CT_TextNormalAutofit.html +1 -1
  130. data/rdoc/RubyXL/CT_TextParagraphProperties.html +1 -1
  131. data/rdoc/RubyXL/CT_TextSpacing.html +1 -1
  132. data/rdoc/RubyXL/CT_TextTabStop.html +1 -1
  133. data/rdoc/RubyXL/CT_TextTabStopList.html +1 -1
  134. data/rdoc/RubyXL/CT_TileInfoProperties.html +1 -1
  135. data/rdoc/RubyXL/CT_TintEffect.html +1 -1
  136. data/rdoc/RubyXL/CT_Transform2D.html +1 -1
  137. data/rdoc/RubyXL/CT_TransformEffect.html +1 -1
  138. data/rdoc/RubyXL/CT_Vector3D.html +1 -1
  139. data/rdoc/RubyXL/CT_XYAdjustHandle.html +1 -1
  140. data/rdoc/RubyXL/CalculationChain.html +1 -1
  141. data/rdoc/RubyXL/CalculationChainCell.html +1 -1
  142. data/rdoc/RubyXL/CalculationProperties.html +1 -1
  143. data/rdoc/RubyXL/Cell.html +1 -1
  144. data/rdoc/RubyXL/CellSmartTag.html +1 -1
  145. data/rdoc/RubyXL/CellSmartTagProperty.html +1 -1
  146. data/rdoc/RubyXL/CellSmartTags.html +1 -1
  147. data/rdoc/RubyXL/CellStyle.html +1 -1
  148. data/rdoc/RubyXL/CellStyleXFs.html +1 -1
  149. data/rdoc/RubyXL/CellStyles.html +1 -1
  150. data/rdoc/RubyXL/CellValue.html +1 -1
  151. data/rdoc/RubyXL/CellWatch.html +1 -1
  152. data/rdoc/RubyXL/CellWatches.html +1 -1
  153. data/rdoc/RubyXL/CellXFs.html +1 -1
  154. data/rdoc/RubyXL/ChartColorsFile.html +1 -1
  155. data/rdoc/RubyXL/ChartFile.html +1 -1
  156. data/rdoc/RubyXL/ChartRelationshipsFile.html +1 -1
  157. data/rdoc/RubyXL/ChartStyleFile.html +1 -1
  158. data/rdoc/RubyXL/ChartUserShapesFile.html +1 -1
  159. data/rdoc/RubyXL/Chartsheet.html +1 -1
  160. data/rdoc/RubyXL/ChartsheetPageSetup.html +1 -1
  161. data/rdoc/RubyXL/ChartsheetProperties.html +1 -1
  162. data/rdoc/RubyXL/ChartsheetProtection.html +1 -1
  163. data/rdoc/RubyXL/ChartsheetView.html +1 -1
  164. data/rdoc/RubyXL/ChartsheetViews.html +1 -1
  165. data/rdoc/RubyXL/Color.html +1 -1
  166. data/rdoc/RubyXL/ColorFilter.html +1 -1
  167. data/rdoc/RubyXL/ColorScale.html +1 -1
  168. data/rdoc/RubyXL/ColorSet.html +1 -1
  169. data/rdoc/RubyXL/Colors.html +1 -1
  170. data/rdoc/RubyXL/ColumnRange.html +1 -1
  171. data/rdoc/RubyXL/ColumnRanges.html +1 -1
  172. data/rdoc/RubyXL/Comment.html +1 -1
  173. data/rdoc/RubyXL/CommentList.html +1 -1
  174. data/rdoc/RubyXL/CommentsFile.html +1 -1
  175. data/rdoc/RubyXL/ConditionalFormatValue.html +1 -1
  176. data/rdoc/RubyXL/ConditionalFormatting.html +1 -1
  177. data/rdoc/RubyXL/ConditionalFormattingRule.html +1 -1
  178. data/rdoc/RubyXL/ContentTypeDefault.html +1 -1
  179. data/rdoc/RubyXL/ContentTypeOverride.html +1 -1
  180. data/rdoc/RubyXL/ContentTypes.html +1 -1
  181. data/rdoc/RubyXL/ControlPropertiesFile.html +1 -1
  182. data/rdoc/RubyXL/CorePropertiesFile.html +1 -1
  183. data/rdoc/RubyXL/CustomColor.html +1 -1
  184. data/rdoc/RubyXL/CustomColorList.html +1 -1
  185. data/rdoc/RubyXL/CustomFilter.html +1 -1
  186. data/rdoc/RubyXL/CustomFilters.html +1 -1
  187. data/rdoc/RubyXL/CustomGeometry.html +1 -1
  188. data/rdoc/RubyXL/CustomProperties.html +1 -1
  189. data/rdoc/RubyXL/CustomPropertiesFile.html +1 -1
  190. data/rdoc/RubyXL/CustomProperty.html +1 -1
  191. data/rdoc/RubyXL/CustomSheetView.html +1 -1
  192. data/rdoc/RubyXL/CustomSheetViews.html +1 -1
  193. data/rdoc/RubyXL/CustomWorkbookView.html +1 -1
  194. data/rdoc/RubyXL/CustomWorkbookViews.html +1 -1
  195. data/rdoc/RubyXL/CustomXMLFile.html +1 -1
  196. data/rdoc/RubyXL/DXF.html +1 -1
  197. data/rdoc/RubyXL/DXFs.html +1 -1
  198. data/rdoc/RubyXL/DataBar.html +1 -1
  199. data/rdoc/RubyXL/DataConsolidate.html +1 -1
  200. data/rdoc/RubyXL/DataConsolidationReference.html +1 -1
  201. data/rdoc/RubyXL/DataConsolidationReferences.html +1 -1
  202. data/rdoc/RubyXL/DataType.html +1 -1
  203. data/rdoc/RubyXL/DataValidation.html +1 -1
  204. data/rdoc/RubyXL/DataValidations.html +1 -1
  205. data/rdoc/RubyXL/DateGroupItem.html +1 -1
  206. data/rdoc/RubyXL/DefinedName.html +1 -1
  207. data/rdoc/RubyXL/DefinedNames.html +1 -1
  208. data/rdoc/RubyXL/DocumentPropertiesFile.html +1 -1
  209. data/rdoc/RubyXL/DrawingFile.html +7 -37
  210. data/rdoc/RubyXL/DrawingRelationshipsFile.html +1 -1
  211. data/rdoc/RubyXL/DynamicFilter.html +1 -1
  212. data/rdoc/RubyXL/EmbeddedControl.html +1 -1
  213. data/rdoc/RubyXL/EmbeddedControls.html +1 -1
  214. data/rdoc/RubyXL/Extension.html +1 -1
  215. data/rdoc/RubyXL/ExtensionStorageArea.html +1 -1
  216. data/rdoc/RubyXL/Extents.html +1 -1
  217. data/rdoc/RubyXL/ExternalLinksFile.html +1 -1
  218. data/rdoc/RubyXL/ExternalReference.html +1 -1
  219. data/rdoc/RubyXL/ExternalReferences.html +1 -1
  220. data/rdoc/RubyXL/ExtraColorSchemeList.html +1 -1
  221. data/rdoc/RubyXL/FieldItem.html +1 -1
  222. data/rdoc/RubyXL/FileRecoveryProperties.html +1 -1
  223. data/rdoc/RubyXL/FileSharing.html +1 -1
  224. data/rdoc/RubyXL/FileVersion.html +1 -1
  225. data/rdoc/RubyXL/Fill.html +1 -1
  226. data/rdoc/RubyXL/Fills.html +1 -1
  227. data/rdoc/RubyXL/FilterContainer.html +1 -1
  228. data/rdoc/RubyXL/FloatNode.html +1 -1
  229. data/rdoc/RubyXL/FloatValue.html +1 -1
  230. data/rdoc/RubyXL/Font.html +16 -16
  231. data/rdoc/RubyXL/FontScheme.html +1 -1
  232. data/rdoc/RubyXL/Fonts.html +1 -1
  233. data/rdoc/RubyXL/Formula.html +1 -1
  234. data/rdoc/RubyXL/FunctionGroup.html +1 -1
  235. data/rdoc/RubyXL/FunctionGroups.html +1 -1
  236. data/rdoc/RubyXL/GenericStorageObject.html +5 -6
  237. data/rdoc/RubyXL/GradientFill.html +1 -1
  238. data/rdoc/RubyXL/HeaderFooterSettings.html +1 -1
  239. data/rdoc/RubyXL/Hyperlink.html +1 -1
  240. data/rdoc/RubyXL/HyperlinkRelFile.html +1 -1
  241. data/rdoc/RubyXL/Hyperlinks.html +1 -1
  242. data/rdoc/RubyXL/IconFilter.html +1 -1
  243. data/rdoc/RubyXL/IconSet.html +1 -1
  244. data/rdoc/RubyXL/IgnoredError.html +1 -1
  245. data/rdoc/RubyXL/IgnoredErrors.html +1 -1
  246. data/rdoc/RubyXL/IndexedColors.html +1 -1
  247. data/rdoc/RubyXL/InputCells.html +1 -1
  248. data/rdoc/RubyXL/IntegerNode.html +1 -1
  249. data/rdoc/RubyXL/IntegerValue.html +1 -1
  250. data/rdoc/RubyXL/LegacyCell.html +1 -1
  251. data/rdoc/RubyXL/LegacyWorkbook.html +109 -115
  252. data/rdoc/RubyXL/LegacyWorksheet.html +40 -42
  253. data/rdoc/RubyXL/MRUColors.html +1 -1
  254. data/rdoc/RubyXL/MacrosFile.html +1 -1
  255. data/rdoc/RubyXL/MergedCell.html +1 -1
  256. data/rdoc/RubyXL/MergedCells.html +1 -1
  257. data/rdoc/RubyXL/NumFmt.html +1 -1
  258. data/rdoc/RubyXL/NumberFormat.html +1 -1
  259. data/rdoc/RubyXL/NumberFormats.html +1 -1
  260. data/rdoc/RubyXL/OLEObject.html +1 -1
  261. data/rdoc/RubyXL/OLEObjects.html +1 -1
  262. data/rdoc/RubyXL/OLESize.html +1 -1
  263. data/rdoc/RubyXL/OOXMLContainerObject.html +1 -1
  264. data/rdoc/RubyXL/OOXMLObject.html +1 -1
  265. data/rdoc/RubyXL/OOXMLObjectClassMethods.html +2 -38
  266. data/rdoc/RubyXL/OOXMLObjectInstanceMethods.html +1 -1
  267. data/rdoc/RubyXL/OOXMLRelationshipsFile.html +1 -1
  268. data/rdoc/RubyXL/OOXMLTopLevelObject.html +1 -1
  269. data/rdoc/RubyXL/Offset.html +1 -1
  270. data/rdoc/RubyXL/OutlineProperties.html +1 -1
  271. data/rdoc/RubyXL/PageMargins.html +1 -1
  272. data/rdoc/RubyXL/PageSetup.html +1 -1
  273. data/rdoc/RubyXL/PageSetupProperties.html +1 -1
  274. data/rdoc/RubyXL/Pane.html +1 -1
  275. data/rdoc/RubyXL/Parser.html +1 -16
  276. data/rdoc/RubyXL/PatternFill.html +1 -1
  277. data/rdoc/RubyXL/PhoneticProperties.html +1 -1
  278. data/rdoc/RubyXL/PhoneticRun.html +1 -1
  279. data/rdoc/RubyXL/PivotArea.html +1 -1
  280. data/rdoc/RubyXL/PivotCache.html +1 -1
  281. data/rdoc/RubyXL/PivotCacheDefinitionFile.html +1 -1
  282. data/rdoc/RubyXL/PivotCaches.html +1 -1
  283. data/rdoc/RubyXL/PivotReference.html +1 -1
  284. data/rdoc/RubyXL/PivotReferences.html +1 -1
  285. data/rdoc/RubyXL/PivotTableFile.html +1 -1
  286. data/rdoc/RubyXL/PivotTableSelection.html +1 -1
  287. data/rdoc/RubyXL/PresetGeometry.html +1 -1
  288. data/rdoc/RubyXL/PrintOptions.html +1 -1
  289. data/rdoc/RubyXL/PrinterSettingsFile.html +1 -1
  290. data/rdoc/RubyXL/ProtectedRange.html +1 -1
  291. data/rdoc/RubyXL/ProtectedRanges.html +1 -1
  292. data/rdoc/RubyXL/Protection.html +1 -1
  293. data/rdoc/RubyXL/REL_CLASS.html +105 -0
  294. data/rdoc/RubyXL/RID.html +1 -1
  295. data/rdoc/RubyXL/RawOOXML.html +1 -1
  296. data/rdoc/RubyXL/Reference.html +1 -1
  297. data/rdoc/RubyXL/Relationship.html +1 -1
  298. data/rdoc/RubyXL/RelationshipSupport.html +1 -1
  299. data/rdoc/RubyXL/RichText.html +1 -1
  300. data/rdoc/RubyXL/RichTextRun.html +1 -1
  301. data/rdoc/RubyXL/RootRelationships.html +1 -1
  302. data/rdoc/RubyXL/Row.html +1 -1
  303. data/rdoc/RubyXL/RunProperties.html +1 -1
  304. data/rdoc/RubyXL/Scenario.html +1 -1
  305. data/rdoc/RubyXL/Scenarios.html +1 -1
  306. data/rdoc/RubyXL/Selection.html +1 -1
  307. data/rdoc/RubyXL/ShapeGuide.html +1 -1
  308. data/rdoc/RubyXL/ShapeTextRectangle.html +1 -1
  309. data/rdoc/RubyXL/SharedStringsTable.html +1 -1
  310. data/rdoc/RubyXL/Sheet.html +1 -1
  311. data/rdoc/RubyXL/SheetCalculationProperties.html +1 -1
  312. data/rdoc/RubyXL/SheetData.html +1 -1
  313. data/rdoc/RubyXL/SheetRelationshipsFile.html +1 -1
  314. data/rdoc/RubyXL/Sheets.html +1 -1
  315. data/rdoc/RubyXL/SlicerCacheFile.html +1 -1
  316. data/rdoc/RubyXL/SlicerFile.html +1 -1
  317. data/rdoc/RubyXL/SmartTagProperties.html +1 -1
  318. data/rdoc/RubyXL/SmartTagType.html +1 -1
  319. data/rdoc/RubyXL/SmartTagTypes.html +1 -1
  320. data/rdoc/RubyXL/SmartTags.html +1 -1
  321. data/rdoc/RubyXL/SortCondition.html +1 -1
  322. data/rdoc/RubyXL/SortState.html +1 -1
  323. data/rdoc/RubyXL/Sqref.html +1 -1
  324. data/rdoc/RubyXL/Stop.html +1 -1
  325. data/rdoc/RubyXL/StringNode.html +1 -1
  326. data/rdoc/RubyXL/StringNodeW3C.html +1 -1
  327. data/rdoc/RubyXL/StringValue.html +1 -1
  328. data/rdoc/RubyXL/Stylesheet.html +1 -1
  329. data/rdoc/RubyXL/TableFile.html +1 -1
  330. data/rdoc/RubyXL/TableParts.html +1 -1
  331. data/rdoc/RubyXL/TableStyle.html +1 -1
  332. data/rdoc/RubyXL/TableStyles.html +1 -1
  333. data/rdoc/RubyXL/Text.html +1 -1
  334. data/rdoc/RubyXL/Theme.html +1 -1
  335. data/rdoc/RubyXL/ThemeElements.html +1 -1
  336. data/rdoc/RubyXL/ThumbnailFile.html +1 -1
  337. data/rdoc/RubyXL/Top10.html +1 -1
  338. data/rdoc/RubyXL/VMLDrawingFile.html +1 -1
  339. data/rdoc/RubyXL/Variant.html +1 -1
  340. data/rdoc/RubyXL/Vector.html +1 -1
  341. data/rdoc/RubyXL/VectorValue.html +1 -1
  342. data/rdoc/RubyXL/VisualProperties.html +1 -1
  343. data/rdoc/RubyXL/WebPublishObject.html +1 -1
  344. data/rdoc/RubyXL/WebPublishObjects.html +1 -1
  345. data/rdoc/RubyXL/WebPublishingItem.html +1 -1
  346. data/rdoc/RubyXL/WebPublishingItems.html +1 -1
  347. data/rdoc/RubyXL/WebPublishingProperties.html +1 -1
  348. data/rdoc/RubyXL/Workbook.html +1 -1
  349. data/rdoc/RubyXL/WorkbookProperties.html +1 -1
  350. data/rdoc/RubyXL/WorkbookProtection.html +1 -1
  351. data/rdoc/RubyXL/WorkbookRelationships.html +1 -1
  352. data/rdoc/RubyXL/WorkbookRoot.html +66 -25
  353. data/rdoc/RubyXL/WorkbookView.html +1 -1
  354. data/rdoc/RubyXL/WorkbookViews.html +1 -1
  355. data/rdoc/RubyXL/Worksheet.html +1 -1
  356. data/rdoc/RubyXL/WorksheetDimensions.html +1 -1
  357. data/rdoc/RubyXL/WorksheetFormatProperties.html +1 -1
  358. data/rdoc/RubyXL/WorksheetProperties.html +1 -1
  359. data/rdoc/RubyXL/WorksheetProtection.html +1 -1
  360. data/rdoc/RubyXL/WorksheetView.html +1 -1
  361. data/rdoc/RubyXL/WorksheetViews.html +1 -1
  362. data/rdoc/RubyXL/XF.html +1 -1
  363. data/rdoc/created.rid +22 -22
  364. data/rdoc/index.html +2 -2
  365. data/rdoc/js/search_index.js +1 -1
  366. data/rdoc/table_of_contents.html +80 -80
  367. data/rubyXL.gemspec +4 -3
  368. data/spec/lib/parser_spec.rb +0 -10
  369. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a54bc20d6cdffb9452628d880575ec195885077
4
- data.tar.gz: 0c2421c0e01f4c35c4e9aa93ff9c11268e8da399
3
+ metadata.gz: f5869b42fa836e952c86aaa4fa4f1d1be66667f6
4
+ data.tar.gz: 99cf17b380cdbeacb9fd6a8ac264db207cc0d933
5
5
  SHA512:
6
- metadata.gz: 579c2a42754270f6c796647e1d46bd282a9806ca21056ae194929dab205aaf6571505289038e67e4d3befed6492d8514f170fb5cff941e1a2b9dbe5a4d38b58f
7
- data.tar.gz: 28261b6ba4913eec6b9bba20c8a21875d35489581791845ce70869f3e9346395f9badadec97e037e29c97880d912febf9d90d7ce88b78412a8b9f0b9cdd04219
6
+ metadata.gz: 94490818c326db04f0df5623d722a5605e885de1ca23b659f16130063074416ca702b70730b53a27072084c52262dc572ec0569c8bdaf155c20b77e664afdc66
7
+ data.tar.gz: 28bc3a7c8c56eafec7d78e896f220e597a1014b9cbe6ada9e5cf7e25d0e3a08b887cafba2d2df4e5d346fd77c2259bfd52bfcde78b0a91f2cfdb8f823a2db2cf
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.2
1
+ 3.1.0
data/lib/rubyXL/cell.rb CHANGED
@@ -286,7 +286,7 @@ module RubyXL
286
286
  end
287
287
 
288
288
  def get_cell_font
289
- workbook.fonts[workbook.cell_xfs[self.style_index].font_id]
289
+ workbook.fonts[get_cell_xf.font_id]
290
290
  end
291
291
 
292
292
  def get_cell_border
@@ -25,7 +25,6 @@ module RubyXL
25
25
  define_child_node(RubyXL::BorderEdge, :node_name => :vertical)
26
26
  define_child_node(RubyXL::BorderEdge, :node_name => :horizontal)
27
27
  define_element_name 'border'
28
- set_countable
29
28
 
30
29
  def get_edge_style(direction)
31
30
  edge = self.send(direction)
@@ -53,7 +53,6 @@ module RubyXL
53
53
  define_child_node(RubyXL::Alignment)
54
54
  define_child_node(RubyXL::Protection)
55
55
  define_element_name 'xf'
56
- set_countable
57
56
 
58
57
  def ==(other)
59
58
  (self.num_fmt_id == other.num_fmt_id) &&
@@ -59,8 +59,10 @@ module RubyXL
59
59
  class Chartsheet < OOXMLTopLevelObject
60
60
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml'
61
61
  REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet'
62
+ REL_CLASS = RubyXL::SheetRelationshipsFile
62
63
 
63
64
  include RubyXL::RelationshipSupport
65
+ define_relationship(RubyXL::DrawingFile)
64
66
 
65
67
  attr_accessor :state, :rels
66
68
  attr_accessor :workbook, :sheet_name, :sheet_id
@@ -86,17 +88,6 @@ module RubyXL
86
88
  File.join('xl', 'chartsheets', "sheet#{file_index}.xml")
87
89
  end
88
90
 
89
- def relationship_file_class
90
- RubyXL::SheetRelationshipsFile
91
- end
92
-
93
- def attach_relationship(rid, rf)
94
- case rf
95
- when RubyXL::DrawingFile then store_relationship(rf) # TODO
96
- else store_relationship(rf, :unknown)
97
- end
98
- end
99
-
100
91
  end
101
92
 
102
93
  end
@@ -35,7 +35,6 @@ module RubyXL
35
35
  define_child_node(RubyXL::PatternFill)
36
36
  define_child_node(RubyXL::GradientFill)
37
37
  define_element_name 'fill'
38
- set_countable
39
38
  end
40
39
 
41
40
  # http://www.schemacentral.com/sc/ooxml/e-ssml_fills-1.html
@@ -25,7 +25,6 @@ module RubyXL
25
25
  define_child_node(RubyXL::StringValue, :node_name => :vertAlign)
26
26
  define_child_node(RubyXL::StringValue, :node_name => :scheme)
27
27
  define_element_name 'font'
28
- set_countable # TODO: phase put, eventually.
29
28
 
30
29
  def ==(other)
31
30
  (!(self.i && self.i.val) == !(other.i && other.i.val)) &&
@@ -105,12 +105,6 @@ module RubyXL
105
105
  self.class_variable_set(:@@ooxml_tag_name, element_name)
106
106
  end
107
107
 
108
- # #TODO# This method will eventually be obsoleted.
109
- def set_countable
110
- self.class_variable_set(:@@ooxml_countable, true)
111
- self.send(:attr_accessor, :count)
112
- end
113
-
114
108
  def parse(node, known_namespaces = nil)
115
109
  node = Nokogiri::XML.parse(node) if node.is_a?(IO) || node.is_a?(String) || node.is_a?(Zip::InputStream)
116
110
 
@@ -436,23 +430,51 @@ module RubyXL
436
430
  when Zip::File then
437
431
  file_path = file_path.relative_path_from(::Pathname.new("/")) if file_path.absolute? # Zip doesn't like absolute paths.
438
432
  entry = dirpath.find_entry(file_path)
439
- entry && (entry.get_input_stream { |f| parse(f) })
433
+ # Accomodate for Nokogiri Java implementation which is incapable of reading from a stream
434
+ entry && (entry.get_input_stream { |f| parse(defined?(JRUBY_VERSION) ? f.read : f) })
440
435
  end
441
436
  end
442
437
 
443
438
  # Saves the contents of the object as XML to respective location in <tt>.xslx</tt> zip container.
444
439
  # === Parameters
445
440
  # * +zipfile+ - ::Zip::File to which the resulting XNMML should be added.
446
- def add_to_zip(zipfile)
441
+ def add_to_zip(zip_stream)
447
442
  xml_string = write_xml
448
443
  return if xml_string.empty?
449
- zipfile.get_output_stream(self.xlsx_path) { |f| f << xml_string }
444
+ zip_stream.put_next_entry(self.xlsx_path)
445
+ zip_stream.write(xml_string)
450
446
  end
451
447
 
452
448
  def file_index
453
449
  @workbook.root.rels_hash[self.class].index{ |f| f.equal?(self) }.to_i + 1
454
450
  end
455
451
 
452
+ def self.define_relationship(klass, accessor = nil)
453
+ relationships = obtain_class_variable(:@@ooxml_relationships)
454
+ relationships[klass] = accessor
455
+ end
456
+
457
+ def attach_relationship(rid, rf)
458
+ relationships = obtain_class_variable(:@@ooxml_relationships)
459
+ klass = rf.class
460
+ if relationships.has_key?(klass) then
461
+ accessor = relationships[klass]
462
+ case accessor
463
+ when NilClass then
464
+ # Relationship is known, but we don't have a special accessor for it, store as generic
465
+ store_relationship(rf)
466
+ when false then
467
+ # Do nothing, the code will perform attaching on its own
468
+ else
469
+ container = self.send(accessor)
470
+ if container.is_a?(Array) then container << rf
471
+ else self.send("#{accessor}=", rf)
472
+ end
473
+ end
474
+ else store_relationship(rf, :unknown)
475
+ end
476
+ end
477
+
456
478
  end
457
479
 
458
480
  end
@@ -203,7 +203,7 @@ module RubyXL
203
203
  end
204
204
 
205
205
  def load_relationships(dir_path, base_file_name = '')
206
- self.relationship_container = relationship_file_class.load_relationship_file(dir_path, base_file_name)
206
+ self.relationship_container = self.class.const_get(:REL_CLASS).load_relationship_file(dir_path, base_file_name)
207
207
  return if relationship_container.nil?
208
208
 
209
209
  relationship_container.load_related_files(dir_path, base_file_name).each_pair { |rid, related_file|
@@ -4,19 +4,25 @@ require 'rubyXL/objects/relationships'
4
4
  module RubyXL
5
5
 
6
6
  class WorkbookRoot
7
+ @@debug = nil
8
+
7
9
  attr_accessor :filepath
8
10
  attr_accessor :thumbnail, :core_properties, :document_properties, :custom_properties, :workbook
9
11
  attr_accessor :content_types, :rels_hash
10
12
 
13
+ REL_CLASS = RubyXL::RootRelationships
14
+
11
15
  include RubyXL::RelationshipSupport
12
16
 
13
17
  def related_objects
14
- [ content_types, thumbnail, core_properties, document_properties, workbook ]
18
+ [ content_types, thumbnail, core_properties, document_properties, custom_properties, workbook ]
15
19
  end
16
20
 
17
- def relationship_file_class
18
- RubyXL::RootRelationships
19
- end
21
+ # define_relationship(RubyXL::ThumbnailFile, :thumbnail)
22
+ # define_relationship(RubyXL::CorePropertiesFile, :core_properties)
23
+ # define_relationship(RubyXL::DocumentPropertiesFile, :document_properties)
24
+ # define_relationship(RubyXL::CustomPropertiesFile, :custom_properties)
25
+ # define_relationship(RubyXL::Workbook, :workbook)
20
26
 
21
27
  def attach_relationship(rid, rf)
22
28
  case rf
@@ -38,18 +44,45 @@ module RubyXL
38
44
  obj
39
45
  end
40
46
 
41
- def self.parse_file(xl_file_path, opts)
42
- raise 'Not .xlsx or .xlsm excel file' unless opts[:skip_filename_check] ||
43
- %w{.xlsx .xlsm}.include?(File.extname(xl_file_path))
44
-
45
- ::Zip::File.open(xl_file_path) { |zip_file|
46
- root = self.new
47
- root.filepath = xl_file_path
48
- root.content_types = RubyXL::ContentTypes.parse_file(zip_file)
49
- root.load_relationships(zip_file)
50
- root.workbook.root = root
51
- root
47
+ def stream
48
+ stream = Zip::OutputStream.write_buffer { |zipstream|
49
+ self.rels_hash = {}
50
+ self.relationship_container.owner = self
51
+ self.content_types.overrides = []
52
+ self.content_types.owner = self
53
+ collect_related_objects.compact.each { |obj|
54
+ puts "<-- DEBUG: adding relationship to #{obj.class}" if @@debug
55
+ self.rels_hash[obj.class] ||= []
56
+ self.rels_hash[obj.class] << obj
57
+ }
58
+
59
+ self.rels_hash.keys.sort_by{ |c| c.save_order }.each { |klass|
60
+ puts "<-- DEBUG: saving related #{klass} files" if @@debug
61
+ self.rels_hash[klass].each { |obj|
62
+ obj.workbook = workbook if obj.respond_to?(:workbook=)
63
+ puts "<-- DEBUG: > #{obj.xlsx_path}" if @@debug
64
+ self.content_types.add_override(obj)
65
+ obj.add_to_zip(zipstream)
66
+ }
67
+ }
52
68
  }
69
+ stream.rewind
70
+ stream
71
+ end
72
+
73
+ def self.parse_file(xl_file_path, opts)
74
+ begin
75
+ ::Zip::File.open(xl_file_path) { |zip_file|
76
+ root = self.new
77
+ root.filepath = xl_file_path
78
+ root.content_types = RubyXL::ContentTypes.parse_file(zip_file)
79
+ root.load_relationships(zip_file)
80
+ root.workbook.root = root
81
+ root
82
+ }
83
+ rescue ::Zip::Error => e
84
+ raise e, "XLSX file format error: #{e}", e.backtrace
85
+ end
53
86
  end
54
87
 
55
88
  end
@@ -1,4 +1,5 @@
1
1
  require 'rubyXL/objects/ooxml_object'
2
+ require 'rubyXL/objects/storage'
2
3
 
3
4
  module RubyXL
4
5
 
@@ -34,13 +34,12 @@ module RubyXL
34
34
  obj
35
35
  end
36
36
 
37
- def add_to_zip(zipfile)
37
+ def add_to_zip(zip_stream)
38
38
  return if @data.nil?
39
-
40
39
  path = self.xlsx_path
41
40
  path = path.relative_path_from(Pathname.new("/")) if path.absolute? # Zip doesn't like absolute paths.
42
-
43
- zipfile.get_output_stream(path) { |f| f << @data }
41
+ zip_stream.put_next_entry(path)
42
+ zip_stream.write(@data)
44
43
  end
45
44
  end
46
45
 
@@ -51,13 +50,10 @@ module RubyXL
51
50
  class DrawingFile < GenericStorageObject
52
51
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawing+xml'
53
52
  REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing'
53
+ REL_CLASS = RubyXL::DrawingRelationshipsFile
54
54
 
55
55
  include RubyXL::RelationshipSupport
56
56
 
57
- def relationship_file_class
58
- RubyXL::DrawingRelationshipsFile
59
- end
60
-
61
57
  def attach_relationship(rid, rf)
62
58
  case rf
63
59
  when RubyXL::ChartFile then store_relationship(rf) # TODO
@@ -71,18 +67,15 @@ module RubyXL
71
67
  class ChartFile < GenericStorageObject
72
68
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'
73
69
  REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'
70
+ REL_CLASS = RubyXL::ChartRelationshipsFile
74
71
 
75
72
  include RubyXL::RelationshipSupport
76
73
 
77
- def relationship_file_class
78
- RubyXL::ChartRelationshipsFile
79
- end
80
-
81
74
  def attach_relationship(rid, rf)
82
75
  case rf
83
- when RubyXL::ChartColorsFile then self.generic_storage << rf # TODO
84
- when RubyXL::ChartStyleFile then self.generic_storage << rf # TODO
85
- when RubyXL::ChartUserShapesFile then self.generic_storage << rf # TODO
76
+ when RubyXL::ChartColorsFile then store_relationship(rf) # TODO
77
+ when RubyXL::ChartStyleFile then store_relationship(rf) # TODO
78
+ when RubyXL::ChartUserShapesFile then store_relationship(rf) # TODO
86
79
  else store_relationship(rf, :unknown)
87
80
  end
88
81
  end
@@ -289,9 +289,27 @@ module RubyXL
289
289
  class Workbook < OOXMLTopLevelObject
290
290
  CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
291
291
  REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument'
292
+ REL_CLASS = RubyXL::WorkbookRelationships
292
293
 
293
294
  include RubyXL::RelationshipSupport
294
295
 
296
+ def related_objects
297
+ [ calculation_chain, stylesheet, theme, shared_strings_container ] + @worksheets
298
+ end
299
+
300
+ define_relationship(RubyXL::SharedStringsTable, :shared_strings_container)
301
+ define_relationship(RubyXL::Stylesheet, :stylesheet)
302
+ define_relationship(RubyXL::Theme, :theme)
303
+ define_relationship(RubyXL::CalculationChain, :calculation_chain)
304
+ define_relationship(RubyXL::Stylesheet, :stylesheet)
305
+ define_relationship(RubyXL::Worksheet, false)
306
+ define_relationship(RubyXL::Chartsheet, false)
307
+ define_relationship(RubyXL::ExternalLinksFile)
308
+ define_relationship(RubyXL::PivotCacheDefinitionFile)
309
+ define_relationship(RubyXL::CustomXMLFile)
310
+ define_relationship(RubyXL::MacrosFile)
311
+ define_relationship(RubyXL::SlicerCacheFile)
312
+
295
313
  define_child_node(RubyXL::FileVersion)
296
314
  define_child_node(RubyXL::FileSharing)
297
315
  define_child_node(RubyXL::WorkbookProperties, :accessor => :workbook_properties)
@@ -320,7 +338,7 @@ module RubyXL
320
338
  'http://schemas.microsoft.com/office/spreadsheetml/2010/11/main' => 'x15')
321
339
 
322
340
  attr_accessor :root
323
- attr_accessor :calculation_chain, :theme, :stylesheet, :shared_strings_container
341
+ attr_accessor :calculation_chain, :theme, :stylesheet, :shared_strings_container, :worksheets
324
342
 
325
343
  def before_write_xml
326
344
  self.sheets = RubyXL::Sheets.new
@@ -334,30 +352,6 @@ module RubyXL
334
352
  true
335
353
  end
336
354
 
337
- def related_objects
338
- [ calculation_chain, stylesheet, theme, shared_strings_container ] + @worksheets
339
- end
340
-
341
- def relationship_file_class
342
- RubyXL::WorkbookRelationships
343
- end
344
-
345
- def attach_relationship(rid, rf)
346
- case rf
347
- when RubyXL::SharedStringsTable then self.shared_strings_container = rf
348
- when RubyXL::Stylesheet then self.stylesheet = rf
349
- when RubyXL::Theme then self.theme = rf
350
- when RubyXL::CalculationChain then self.calculation_chain = rf
351
- when RubyXL::ExternalLinksFile then store_relationship(rf) # TODO
352
- when RubyXL::PivotCacheDefinitionFile then store_relationship(rf) # TODO
353
- when RubyXL::CustomXMLFile then store_relationship(rf) # TODO
354
- when RubyXL::MacrosFile then store_relationship(rf) # TODO
355
- when RubyXL::SlicerCacheFile then store_relationship(rf) # TODO
356
- when RubyXL::Worksheet, RubyXL::Chartsheet then nil # These will be handled in the next loop
357
- else store_relationship(rf, :unknown)
358
- end
359
- end
360
-
361
355
  def date1904
362
356
  workbook_properties && workbook_properties.date1904
363
357
  end
@@ -8,6 +8,7 @@ require 'rubyXL/objects/formula'
8
8
  require 'rubyXL/objects/sheet_data'
9
9
  require 'rubyXL/objects/filters'
10
10
  require 'rubyXL/objects/data_validation'
11
+ require 'rubyXL/objects/comments'
11
12
 
12
13
  module RubyXL
13
14
 
@@ -606,6 +607,26 @@ module RubyXL
606
607
 
607
608
  # http://www.schemacentral.com/sc/ooxml/e-ssml_worksheet.html
608
609
  class Worksheet < OOXMLTopLevelObject
610
+ CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
611
+ REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
612
+ REL_CLASS = RubyXL::SheetRelationshipsFile
613
+
614
+ include RubyXL::RelationshipSupport
615
+
616
+ def related_objects
617
+ comments + printer_settings
618
+ end
619
+
620
+ define_relationship(RubyXL::PrinterSettingsFile, :printer_settings)
621
+ define_relationship(RubyXL::CommentsFile, :comments)
622
+ define_relationship(RubyXL::VMLDrawingFile)
623
+ define_relationship(RubyXL::DrawingFile)
624
+ define_relationship(RubyXL::BinaryImageFile)
625
+ define_relationship(RubyXL::PivotTableFile)
626
+ define_relationship(RubyXL::TableFile)
627
+ define_relationship(RubyXL::ControlPropertiesFile)
628
+ define_relationship(RubyXL::SlicerFile)
629
+
609
630
  define_child_node(RubyXL::WorksheetProperties)
610
631
  define_child_node(RubyXL::WorksheetDimensions)
611
632
  define_child_node(RubyXL::WorksheetViews)
@@ -654,9 +675,6 @@ module RubyXL
654
675
 
655
676
  attr_accessor :workbook, :state, :sheet_name, :sheet_id, :rels, :comments, :printer_settings
656
677
 
657
- CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
658
- REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet'
659
-
660
678
  def before_write_xml # This method may need to be moved higher in the hierarchy
661
679
  first_nonempty_row = nil
662
680
  last_nonempty_row = 0
@@ -702,31 +720,6 @@ module RubyXL
702
720
  true
703
721
  end
704
722
 
705
- include RubyXL::RelationshipSupport
706
-
707
- def related_objects
708
- comments + printer_settings
709
- end
710
-
711
- def relationship_file_class
712
- RubyXL::SheetRelationshipsFile
713
- end
714
-
715
- def attach_relationship(rid, rf)
716
- case rf
717
- when RubyXL::PrinterSettingsFile then printer_settings << rf
718
- when RubyXL::CommentsFile then comments << rf
719
- when RubyXL::VMLDrawingFile then store_relationship(rf) # TODO
720
- when RubyXL::DrawingFile then store_relationship(rf) # TODO
721
- when RubyXL::BinaryImageFile then store_relationship(rf) # TODO
722
- when RubyXL::PivotTableFile then store_relationship(rf) # TODO
723
- when RubyXL::TableFile then store_relationship(rf) # TODO
724
- when RubyXL::ControlPropertiesFile then store_relationship(rf) # TODO
725
- when RubyXL::SlicerFile then store_relationship(rf) # TODO
726
- else store_relationship(rf, :unknown)
727
- end
728
- end
729
-
730
723
  def xlsx_path
731
724
  File.join('xl', 'worksheets', "sheet#{file_index}.xml")
732
725
  end