rspreadsheet 0.5.1 → 0.5.3
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.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/lib/rspreadsheet/row.rb +5 -0
- data/lib/rspreadsheet/tools.rb +3 -0
- data/lib/rspreadsheet/version.rb +1 -1
- data/lib/rspreadsheet/xml_tied_array.rb +2 -2
- data/lib/rspreadsheet/xml_tied_repeatable.rb +19 -10
- data/rspreadsheet.gemspec +9 -9
- data/spec/row_spec.rb +21 -0
- data/spec/testfile3-header_rows_and_cells.fods +240 -0
- metadata +19 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e4265d988a9cac4a67219e2efba520a137bcc9fe
|
4
|
+
data.tar.gz: 1d4e66e3d359d8b5ac8738d801f6088d7e998eca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b9ee836a107afe9dd74427b8b3952faa781c69ed9c728b8ae4743ec52ba78f8f969b73cc0a389fda78ade0a2d0850316ae55cd04ff2522e76b73fc11c229e6f
|
7
|
+
data.tar.gz: 89f06fd5d0f2cad8964e90f57bc194cf9bcbbdf9ddf9bf90b3e76315c0018249987a3f92488270a79f19a16172a06169d3244f4e720904ffabadbea7445e0166
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](https://travis-ci.org/gorn/rspreadsheet) [](https://coveralls.io/r/gorn/rspreadsheet)
|
1
|
+
[](https://travis-ci.org/gorn/rspreadsheet) [](https://coveralls.io/r/gorn/rspreadsheet)
|
2
2
|
|
3
3
|
# rspreadsheet
|
4
4
|
|
data/lib/rspreadsheet/row.rb
CHANGED
@@ -109,6 +109,7 @@ class Row < XMLTiedItem
|
|
109
109
|
def add_row_above
|
110
110
|
parent.add_row_above(rowi)
|
111
111
|
end
|
112
|
+
alias :insert_row_above :add_row_above
|
112
113
|
|
113
114
|
def next_row; relative(+1) end
|
114
115
|
alias :next :next_row
|
@@ -117,6 +118,10 @@ class Row < XMLTiedItem
|
|
117
118
|
worksheet.row(self.rowi+rowi_offset)
|
118
119
|
end
|
119
120
|
|
121
|
+
def clone_above_row(target_rowi)
|
122
|
+
parent.clone_item_before(rowi, target_rowi)
|
123
|
+
end
|
124
|
+
|
120
125
|
# @!group Private methods, which should not be called directly
|
121
126
|
# @private
|
122
127
|
# shifts internal represetation of row by diff. This should not be called directly
|
data/lib/rspreadsheet/tools.rb
CHANGED
@@ -156,6 +156,9 @@ module Tools
|
|
156
156
|
node.nil? ? default : node.attributes.get_attribute_ns(Tools.get_namespace(ns_prefix).href,key) || default
|
157
157
|
end
|
158
158
|
end
|
159
|
+
def self.delete_ns_attribute(node,ns_prefix,key)
|
160
|
+
set_ns_attribute(node,ns_prefix,key,nil,nil)
|
161
|
+
end
|
159
162
|
def self.get_ns_attribute_value(node,ns_prefix,key,default=:undefined_default)
|
160
163
|
if default==:undefined_default
|
161
164
|
Tools.get_ns_attribute(node,ns_prefix,key).andand.value
|
data/lib/rspreadsheet/version.rb
CHANGED
@@ -131,7 +131,7 @@ module XMLTiedArray
|
|
131
131
|
|
132
132
|
# # @!group accessing subnodes
|
133
133
|
# returns xmlnode with index
|
134
|
-
#
|
134
|
+
# does NOT respect repeated_attribute
|
135
135
|
def my_subnode(aindex)
|
136
136
|
raise 'Using method which does not respect repeated_attribute with options that are using it. You probably donot want to do that.' unless subnode_options[:repeated_attribute].nil?
|
137
137
|
return xmlsubnodes[aindex-1]
|
@@ -157,7 +157,7 @@ module XMLTiedArray
|
|
157
157
|
else
|
158
158
|
raise IndexError.new("Index #{aindex} out of bounds (1..#{self.size})")
|
159
159
|
end
|
160
|
-
end
|
160
|
+
end
|
161
161
|
|
162
162
|
def prepare_empty_subnode
|
163
163
|
Tools.prepare_ns_node(
|
@@ -44,12 +44,14 @@ module XMLTiedArray_WithRepeatableItems
|
|
44
44
|
end
|
45
45
|
|
46
46
|
# @!group inserting new subnodes
|
47
|
-
|
48
|
-
def
|
49
|
-
|
47
|
+
|
48
|
+
def insert_new_empty_subnode_before_respect_repeatable(aindex)
|
49
|
+
new_subnode = prepare_repeated_subnode(1, subnode_options)
|
50
|
+
insert_subnode_before_respect_repeatable(new_subnode, aindex)
|
50
51
|
end
|
52
|
+
alias :insert_new_empty_subnode_before :insert_new_empty_subnode_before_respect_repeatable
|
51
53
|
|
52
|
-
def
|
54
|
+
def insert_subnode_before_respect_repeatable(subnode,aindex)
|
53
55
|
axmlnode = xmlnode
|
54
56
|
options = subnode_options
|
55
57
|
node,index_range = find_subnode_with_range(aindex)
|
@@ -58,15 +60,16 @@ module XMLTiedArray_WithRepeatableItems
|
|
58
60
|
[index_range.begin..aindex-1,aindex..index_range.end].reject {|range| range.size<1}.each do |range| # split original node by cloning
|
59
61
|
clone_before_and_set_repeated_attribute(node,range.size,options)
|
60
62
|
end
|
61
|
-
node.prev.prev =
|
62
|
-
node.remove!
|
63
|
+
node.prev.prev = subnode # insert subnode
|
64
|
+
node.remove! # remove the original node
|
63
65
|
else # insert outbound xmlnode
|
64
|
-
|
65
|
-
|
66
|
-
|
66
|
+
number_of_preceeding_items = aindex-1-(index+1)+1
|
67
|
+
axmlnode << prepare_repeated_subnode(number_of_preceeding_items, options) unless number_of_preceeding_items<1 # insert preceeding cells
|
68
|
+
axmlnode << subnode # insert subnode
|
67
69
|
end #TODO: Out of bounds indexes handling
|
68
70
|
return my_subnode(aindex)
|
69
71
|
end
|
72
|
+
alias :insert_subnode_before :insert_subnode_before_respect_repeatable
|
70
73
|
|
71
74
|
def prepare_repeated_subnode(times_repeated,options)
|
72
75
|
result = prepare_empty_subnode
|
@@ -80,6 +83,13 @@ module XMLTiedArray_WithRepeatableItems
|
|
80
83
|
node.prev = newnode
|
81
84
|
end
|
82
85
|
|
86
|
+
# takes item on source_index, clones it and inserts it before target_index
|
87
|
+
def clone_item_before(source_index, target_index)
|
88
|
+
newnode = my_subnode(source_index).copy(true)
|
89
|
+
Tools.delete_ns_attribute(newnode,'table',subnode_options[:repeated_attribute])
|
90
|
+
insert_subnode_before_respect_repeatable(newnode,target_index)
|
91
|
+
end
|
92
|
+
|
83
93
|
# detaches subnode with aindex
|
84
94
|
def detach_my_subnode_respect_repeated(aindex)
|
85
95
|
axmlnode = xmlnode
|
@@ -109,7 +119,6 @@ module XMLTiedArray_WithRepeatableItems
|
|
109
119
|
(node.attributes[subnode_options[:repeated_attribute]] || 1).to_i
|
110
120
|
end
|
111
121
|
|
112
|
-
|
113
122
|
# clean up item from xml (handle possible detachments) and itemcache. leave the object invalidation on the object
|
114
123
|
# this should not be called from nowhere but XMLTiedItem.delete
|
115
124
|
def delete_subitem(aindex)
|
data/rspreadsheet.gemspec
CHANGED
@@ -28,25 +28,25 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
# runtime dependencies
|
30
30
|
unless package_natively_installed?('ruby-libxml')
|
31
|
-
spec.add_runtime_dependency 'libxml-ruby', '3.0' # parsing XML files
|
31
|
+
spec.add_runtime_dependency 'libxml-ruby', '>=3.0' # parsing XML files
|
32
32
|
end
|
33
|
-
spec.add_runtime_dependency 'rubyzip', '
|
34
|
-
spec.add_runtime_dependency 'andand', '
|
33
|
+
spec.add_runtime_dependency 'rubyzip', '>=1.3' # opening zip files
|
34
|
+
spec.add_runtime_dependency 'andand', '>=1.3'
|
35
35
|
|
36
36
|
# development dependencies
|
37
|
+
|
38
|
+
spec.add_development_dependency "bundler", '>= 1.5', '<3' # some 2.5 rubyies contain already bundler 2 included
|
37
39
|
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.4.5')
|
38
40
|
# ruby 2.4.5 and up
|
39
|
-
spec.add_development_dependency "
|
40
|
-
spec.add_development_dependency "rake", '~>10.0'
|
41
|
+
spec.add_development_dependency "rake", '>=10.0'
|
41
42
|
else
|
42
43
|
# ruby up to 2.4.5
|
43
|
-
spec.add_development_dependency "bundler", '~> 1.5'
|
44
44
|
spec.add_development_dependency "rake", '~>0.9'
|
45
45
|
end
|
46
46
|
# testig - see http://bit.ly/1n5yM51
|
47
|
-
spec.add_development_dependency "rspec", '
|
48
|
-
spec.add_development_dependency 'pry-nav', '
|
49
|
-
spec.add_development_dependency "coveralls", '
|
47
|
+
spec.add_development_dependency "rspec", '>=2.0' # running tests
|
48
|
+
spec.add_development_dependency 'pry-nav', '>=0.0' # enables pry 'next', 'step' commands
|
49
|
+
spec.add_development_dependency "coveralls", '>=0.7' # inspecting coverage of tests
|
50
50
|
|
51
51
|
|
52
52
|
# optional and testing
|
data/spec/row_spec.rb
CHANGED
@@ -270,6 +270,27 @@ describe Rspreadsheet::Row do
|
|
270
270
|
@row = @sheet1.rows(5)
|
271
271
|
@row.worksheet.should == @sheet1
|
272
272
|
end
|
273
|
+
it 'does not skip header rows (issue #43)' do
|
274
|
+
@sheet = Rspreadsheet.open('./spec/testfile3-header_rows_and_cells.fods').worksheet(1)
|
275
|
+
@sheet.A1.should == 'Cell in header row'
|
276
|
+
@sheet.A1.should_not == 'This is first nonheader row, but it is in colheader'
|
277
|
+
@sheet.B3.should == 'First completely nonheader cell'
|
278
|
+
end
|
279
|
+
it 'can be cloned to other row' do
|
280
|
+
@sheet2.row(5)[1].should == 5
|
281
|
+
@sheet2.row(6)[1].should == 6
|
282
|
+
|
283
|
+
@sheet2.row(6)[1].should_not == 4
|
284
|
+
@sheet2.row(4).clone_above_row(6)
|
285
|
+
@sheet2.row(4)[1].should == 4
|
286
|
+
@sheet2.row(5)[1].should == 5
|
287
|
+
@sheet2.row(6)[1].should == 4
|
288
|
+
@sheet2.row(7)[1].should == 6
|
289
|
+
@sheet2.row(6)[1].should == @sheet2.row(4)[1]
|
290
|
+
@sheet2.row(6)[2].should == @sheet2.row(4)[2]
|
291
|
+
@sheet2.row(6)[3].should == @sheet2.row(4)[3]
|
292
|
+
@sheet2.row(6).cell(2).formula.should == @sheet2.row(4).cell(2).formula
|
293
|
+
end
|
273
294
|
end
|
274
295
|
|
275
296
|
|
@@ -0,0 +1,240 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
|
4
|
+
<office:meta><meta:creation-date>2019-09-18T16:03:23.906364218</meta:creation-date><meta:generator>LibreOffice/5.2.7.2$Linux_X86_64 LibreOffice_project/20m0$Build-2</meta:generator><dc:date>2019-09-18T16:04:54.802388660</dc:date><meta:editing-duration>PT1M31S</meta:editing-duration><meta:editing-cycles>1</meta:editing-cycles><meta:document-statistic meta:table-count="1" meta:cell-count="4" meta:object-count="0"/></office:meta>
|
5
|
+
<office:settings>
|
6
|
+
<config:config-item-set config:name="ooo:view-settings">
|
7
|
+
<config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
|
8
|
+
<config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
|
9
|
+
<config:config-item config:name="VisibleAreaWidth" config:type="int">10966</config:config-item>
|
10
|
+
<config:config-item config:name="VisibleAreaHeight" config:type="int">1354</config:config-item>
|
11
|
+
<config:config-item-map-indexed config:name="Views">
|
12
|
+
<config:config-item-map-entry>
|
13
|
+
<config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
|
14
|
+
<config:config-item-map-named config:name="Tables">
|
15
|
+
<config:config-item-map-entry config:name="List1">
|
16
|
+
<config:config-item config:name="CursorPositionX" config:type="int">0</config:config-item>
|
17
|
+
<config:config-item config:name="CursorPositionY" config:type="int">3</config:config-item>
|
18
|
+
<config:config-item config:name="HorizontalSplitMode" config:type="short">0</config:config-item>
|
19
|
+
<config:config-item config:name="VerticalSplitMode" config:type="short">0</config:config-item>
|
20
|
+
<config:config-item config:name="HorizontalSplitPosition" config:type="int">0</config:config-item>
|
21
|
+
<config:config-item config:name="VerticalSplitPosition" config:type="int">0</config:config-item>
|
22
|
+
<config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
|
23
|
+
<config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
|
24
|
+
<config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
|
25
|
+
<config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
|
26
|
+
<config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
|
27
|
+
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
28
|
+
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
|
29
|
+
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
30
|
+
<config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
|
31
|
+
</config:config-item-map-entry>
|
32
|
+
</config:config-item-map-named>
|
33
|
+
<config:config-item config:name="ActiveTable" config:type="string">List1</config:config-item>
|
34
|
+
<config:config-item config:name="HorizontalScrollbarWidth" config:type="int">636</config:config-item>
|
35
|
+
<config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
|
36
|
+
<config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
|
37
|
+
<config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
|
38
|
+
<config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item>
|
39
|
+
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
40
|
+
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
41
|
+
<config:config-item config:name="ShowGrid" config:type="boolean">false</config:config-item>
|
42
|
+
<config:config-item config:name="GridColor" config:type="long">12632256</config:config-item>
|
43
|
+
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
44
|
+
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
45
|
+
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
|
46
|
+
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
47
|
+
<config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item>
|
48
|
+
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
49
|
+
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
50
|
+
<config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
|
51
|
+
<config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
|
52
|
+
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
53
|
+
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
54
|
+
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
55
|
+
</config:config-item-map-entry>
|
56
|
+
</config:config-item-map-indexed>
|
57
|
+
</config:config-item-set>
|
58
|
+
<config:config-item-set config:name="ooo:configuration-settings">
|
59
|
+
<config:config-item config:name="SyntaxStringRef" config:type="short">7</config:config-item>
|
60
|
+
<config:config-item config:name="IsDocumentShared" config:type="boolean">false</config:config-item>
|
61
|
+
<config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
|
62
|
+
<config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
|
63
|
+
<config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
|
64
|
+
<config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
|
65
|
+
<config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
|
66
|
+
<config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
|
67
|
+
<config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
|
68
|
+
<config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
|
69
|
+
<config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
|
70
|
+
<config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
|
71
|
+
<config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
|
72
|
+
<config:config-item config:name="ShowGrid" config:type="boolean">false</config:config-item>
|
73
|
+
<config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
|
74
|
+
<config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
|
75
|
+
<config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
|
76
|
+
<config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
|
77
|
+
<config:config-item config:name="GridColor" config:type="long">12632256</config:config-item>
|
78
|
+
<config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
|
79
|
+
<config:config-item config:name="PrinterName" config:type="string">Lobby-A4-Canon-color</config:config-item>
|
80
|
+
<config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item>
|
81
|
+
<config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
|
82
|
+
<config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
|
83
|
+
<config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
|
84
|
+
<config:config-item config:name="AutoCalculate" config:type="boolean">true</config:config-item>
|
85
|
+
<config:config-item config:name="PrinterSetup" config:type="base64Binary">swH+/0xvYmJ5LUE0LUNhbm9uLWNvbG9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpMb2JieS1BNC1DYW5vbi1jb2xvcgAAAAAAAAAWAAMA2QAAAAAABQAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9TG9iYnktQTQtQ2Fub24tY29sb3IKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhCklucHV0U2xvdDpBdXRvbWF0aWMARHVwbGV4Ok5vbmUAUGFnZVNpemU6QTQAABIAQ09NUEFUX0RVUExFWF9NT0RFCgBEVVBMRVhfT0ZG</config:config-item>
|
86
|
+
<config:config-item config:name="ApplyUserData" config:type="boolean">false</config:config-item>
|
87
|
+
<config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
|
88
|
+
</config:config-item-set>
|
89
|
+
</office:settings>
|
90
|
+
<office:scripts>
|
91
|
+
<office:script script:language="ooo:Basic">
|
92
|
+
<ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
|
93
|
+
</office:script>
|
94
|
+
</office:scripts>
|
95
|
+
<office:font-face-decls>
|
96
|
+
<style:font-face style:name="Liberation Sans" svg:font-family="'Liberation Sans'" style:font-family-generic="swiss" style:font-pitch="variable"/>
|
97
|
+
<style:font-face style:name="AR PL SungtiL GB" svg:font-family="'AR PL SungtiL GB'" style:font-family-generic="system" style:font-pitch="variable"/>
|
98
|
+
<style:font-face style:name="DejaVu Sans" svg:font-family="'DejaVu Sans'" style:font-family-generic="system" style:font-pitch="variable"/>
|
99
|
+
<style:font-face style:name="Lohit Devanagari" svg:font-family="'Lohit Devanagari'" style:font-family-generic="system" style:font-pitch="variable"/>
|
100
|
+
</office:font-face-decls>
|
101
|
+
<office:styles>
|
102
|
+
<style:default-style style:family="table-cell">
|
103
|
+
<style:paragraph-properties style:tab-stop-distance="12.5mm"/>
|
104
|
+
<style:text-properties style:font-name="Liberation Sans" fo:language="cs" fo:country="CZ" style:font-name-asian="DejaVu Sans" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="DejaVu Sans" style:language-complex="hi" style:country-complex="IN"/>
|
105
|
+
</style:default-style>
|
106
|
+
<number:number-style style:name="N0">
|
107
|
+
<number:number number:min-integer-digits="1"/>
|
108
|
+
</number:number-style>
|
109
|
+
<number:currency-style style:name="N108P0" style:volatile="true">
|
110
|
+
<number:number number:decimal-places="2" loext:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
111
|
+
<number:text> </number:text>
|
112
|
+
<number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
|
113
|
+
</number:currency-style>
|
114
|
+
<number:currency-style style:name="N108">
|
115
|
+
<style:text-properties fo:color="#ff0000"/>
|
116
|
+
<number:text>-</number:text>
|
117
|
+
<number:number number:decimal-places="2" loext:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
|
118
|
+
<number:text> </number:text>
|
119
|
+
<number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
|
120
|
+
<style:map style:condition="value()>=0" style:apply-style-name="N108P0"/>
|
121
|
+
</number:currency-style>
|
122
|
+
<style:style style:name="Default" style:family="table-cell">
|
123
|
+
<style:text-properties style:font-name-asian="AR PL SungtiL GB" style:font-family-asian="'AR PL SungtiL GB'" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-name-complex="Lohit Devanagari" style:font-family-complex="'Lohit Devanagari'" style:font-family-generic-complex="system" style:font-pitch-complex="variable"/>
|
124
|
+
</style:style>
|
125
|
+
<style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default">
|
126
|
+
<style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold"/>
|
127
|
+
</style:style>
|
128
|
+
<style:style style:name="Result2" style:family="table-cell" style:parent-style-name="Result" style:data-style-name="N108"/>
|
129
|
+
<style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default">
|
130
|
+
<style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
|
131
|
+
<style:paragraph-properties fo:text-align="center"/>
|
132
|
+
<style:text-properties fo:font-size="16pt" fo:font-style="italic" fo:font-weight="bold"/>
|
133
|
+
</style:style>
|
134
|
+
<style:style style:name="Heading1" style:family="table-cell" style:parent-style-name="Heading">
|
135
|
+
<style:table-cell-properties style:rotation-angle="90"/>
|
136
|
+
</style:style>
|
137
|
+
</office:styles>
|
138
|
+
<office:automatic-styles>
|
139
|
+
<style:style style:name="co1" style:family="table-column">
|
140
|
+
<style:table-column-properties fo:break-before="auto" style:column-width="87.08mm"/>
|
141
|
+
</style:style>
|
142
|
+
<style:style style:name="co2" style:family="table-column">
|
143
|
+
<style:table-column-properties fo:break-before="auto" style:column-width="22.58mm"/>
|
144
|
+
</style:style>
|
145
|
+
<style:style style:name="ro1" style:family="table-row">
|
146
|
+
<style:table-row-properties style:row-height="4.52mm" fo:break-before="auto" style:use-optimal-row-height="true"/>
|
147
|
+
</style:style>
|
148
|
+
<style:style style:name="ta1" style:family="table" style:master-page-name="Default">
|
149
|
+
<style:table-properties table:display="true" style:writing-mode="lr-tb"/>
|
150
|
+
</style:style>
|
151
|
+
<style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default">
|
152
|
+
<style:text-properties style:font-name="Liberation Sans" style:font-name-asian="AR PL SungtiL GB" style:font-name-complex="Lohit Devanagari"/>
|
153
|
+
</style:style>
|
154
|
+
<style:page-layout style:name="pm1">
|
155
|
+
<style:page-layout-properties style:writing-mode="lr-tb"/>
|
156
|
+
<style:header-style>
|
157
|
+
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm"/>
|
158
|
+
</style:header-style>
|
159
|
+
<style:footer-style>
|
160
|
+
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm"/>
|
161
|
+
</style:footer-style>
|
162
|
+
</style:page-layout>
|
163
|
+
<style:page-layout style:name="pm2">
|
164
|
+
<style:page-layout-properties style:writing-mode="lr-tb"/>
|
165
|
+
<style:header-style>
|
166
|
+
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-bottom="2.5mm" fo:border="2.49pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
|
167
|
+
<style:background-image/>
|
168
|
+
</style:header-footer-properties>
|
169
|
+
</style:header-style>
|
170
|
+
<style:footer-style>
|
171
|
+
<style:header-footer-properties fo:min-height="7.5mm" fo:margin-left="0mm" fo:margin-right="0mm" fo:margin-top="2.5mm" fo:border="2.49pt solid #000000" fo:padding="0.18mm" fo:background-color="#c0c0c0">
|
172
|
+
<style:background-image/>
|
173
|
+
</style:header-footer-properties>
|
174
|
+
</style:footer-style>
|
175
|
+
</style:page-layout>
|
176
|
+
</office:automatic-styles>
|
177
|
+
<office:master-styles>
|
178
|
+
<style:master-page style:name="Default" style:page-layout-name="pm1">
|
179
|
+
<style:header>
|
180
|
+
<text:p><text:sheet-name>???</text:sheet-name></text:p>
|
181
|
+
</style:header>
|
182
|
+
<style:header-left style:display="false"/>
|
183
|
+
<style:footer>
|
184
|
+
<text:p>Stránka <text:page-number>1</text:page-number></text:p>
|
185
|
+
</style:footer>
|
186
|
+
<style:footer-left style:display="false"/>
|
187
|
+
</style:master-page>
|
188
|
+
<style:master-page style:name="Report" style:page-layout-name="pm2">
|
189
|
+
<style:header>
|
190
|
+
<style:region-left>
|
191
|
+
<text:p><text:sheet-name>???</text:sheet-name> (<text:title>???</text:title>)</text:p>
|
192
|
+
</style:region-left>
|
193
|
+
<style:region-right>
|
194
|
+
<text:p><text:date style:data-style-name="N2" text:date-value="2019-09-18">00.00.0000</text:date>, <text:time style:data-style-name="N2" text:time-value="16:15:31.823489375">00:00:00</text:time></text:p>
|
195
|
+
</style:region-right>
|
196
|
+
</style:header>
|
197
|
+
<style:header-left style:display="false"/>
|
198
|
+
<style:footer>
|
199
|
+
<text:p>Stránka <text:page-number>1</text:page-number> / <text:page-count>99</text:page-count></text:p>
|
200
|
+
</style:footer>
|
201
|
+
<style:footer-left style:display="false"/>
|
202
|
+
</style:master-page>
|
203
|
+
</office:master-styles>
|
204
|
+
<office:body>
|
205
|
+
<office:spreadsheet>
|
206
|
+
<table:calculation-settings table:case-sensitive="false" table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true">
|
207
|
+
<table:iteration table:maximum-difference="0.0001"/>
|
208
|
+
</table:calculation-settings>
|
209
|
+
<table:table table:name="List1" table:style-name="ta1">
|
210
|
+
<table:table-header-columns>
|
211
|
+
<table:table-column table:style-name="co1" table:default-cell-style-name="Default"/>
|
212
|
+
</table:table-header-columns>
|
213
|
+
<table:table-column table:style-name="co2" table:default-cell-style-name="Default"/>
|
214
|
+
<table:table-header-rows>
|
215
|
+
<table:table-row table:style-name="ro1">
|
216
|
+
<table:table-cell office:value-type="string" calcext:value-type="string">
|
217
|
+
<text:p>Cell in header row</text:p>
|
218
|
+
</table:table-cell>
|
219
|
+
<table:table-cell/>
|
220
|
+
</table:table-row>
|
221
|
+
<table:table-row table:style-name="ro1">
|
222
|
+
<table:table-cell office:value-type="string" calcext:value-type="string">
|
223
|
+
<text:p>Row is also header row</text:p>
|
224
|
+
</table:table-cell>
|
225
|
+
<table:table-cell/>
|
226
|
+
</table:table-row>
|
227
|
+
</table:table-header-rows>
|
228
|
+
<table:table-row table:style-name="ro1">
|
229
|
+
<table:table-cell office:value-type="string" calcext:value-type="string">
|
230
|
+
<text:p>This is first nonheader row, but it is in colheader</text:p>
|
231
|
+
</table:table-cell>
|
232
|
+
<table:table-cell table:style-name="ce1" office:value-type="string" calcext:value-type="string">
|
233
|
+
<text:p>First completely nonheader cell</text:p>
|
234
|
+
</table:table-cell>
|
235
|
+
</table:table-row>
|
236
|
+
</table:table>
|
237
|
+
<table:named-expressions/>
|
238
|
+
</office:spreadsheet>
|
239
|
+
</office:body>
|
240
|
+
</office:document>
|
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspreadsheet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub A.Těšínský
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.3'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: andand
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
@@ -64,54 +64,54 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '0.9'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
74
|
+
version: '0.9'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rspec
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- - "
|
79
|
+
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: '2.0'
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- - "
|
86
|
+
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '2.0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: pry-nav
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
|
-
- - "
|
93
|
+
- - ">="
|
94
94
|
- !ruby/object:Gem::Version
|
95
95
|
version: '0.0'
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
|
-
- - "
|
100
|
+
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0.0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: coveralls
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- - "
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0.7'
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
|
-
- - "
|
114
|
+
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0.7'
|
117
117
|
description: Manipulating LibreOffice Calc (OpenDocument Spreadsheet) files with Ruby.
|
@@ -178,6 +178,7 @@ files:
|
|
178
178
|
- spec/testfile1.fods
|
179
179
|
- spec/testfile1.ods
|
180
180
|
- spec/testfile2-images.ods
|
181
|
+
- spec/testfile3-header_rows_and_cells.fods
|
181
182
|
- spec/tools_spec.rb
|
182
183
|
- spec/workbook_spec.rb
|
183
184
|
- spec/worksheet_spec.rb
|
@@ -202,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
202
203
|
version: '0'
|
203
204
|
requirements: []
|
204
205
|
rubyforge_project:
|
205
|
-
rubygems_version: 2.
|
206
|
+
rubygems_version: 2.5.2.1
|
206
207
|
signing_key:
|
207
208
|
specification_version: 4
|
208
209
|
summary: Manipulating LibreOffice Calc (OpenDocument Spreadsheet) files from Ruby
|
@@ -227,6 +228,7 @@ test_files:
|
|
227
228
|
- spec/testfile1.fods
|
228
229
|
- spec/testfile1.ods
|
229
230
|
- spec/testfile2-images.ods
|
231
|
+
- spec/testfile3-header_rows_and_cells.fods
|
230
232
|
- spec/tools_spec.rb
|
231
233
|
- spec/workbook_spec.rb
|
232
234
|
- spec/worksheet_spec.rb
|