oxcelix 0.2.2 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +64 -12
- data/lib/lofaszka.rb +6 -0
- data/lib/oxcelix/workbook.rb +30 -12
- data/oxcelix.gemspec +2 -2
- metadata +11 -10
data/CHANGES
CHANGED
@@ -1,12 +1,64 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
1
|
+
* Fixed serious regression which was preventing the copy-merge routine from properly run (cols and rows were flipped). Fixed smaller bug which caused comments to be inserted as a 1-element array of hashes instead of plain text.
|
2
|
+
Thu Oct 10 23:44:39 2013 +0200
|
3
|
+
* Fixed major bug which prevented the comments to be pulled from the XML files.
|
4
|
+
Thu Oct 10 20:12:56 2013 +0200
|
5
|
+
* Fixed serious bug concerning the loading of the worksheets. Oxcelix will now correctly guess the filenames of the XML files describing the sheets
|
6
|
+
Thu Oct 10 18:22:39 2013 +0200
|
7
|
+
* Update workbook.rb Wed Oct 9 19:10:39 2013 +0200
|
8
|
+
* Changed another instance of Ox::load_file, as it won't work under windows Wed Oct 9 18:59:50 2013 +0200
|
9
|
+
* The sheet class now inherits Matrix. Sheet can return a cell based on its excel name. Sheet::data is obsolete - deleted. Moved r, v, s to the Cellvalues module - they are not needed elsewhere but the Cell class. Documentation changes. .yardopts file added.
|
10
|
+
Tue Oct 8 23:10:25 2013 +0200
|
11
|
+
* The sheet class now inherits Matrix. Sheet can return a cell based on its excel name. Sheet::data is obsolete - deleted. Moved r, v, s to the Cellvalues module - they are not needed elsewhere but the Cell class. Documentation changes. .yardopts file added.
|
12
|
+
Tue Oct 8 23:07:10 2013 +0200
|
13
|
+
* slight documentation changes, yard options added to (protected and private methods docs are now readable)
|
14
|
+
Tue Oct 8 20:17:29 2013 +0200
|
15
|
+
* Changed gem version Mon Oct 7 22:12:34 2013 +0200
|
16
|
+
* Removed sharedstrings and sheetbase properties as they were useless. Docs updated with the change. Mon Oct 7 18:15:44 2013 +0200
|
17
|
+
* Update oxcelix.gemspec Mon Oct 7 17:48:14 2013 +0200
|
18
|
+
* Update oxcelix.gemspec
|
19
|
+
|
20
|
+
Raised visibility in rdoc, so that all method documentation gets readable. Mon Oct 7 17:47:50 2013 +0200
|
21
|
+
* Update workbook.rb
|
22
|
+
|
23
|
+
replaced Ox::load_file with IO.read + Ox::load in workbook, as apparently workbook.xml could not be loaded under windows using that method Mon Oct 7 17:37:39 2013 +0200
|
24
|
+
* Minor typos corrected, added gemspec
|
25
|
+
Sun Oct 6 16:52:54 2013 +0200
|
26
|
+
* oxcelix.rb was not added to previous commit
|
27
|
+
Sun Oct 6 12:29:37 2013 +0200
|
28
|
+
* Broke down oxcelix.rb. Improved YARD documentation.
|
29
|
+
Sun Oct 6 12:25:59 2013 +0200
|
30
|
+
* Removed unneeded method from Xlsheet. Started converting docs to YARD
|
31
|
+
Sat Oct 5 09:20:31 2013 +0200
|
32
|
+
* Merge branch 'master' of https://github.com/gbiczo/oxcelix
|
33
|
+
Wed Oct 2 00:19:54 2013 +0200
|
34
|
+
* Repeating commit as the sheetdata method code was not included. Now it will simply do some Array magic to return the list of active sheets.
|
35
|
+
Wed Oct 2 00:19:18 2013 +0200
|
36
|
+
* Update README.md
|
37
|
+
|
38
|
+
Fixed typos Wed Oct 2 00:08:00 2013 +0200
|
39
|
+
* Merge branch 'master' of https://github.com/gbiczo/oxcelix
|
40
|
+
Tue Oct 1 23:51:13 2013 +0200
|
41
|
+
* Moved source to lib directory.
|
42
|
+
Tue Oct 1 23:43:53 2013 +0200
|
43
|
+
* Added README
|
44
|
+
Tue Oct 1 23:42:27 2013 +0200
|
45
|
+
* Added tests, recreated include-exclude code, now it works fine. Created README.rdoc
|
46
|
+
Tue Oct 1 23:42:00 2013 +0200
|
47
|
+
* Update README.md
|
48
|
+
|
49
|
+
Corrected typo Tue Oct 1 23:32:22 2013 +0200
|
50
|
+
* Update README.md Tue Oct 1 23:31:47 2013 +0200
|
51
|
+
* Initial commit
|
52
|
+
Tue Oct 1 14:21:10 2013 -0700
|
53
|
+
* Really deleted the last few lines of code.
|
54
|
+
Sat Sep 28 15:49:06 2013 +0200
|
55
|
+
* Wrapper module Oxcelix created. String, Matrix, Fixnum are not included. Sheet objects are now created as a last step instead og the simple hashes. Workbookhelper module added, with one method, [](sheetname), which accepts a string parameter and returns the sheet named sheetname. Code cleanups (especially the last lines of the code which were there only for testing purposes.)
|
56
|
+
Sat Sep 28 15:46:56 2013 +0200
|
57
|
+
* Corrected Cellhelper::x() and Cellhelper::y() methods, now both return correct values. RDoc documentation added.
|
58
|
+
Wed Sep 25 23:44:07 2013 +0200
|
59
|
+
* Added support for sheet inclusion and exclusion. Workbook#new now accepts a hash of parameters, which may contain: :copymerge (Bool), :include_sheets (Ary), :exclude_sheets (Ary)
|
60
|
+
Wed Sep 25 09:49:42 2013 +0200
|
61
|
+
* Added col_name to display excel column names. Style data of cell is now included. X and Y may get parameters. The Workbook constructor will now unzip and process the excel file. All sheets get converted to matrices. Upon the Array->Matrix conversion, the merged cells max be omitted or repeated.
|
62
|
+
Mon Sep 23 20:32:25 2013 +0200
|
63
|
+
* First gitted version.
|
64
|
+
Thu Aug 29 09:14:59 2013 +0200
|
data/lib/lofaszka.rb
ADDED
data/lib/oxcelix/workbook.rb
CHANGED
@@ -55,18 +55,20 @@ module Oxcelix
|
|
55
55
|
@sheets=[]
|
56
56
|
@sheetbase={}
|
57
57
|
@sharedstrings=[]
|
58
|
+
|
58
59
|
f=IO.read(@destination+'/xl/workbook.xml')
|
59
60
|
@a=Ox::load(f)
|
60
61
|
|
61
62
|
sheetdata(options); commentsrel; shstrings;
|
63
|
+
|
62
64
|
@sheets.each do |x|
|
63
|
-
|
65
|
+
|
64
66
|
@sheet = Xlsheet.new()
|
65
|
-
|
67
|
+
|
68
|
+
File.open(@destination+"/xl/#{x[:filename]}", 'r') do |f|
|
66
69
|
Ox.sax_parse(@sheet, f)
|
67
70
|
end
|
68
|
-
comments=
|
69
|
-
mkcomments(x[:comments])
|
71
|
+
comments = mkcomments(x[:comments])
|
70
72
|
@sheet.cellarray.each do |sh|
|
71
73
|
if sh.type=="s"
|
72
74
|
sh.value = @sharedstrings[sh.value.to_i]
|
@@ -74,7 +76,7 @@ module Oxcelix
|
|
74
76
|
if !comments.nil?
|
75
77
|
comm=comments.select {|c| c[:ref]==(sh.xlcoords)}
|
76
78
|
if comm.size > 0
|
77
|
-
sh.comment=comm
|
79
|
+
sh.comment=comm[0][:comment]
|
78
80
|
end
|
79
81
|
comments.delete_if{|c| c[:ref]==(sh.xlcoords)}
|
80
82
|
end
|
@@ -101,6 +103,24 @@ module Oxcelix
|
|
101
103
|
@sheetbase[:name] = x[:name]
|
102
104
|
@sheetbase[:sheetId] = x[:sheetId]
|
103
105
|
@sheetbase[:relationId] = x[:"r:id"]
|
106
|
+
|
107
|
+
relationshipfile=nil
|
108
|
+
fname=nil
|
109
|
+
unless Dir[@destination + '/xl/_rels'].empty?
|
110
|
+
Find.find(@destination + '/xl/_rels') do |path|
|
111
|
+
if File.basename(path).split(".").last=='rels'
|
112
|
+
g=IO.read(path)
|
113
|
+
relationshipfile=Ox::load(g)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
relationshipfile.locate("Relationships/*").each do |rship|
|
118
|
+
if rship[:Id] == x[:"r:id"]
|
119
|
+
@sheetbase[:filename]=rship[:Target]
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
|
104
124
|
@sheets << @sheetbase
|
105
125
|
@sheetbase=Hash.new
|
106
126
|
end
|
@@ -116,17 +136,16 @@ module Oxcelix
|
|
116
136
|
|
117
137
|
# Build the relationship between sheets and the XML files storing the comments
|
118
138
|
# to the actual sheet.
|
119
|
-
def commentsrel
|
139
|
+
def commentsrel
|
120
140
|
unless Dir[@destination + '/xl/worksheets/_rels'].empty?
|
121
141
|
Find.find(@destination + '/xl/worksheets/_rels') do |path|
|
122
142
|
if File.basename(path).split(".").last=='rels'
|
123
|
-
|
124
|
-
a=IO.read(@destination+'/xl/workbook.xml')
|
143
|
+
a=IO.read(path)
|
125
144
|
f=Ox::load(a)
|
126
145
|
f.locate("Relationships/*").each do |x|
|
127
146
|
if x[:Target].include?"comments"
|
128
147
|
@sheets.each do |s|
|
129
|
-
if File.basename(path,".rels")==
|
148
|
+
if "worksheets/" + File.basename(path,".rels")==s[:filename]
|
130
149
|
s[:comments]=x[:Target]
|
131
150
|
end
|
132
151
|
end
|
@@ -182,7 +201,6 @@ module Oxcelix
|
|
182
201
|
# into every merged cell
|
183
202
|
def matrixto(copymerge)
|
184
203
|
@sheets.each_with_index do |sheet, i|
|
185
|
-
#m=Matrix.build(sheet[:cells].last.y+1, sheet[:cells].last.x+1) {nil}
|
186
204
|
m=Sheet.build(sheet[:cells].last.y+1, sheet[:cells].last.x+1) {nil}
|
187
205
|
sheet[:cells].each do |c|
|
188
206
|
m[c.y, c.x]=c
|
@@ -200,11 +218,11 @@ module Oxcelix
|
|
200
218
|
(y1..y2).each do |row|
|
201
219
|
if valuecell != nil
|
202
220
|
valuecell.xlcoords=(col.col_name)+(row+1).to_s
|
203
|
-
m[
|
221
|
+
m[row, col]=valuecell
|
204
222
|
else
|
205
223
|
valuecell=Cell.new
|
206
224
|
valuecell.xlcoords=(col.col_name)+(row+1).to_s
|
207
|
-
m[
|
225
|
+
m[row, col]=valuecell
|
208
226
|
end
|
209
227
|
end
|
210
228
|
end
|
data/oxcelix.gemspec
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
require 'rake'
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = 'oxcelix'
|
6
|
-
s.version = '0.2.
|
7
|
-
s.date = '2013-10-
|
6
|
+
s.version = '0.2.4'
|
7
|
+
s.date = '2013-10-10'
|
8
8
|
s.summary = 'A fast Excel 2007/2010 file parser'
|
9
9
|
s.description = 'A fast .xlsx file parser that returns a collection of Matrix objects'
|
10
10
|
s.authors = 'Giovanni Biczo'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oxcelix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ox
|
@@ -52,22 +52,23 @@ files:
|
|
52
52
|
- LICENSE
|
53
53
|
- README.rdoc
|
54
54
|
- README.md
|
55
|
+
- lib/lofaszka.rb
|
55
56
|
- lib/oxcelix.rb
|
56
57
|
- lib/oxcelix/cell.rb
|
57
|
-
- lib/oxcelix/cellhelper.rb
|
58
|
-
- lib/oxcelix/sheet.rb
|
59
58
|
- lib/oxcelix/workbook.rb
|
60
|
-
- lib/oxcelix/
|
59
|
+
- lib/oxcelix/sheet.rb
|
60
|
+
- lib/oxcelix/cellhelper.rb
|
61
61
|
- lib/oxcelix/sax/sharedstrings.rb
|
62
62
|
- lib/oxcelix/sax/xlsheet.rb
|
63
|
+
- lib/oxcelix/sax/comments.rb
|
63
64
|
- oxcelix.gemspec
|
64
|
-
- spec/
|
65
|
+
- spec/test.xlsx
|
66
|
+
- spec/spec_helper.rb
|
65
67
|
- spec/fixnum_spec.rb
|
66
|
-
- spec/matrix_spec.rb
|
67
68
|
- spec/oxcelix_spec.rb
|
68
|
-
- spec/
|
69
|
+
- spec/cell_spec.rb
|
70
|
+
- spec/matrix_spec.rb
|
69
71
|
- spec/string_spec.rb
|
70
|
-
- spec/test.xlsx
|
71
72
|
- .yardopts
|
72
73
|
- CHANGES
|
73
74
|
homepage: http://github.com/gbiczo/oxcelix
|
@@ -92,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
93
|
version: '0'
|
93
94
|
requirements: []
|
94
95
|
rubyforge_project: oxcelix
|
95
|
-
rubygems_version: 1.8.
|
96
|
+
rubygems_version: 1.8.25
|
96
97
|
signing_key:
|
97
98
|
specification_version: 3
|
98
99
|
summary: A fast Excel 2007/2010 file parser
|