rubyXL 1.0.11 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.11
1
+ 1.1.0
@@ -74,23 +74,55 @@ module Writer
74
74
  end
75
75
  end
76
76
 
77
- offset = 0
77
+ if !@workbook.cell_xfs[:xf].is_a?(Array)
78
+ @workbook.cell_xfs[:xf] = [@workbook.cell_xfs[:xf]]
79
+ end
80
+
81
+
82
+
78
83
  style_id_corrector['0']=0
79
- 1.upto(@workbook.cell_xfs[:xf].size) do |i|
80
- style_id_corrector[i.to_s]= i-offset
81
- #style correction commented out until bug is fixed
82
- # (i+1).upto(@workbook.cell_xfs[:xf].size) do |j|
83
- # unless i == j
84
- # if hash_equal(@workbook.cell_xfs[:xf][i],@workbook.cell_xfs[:xf][j])
85
- # @workbook.cell_xfs[:xf].delete_at(i)
86
- # style_id_corrector.delete(i.to_s)
87
- # offset += 1
88
- # end
89
- # end
90
- # end
84
+ delete_list = []
85
+ i = 1
86
+ while(i < @workbook.cell_xfs[:xf].size) do
87
+ if style_id_corrector[i.to_s].nil?
88
+ style_id_corrector[i.to_s]= i
89
+ end
90
+ # style correction commented out until bug is fixed
91
+ j = i+1
92
+ while(j < @workbook.cell_xfs[:xf].size) do
93
+ if hash_equal(@workbook.cell_xfs[:xf][i],@workbook.cell_xfs[:xf][j]) #check if this is working
94
+ style_id_corrector[j.to_s] = i
95
+ delete_list << j
96
+ end
97
+ j += 1
98
+ end
99
+ i += 1
100
+ end
101
+
102
+ #go through delete list, if before delete_list index 0, offset 0, if before delete_list index 1, offset 1, etc.
103
+ delete_list.sort!
104
+
105
+ i = 1
106
+ offset = 0
107
+ offset_corrector = 0
108
+ delete_list << @workbook.cell_xfs[:xf].size
109
+ while offset < delete_list.size do
110
+ delete_index = delete_list[offset] - offset
111
+
112
+ while i <= delete_list[offset] do #if <= instead of <, fixes odd border but adds random cells with fill
113
+ if style_id_corrector[i.to_s] == i
114
+ style_id_corrector[i.to_s] -= offset# unless style_id_corrector[i.to_s].nil? #173 should equal 53, not 52?
115
+ end
116
+
117
+ i += 1
118
+ end
119
+ @workbook.cell_xfs[:xf].delete_at(delete_index)
120
+ offset += 1
91
121
  end
122
+
92
123
  @workbook.style_corrector = style_id_corrector
93
124
 
125
+
94
126
  xml.fonts('count'=>@workbook.fonts.size) {
95
127
  0.upto(@workbook.fonts.size-1) do |i|
96
128
  font = @workbook.fonts[i.to_s]
@@ -77,6 +77,9 @@ module Writer
77
77
 
78
78
  unless @worksheet.cols.nil? || @worksheet.cols.size==0
79
79
  xml.cols {
80
+ if !@worksheet.cols.is_a?(Array)
81
+ @worksheet.cols = [@worksheet.cols]
82
+ end
80
83
  @worksheet.cols.each do |col|
81
84
  if col[:attributes][:customWidth].nil?
82
85
  col[:attributes][:customWidth] = '0'
@@ -109,19 +112,19 @@ module Writer
109
112
  custom_format = '0'
110
113
  end
111
114
 
115
+ @worksheet.row_styles[(i+1).to_s][:style] = @workbook.style_corrector[@worksheet.row_styles[(i+1).to_s][:style].to_s]
112
116
  xml.row('r'=>(i+1).to_s, 'spans'=>'1:'+row.size.to_s,
113
- 's'=>@workbook.style_corrector[@worksheet.row_styles[(i+1).to_s][:style].to_s].to_s,
117
+ 's'=>@worksheet.row_styles[(i+1).to_s][:style].to_s,
114
118
  'customFormat'=>custom_format,
115
119
  'ht'=>@worksheet.row_styles[(i+1).to_s][:height].to_s,
116
120
  'customHeight'=>@worksheet.row_styles[(i+1).to_s][:customHeight].to_s) {
117
121
  row.each_with_index do |dat, j|
118
122
  unless dat.nil?
119
- #TODO un-hardcode t value, needs to be other values too
120
- #TODO recalculate based on formula....?
121
123
  #TODO do xml.c for all cases, inside specific.
122
124
  # if dat.formula.nil?
125
+ dat.style_index = @workbook.style_corrector[dat.style_index.to_s]
123
126
  xml.c('r'=>Cell.convert_to_cell(i,j),
124
- 's'=>@workbook.style_corrector[dat.style_index.to_s].to_s, 't'=>dat.datatype) {
127
+ 's'=>dat.style_index.to_s, 't'=>dat.datatype) {
125
128
  unless dat.formula.nil?
126
129
  if dat.formula_attributes.empty?
127
130
  xml.f dat.formula.to_s
data/rubyXL.gemspec CHANGED
@@ -5,23 +5,21 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rubyXL}
8
- s.version = "1.0.11"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Vivek Bhagwat"]
12
- s.date = %q{2011-08-10}
12
+ s.date = %q{2011-08-11}
13
13
  s.description = %q{rubyXL is a gem which allows the parsing, creation, and manipulation of Microsoft Excel (.xlsx/.xlsm) Documents}
14
14
  s.email = %q{bhagwat.vivek@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
- "README",
18
17
  "README.rdoc"
19
18
  ]
20
19
  s.files = [
21
20
  "Gemfile",
22
21
  "Gemfile.lock",
23
22
  "LICENSE.txt",
24
- "README",
25
23
  "README.rdoc",
26
24
  "Rakefile",
27
25
  "VERSION",
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubyXL
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 19
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 11
10
- version: 1.0.11
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Vivek Bhagwat
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-10 00:00:00 -04:00
18
+ date: 2011-08-11 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -134,13 +134,11 @@ extensions: []
134
134
 
135
135
  extra_rdoc_files:
136
136
  - LICENSE.txt
137
- - README
138
137
  - README.rdoc
139
138
  files:
140
139
  - Gemfile
141
140
  - Gemfile.lock
142
141
  - LICENSE.txt
143
- - README
144
142
  - README.rdoc
145
143
  - Rakefile
146
144
  - VERSION
data/README DELETED
@@ -1,2 +0,0 @@
1
- To install:
2
- gem install rubyXL