axlsx 1.0.12 → 1.0.14

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 (77) hide show
  1. data/README.md +165 -134
  2. data/examples/example.rb +133 -153
  3. data/lib/axlsx/#cfb.xlsx# +0 -0
  4. data/lib/axlsx/content_type/content_type.rb +23 -0
  5. data/lib/axlsx/content_type/default.rb +37 -0
  6. data/lib/axlsx/content_type/override.rb +37 -0
  7. data/lib/axlsx/doc_props/app.rb +178 -0
  8. data/lib/axlsx/doc_props/core.rb +34 -0
  9. data/lib/axlsx/drawing/axis.rb +93 -0
  10. data/lib/axlsx/drawing/bar_3D_chart.rb +136 -0
  11. data/lib/axlsx/drawing/bar_series.rb +64 -0
  12. data/lib/axlsx/drawing/cat_axis.rb +63 -0
  13. data/lib/axlsx/drawing/cat_axis_data.rb +35 -0
  14. data/lib/axlsx/drawing/chart.rb +193 -0
  15. data/lib/axlsx/drawing/drawing.rb +137 -0
  16. data/lib/axlsx/drawing/graphic_frame.rb +52 -0
  17. data/lib/axlsx/drawing/line_3D_chart.rb +114 -0
  18. data/lib/axlsx/drawing/line_series.rb +46 -0
  19. data/lib/axlsx/drawing/marker.rb +61 -0
  20. data/lib/axlsx/drawing/one_cell_anchor.rb +89 -0
  21. data/lib/axlsx/drawing/pic.rb +153 -0
  22. data/lib/axlsx/drawing/picture_locking.rb +72 -0
  23. data/lib/axlsx/drawing/picture_locking.rb~ +36 -0
  24. data/lib/axlsx/drawing/pie_3D_chart.rb +41 -0
  25. data/lib/axlsx/drawing/pie_series.rb +56 -0
  26. data/lib/axlsx/drawing/scaling.rb +59 -0
  27. data/lib/axlsx/drawing/ser_axis.rb +45 -0
  28. data/lib/axlsx/drawing/series.rb +71 -0
  29. data/lib/axlsx/drawing/series_title.rb +22 -0
  30. data/lib/axlsx/drawing/title.rb +65 -0
  31. data/lib/axlsx/drawing/two_cell_anchor.rb +76 -0
  32. data/lib/axlsx/drawing/val_axis.rb +34 -0
  33. data/lib/axlsx/drawing/val_axis_data.rb +26 -0
  34. data/lib/axlsx/drawing/view_3D.rb +85 -0
  35. data/lib/axlsx/package.rb +223 -0
  36. data/lib/axlsx/rels/relationship.rb +44 -0
  37. data/lib/axlsx/rels/relationships.rb +25 -0
  38. data/lib/axlsx/stylesheet/border.rb +57 -0
  39. data/lib/axlsx/stylesheet/border_pr.rb +68 -0
  40. data/lib/axlsx/stylesheet/cell_alignment.rb +105 -0
  41. data/lib/axlsx/stylesheet/cell_protection.rb +36 -0
  42. data/lib/axlsx/stylesheet/cell_style.rb +65 -0
  43. data/lib/axlsx/stylesheet/color.rb +69 -0
  44. data/lib/axlsx/stylesheet/fill.rb +32 -0
  45. data/lib/axlsx/stylesheet/font.rb +139 -0
  46. data/lib/axlsx/stylesheet/gradient_fill.rb +76 -0
  47. data/lib/axlsx/stylesheet/gradient_stop.rb +33 -0
  48. data/lib/axlsx/stylesheet/num_fmt.rb +63 -0
  49. data/lib/axlsx/stylesheet/pattern_fill.rb +66 -0
  50. data/lib/axlsx/stylesheet/styles.rb +298 -0
  51. data/lib/axlsx/stylesheet/table_style.rb +47 -0
  52. data/lib/axlsx/stylesheet/table_style_element.rb +71 -0
  53. data/lib/axlsx/stylesheet/table_styles.rb +39 -0
  54. data/lib/axlsx/stylesheet/xf.rb +138 -0
  55. data/lib/axlsx/util/constants.rb +216 -0
  56. data/lib/axlsx/util/ms_off_crypto.rb +88 -0
  57. data/lib/axlsx/util/ms_off_crypto.rb~ +3 -0
  58. data/lib/axlsx/util/ms_offcrypto.rb~ +0 -0
  59. data/lib/axlsx/util/parser.rb +43 -0
  60. data/lib/axlsx/util/parser.rb~ +6 -0
  61. data/lib/axlsx/util/simple_typed_list.rb +160 -0
  62. data/lib/axlsx/util/validators.rb +132 -0
  63. data/lib/axlsx/version.rb +4 -0
  64. data/lib/axlsx/workbook/workbook.rb +161 -0
  65. data/lib/axlsx/workbook/worksheet/cell.rb +350 -0
  66. data/lib/axlsx/workbook/worksheet/row.rb +107 -0
  67. data/lib/axlsx/workbook/worksheet/worksheet.rb +335 -0
  68. data/lib/axlsx.rb +59 -0
  69. data/test/drawing/tc_axis.rb +1 -1
  70. data/test/drawing/tc_cat_axis.rb +1 -1
  71. data/test/drawing/tc_line_series.tc~ +34 -0
  72. data/test/drawing/tc_picture_locking.rb~ +77 -0
  73. data/test/tc_package.rb +10 -0
  74. data/test/workbook/worksheet/tc_cell.rb +15 -0
  75. data/test/workbook/worksheet/tc_worksheet.rb +22 -1
  76. metadata +117 -5
  77. data/examples/follow_20111202.xlsx +0 -0
data/README.md CHANGED
@@ -7,20 +7,23 @@ Axlsx: Office Open XML Spreadsheet Generation
7
7
  **Author**: Randy Morgan
8
8
  **Copyright**: 2011
9
9
  **License**: MIT License
10
- **Latest Version**: 1.0.12
10
+ **Latest Version**: 1.0.14
11
11
  **Ruby Version**: 1.8.7, 1.9.2, 1.9.3
12
12
 
13
- **Release Date**: December 7th 2011
13
+ **Release Date**: December 14th 2011
14
14
 
15
15
  Synopsis
16
16
  --------
17
17
 
18
18
  Axlsx is an Office Open XML Spreadsheet generator for the Ruby programming language.
19
- With Axlsx you can create worksheets with charts, images, automated column width, customizable styles and full schema validation. Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents without having to understand the entire ECMA specification. Check out the README for some examples of how easy it is. Best of all, you can validate your xlsx file before serialization so you know for sure that anything generated is going to load on your client's machine.
19
+ With Axlsx you can create excel worksheets with charts, images, automated column width, customizable styles, functins, merged cells and auto filters as well as full schema validation. Axlsx excels at helping you generate beautiful Office Open XML Spreadsheet documents without having to understand the entire ECMA specification.
20
20
 
21
21
  If you are working in rails, or with active record see:
22
22
  http://github.com/randym/acts_as_xlsx
23
23
 
24
+ There are guides for using axlsx and acts_as_xlsx here:
25
+ [http://axlsx.blogspot.com](http://axlsx.blogspot.com)
26
+
24
27
  Help Wanted
25
28
  -----------
26
29
 
@@ -49,6 +52,10 @@ Feature List
49
52
 
50
53
  **10. Support for formulas
51
54
 
55
+ **11. Support for cell merging via worksheet.merged_cells
56
+
57
+ **12. Auto filtering tables with worksheet.auto_filter
58
+
52
59
  Installing
53
60
  ----------
54
61
 
@@ -56,196 +63,220 @@ To install Axlsx, use the following command:
56
63
 
57
64
  $ gem install axlsx
58
65
 
59
- Usage
60
- -----
66
+ #Usage
67
+ ------
61
68
 
62
- ###Examples
63
-
64
- require 'rubygems'
65
69
  require 'axlsx'
66
70
 
67
-
68
- Validation
69
-
70
71
  p = Axlsx::Package.new
71
- p.workbook.add_worksheet do |sheet|
72
- sheet.add_row ["First", "Second", "Third"]
73
- sheet.add_row [1, 2, 3]
74
- end
75
-
76
- p.validate.each do |error|
77
- puts error.inspect
78
- end
72
+ wb = p.workbook
79
73
 
80
- A Simple Workbook
74
+ ##A Simple Workbook
81
75
 
82
- p = Axlsx::Package.new
83
- p.workbook.add_worksheet do |sheet|
84
- sheet.add_row ["First Column", "Second Column", "Third Column"]
85
- sheet.add_row [1, 2, Time.now]
76
+ wb.add_worksheet(:name => "Basic Worksheet") do |sheet|
77
+ sheet.add_row ["First Column", "Second", "Third"]
78
+ sheet.add_row [1, 2, 3]
86
79
  end
87
- p.serialize("example1.xlsx")
88
80
 
89
- Generating A Bar Chart
81
+ ##Using Custom Styles
90
82
 
91
- p = Axlsx::Package.new
92
- p.workbook.add_worksheet do |sheet|
93
- sheet.add_row ["A Simple Bar Chart"]
94
- sheet.add_row ["First", "Second", "Third"]
95
- sheet.add_row [1, 2, 3]
96
- sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17", :title=>sheet["A1"]) do |chart|
97
- chart.add_series :data => sheet["A3:C3"], :labels => sheet["A2:C2"]
83
+ wb.styles do |s|
84
+ black_cell = s.add_style :bg_color => "00", :fg_color => "FF", :sz => 14, :alignment => { :horizontal=> :center }
85
+ blue_cell = s.add_style :bg_color => "0000FF", :fg_color => "FF", :sz => 20, :alignment => { :horizontal=> :center }
86
+ wb.add_worksheet(:name => "Custom Styles") do |sheet|
87
+ sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell]
88
+ sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER
98
89
  end
99
- end
100
- p.serialize("example2.xlsx")
90
+ end
101
91
 
102
- Generating A Pie Chart
92
+ ##Using Custom Formatting
103
93
 
104
- p = Axlsx::Package.new
105
- p.workbook.add_worksheet do |sheet|
106
- sheet.add_row ["First", "Second", "Third", "Fourth"]
107
- sheet.add_row [1, 2, 3, "=PRODUCT(A2:C2)"]
108
- sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0, 2], :end_at => [5, 25], :title=>"example 3: Pie Chart") do |chart|
109
- chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"]
94
+ wb.styles do |s|
95
+ date = s.add_style(:format_code => "yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER)
96
+ padded = s.add_style(:format_code => "00#", :border => Axlsx::STYLE_THIN_BORDER)
97
+ percent = s.add_style(:format_code => "0000%", :border => Axlsx::STYLE_THIN_BORDER)
98
+ wb.add_worksheet(:name => "Formatting Data") do |sheet|
99
+ sheet.add_row ["Custom Formatted Date", "Percent Formatted Float", "Padded Numbers"], :style => Axlsx::STYLE_THIN_BORDER
100
+ sheet.add_row [Time.now, 0.2, 32], :style => [date, percent, padded]
110
101
  end
111
- end
112
- p.serialize("example3.xlsx")
102
+ end
113
103
 
114
- Generating A Line Chart
104
+ ##Styling Columns
115
105
 
116
- p = Axlsx::Package.new
117
- p.workbook.add_worksheet do |sheet|
118
- sheet.add_row ["First", 1, 5, 7, 9]
119
- sheet.add_row ["Second", 5, 2, 14, 9]
120
- sheet.add_chart(Axlsx::Line3DChart, :title=>"example 6: Line Chart") do |chart|
121
- chart.start_at 0, 2
122
- chart.end_at 10, 15
123
- chart.add_series :data=>sheet["B1:E1"], :title=> sheet["A1"]
124
- chart.add_series :data=>sheet["B2:E2"], :title=> sheet["A2"]
106
+ wb.styles do |s|
107
+ percent = s.add_style :num_fmt => 9
108
+ wb.add_worksheet(:name => "Styling Columns") do |sheet|
109
+ sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4']
110
+ sheet.add_row [1, 2, 0.3, 4]
111
+ sheet.add_row [1, 2, 0.2, 4]
112
+ sheet.add_row [1, 2, 0.1, 4]
113
+ sheet.col_style 2, percent, :row_offset => 1
125
114
  end
126
-
127
- end
128
- p.serialize("example4.xlsx")
129
-
130
- Using Custom Styles
131
-
132
- p = Axlsx::Package.new
133
- wb = p.workbook
134
- black_cell = wb.styles.add_style :bg_color => "00", :fg_color => "FF", :sz=>14, :alignment => { :horizontal=> :center }
135
- blue_cell = wb.styles.add_style :bg_color => "0000FF", :fg_color => "FF", :sz=>14, :alignment => { :horizontal=> :center }
136
- wb.add_worksheet do |sheet|
137
- sheet.add_row ["Text Autowidth", "Second", "Third"], :style => [black_cell, blue_cell, black_cell]
138
- sheet.add_row [1, 2, 3], :style => Axlsx::STYLE_THIN_BORDER
139
115
  end
140
- p.serialize("example5.xlsx")
141
-
142
- Using Custom Formatting and date1904
143
116
 
144
- p = Axlsx::Package.new
145
- wb = p.workbook
146
- date = wb.styles.add_style :format_code=>"yyyy-mm-dd", :border => Axlsx::STYLE_THIN_BORDER
147
- padded = wb.styles.add_style :format_code=>"00#", :border => Axlsx::STYLE_THIN_BORDER
148
- percent = wb.styles.add_style :format_code=>"0%", :border => Axlsx::STYLE_THIN_BORDER
149
- wb.date1904 = true # required for generation on mac
150
- wb.add_worksheet do |sheet|
151
- sheet.add_row ["Custom Formatted Date", "Percent Formatted Float", "Padded Numbers"], :style => Axlsx::STYLE_THIN_BORDER
152
- sheet.add_row [Time.now, 0.2, 32], :style => [date, percent, padded]
117
+ ##Styling Rows
118
+
119
+ wb.styles do |s|
120
+ head = s.add_style :bg_color => "00", :fg_color => "FF"
121
+ percent = s.add_style :num_fmt => 9
122
+ wb.add_worksheet(:name => "Styling Rows") do |sheet|
123
+ sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4']
124
+ sheet.add_row [1, 2, 0.3, 4]
125
+ sheet.add_row [1, 2, 0.2, 4]
126
+ sheet.add_row [1, 2, 0.1, 4]
127
+ sheet.col_style 2, percent, :row_offset => 1
128
+ sheet.row_style 0, head
129
+ end
153
130
  end
154
- p.serialize("example6.xlsx")
155
131
 
132
+ ##Styling Cell Overrides
156
133
 
134
+ wb.add_worksheet(:name => "Cell Level Style Overrides") do |sheet|
135
+ # cell level style overides when adding cells
136
+ sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4'], :sz => 16
137
+ sheet.add_row [1, 2, 3, "=SUM(A2:C2)"]
138
+ # cell level style overrides via sheet range
139
+ sheet["A1:D1"].each { |c| c.color = "FF0000"}
140
+ sheet['A1:D2'].each { |c| c.style = Axlsx::STYLE_THIN_BORDER }
141
+ end
157
142
 
158
- Add an Image
143
+ ##Add an Image
159
144
 
160
- p = Axlsx::Package.new
161
- p.workbook.add_worksheet do |sheet|
145
+ wb.add_worksheet(:name => "Images") do |sheet|
162
146
  img = File.expand_path('examples/image1.jpeg')
163
- sheet.add_image(:image_src => img, :noSelect=>true, :noMove=>true) do |image|
147
+ sheet.add_image(:image_src => img, :noSelect => true, :noMove => true) do |image|
164
148
  image.width=720
165
149
  image.height=666
166
150
  image.start_at 2, 2
167
151
  end
168
152
  end
169
- p.serialize("example8.xlsx")
170
153
 
171
- Asian Language Support
154
+ ##Asian Language Support
172
155
 
173
- p = Axlsx::Package.new
174
- p.workbook.add_worksheet do |sheet|
156
+ wb.add_worksheet(:name => "Unicode Support") do |sheet|
175
157
  sheet.add_row ["日本語"]
176
158
  sheet.add_row ["华语/華語"]
177
159
  sheet.add_row ["한국어/조선말"]
178
160
  end
179
- p.serialize("example9.xlsx")
180
161
 
181
- Styling Columns
182
162
 
183
- p = Axlsx::Package.new
184
- percent = p.workbook.styles.add_style :num_fmt => 9
185
- p.workbook.add_worksheet do |sheet|
186
- sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4']
187
- sheet.add_row [1, 2, 0.3, 4]
188
- sheet.add_row [1, 2, 0.2, 4]
189
- sheet.add_row [1, 2, 0.1, 4]
190
- end
191
- p.workbook.worksheets.first.col_style 2, percent, :row_offset=>1
192
- p.serialize("example10.xlsx")
193
-
194
- Styling Rows
195
-
196
- p = Axlsx::Package.new
197
- p.workbook.add_worksheet do |sheet|
198
- sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4']
199
- sheet.add_row [1, 2, 0.3, 4]
200
- sheet.add_row [1, 2, 0.2, 4]
201
- sheet.add_row [1, 2, 0.1, 4]
202
- end
203
- head = p.workbook.styles.add_style :bg_color => "00", :fg_color=>"FF"
204
- percent = p.workbook.styles.add_style :num_fmt => 9
205
- p.workbook.worksheets.first.col_style 2, percent, :row_offset=>1
206
- p.workbook.worksheets.first.row_style 0, head
207
- p.serialize("example11.xlsx")
208
-
209
- Using formula
163
+ ##Using formula
210
164
 
211
- p = Axlsx::Package.new
212
- p.workbook.add_worksheet do |sheet|
165
+ wb.add_worksheet(:name => "Using Formulas") do |sheet|
213
166
  sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4']
214
167
  sheet.add_row [1, 2, 3, "=SUM(A2:C2)"]
215
168
  end
216
- p.serialize("example12.xlsx")
217
169
 
218
- Using cell specific styling and range / name based access
219
170
 
220
- p = Axlsx::Package.new
221
- p.workbook.add_worksheet(:name=>'My Worksheet') do |sheet|
171
+ ##Merging Cells
172
+
173
+ wb.add_worksheet(:name => 'Merging Cells') do |sheet|
222
174
  # cell level style overides when adding cells
223
- sheet.add_row ['col 1', 'col 2', 'col 3', 'col 4'], :sz => 16
175
+ sheet.add_row ["col 1", "col 2", "col 3", "col 4"], :sz => 16
224
176
  sheet.add_row [1, 2, 3, "=SUM(A2:C2)"]
225
- # cell level style overrides via sheet range
177
+ sheet.add_row [2, 3, 4, "=SUM(A3:C3)"]
178
+ sheet.add_row ["total", "", "", "=SUM(D2:D3)"]
179
+ sheet.merge_cells("A4:C4")
226
180
  sheet["A1:D1"].each { |c| c.color = "FF0000"}
181
+ sheet["A1:D4"].each { |c| c.style = Axlsx::STYLE_THIN_BORDER }
182
+ end
183
+
184
+ ##Generating A Bar Chart
185
+
186
+ wb.add_worksheet(:name => "Bar Chart") do |sheet|
187
+ sheet.add_row ["A Simple Bar Chart"]
188
+ sheet.add_row ["First", "Second", "Third"]
189
+ sheet.add_row [1, 2, 3]
190
+ sheet.add_chart(Axlsx::Bar3DChart, :start_at => "A4", :end_at => "F17") do |chart|
191
+ chart.add_series :data => sheet["A3:C3"], :labels => sheet["A2:C2"], :title => sheet["A1"]
192
+ end
193
+ end
194
+
195
+ ##Generating A Pie Chart
196
+
197
+ wb.add_worksheet(:name => "Pie Chart") do |sheet|
198
+ sheet.add_row ["First", "Second", "Third", "Fourth"]
199
+ sheet.add_row [1, 2, 3, "=PRODUCT(A2:C2)"]
200
+ sheet.add_chart(Axlsx::Pie3DChart, :start_at => [0,2], :end_at => [5, 15], :title => "example 3: Pie Chart") do |chart|
201
+ chart.add_series :data => sheet["A2:D2"], :labels => sheet["A1:D1"]
202
+ end
203
+ end
204
+
205
+ ##Data over time
206
+
207
+ wb.add_worksheet(:name=>'Charting Dates') do |sheet|
208
+ # cell level style overides when adding cells
209
+ sheet.add_row ['Date', 'Value'], :sz => 16
210
+ sheet.add_row [Time.now - (7*60*60*24), 3]
211
+ sheet.add_row [Time.now - (6*60*60*24), 7]
212
+ sheet.add_row [Time.now - (5*60*60*24), 18]
213
+ sheet.add_row [Time.now - (4*60*60*24), 1]
214
+ sheet.add_chart(Axlsx::Bar3DChart) do |chart|
215
+ chart.start_at "B7"
216
+ chart.end_at "H27"
217
+ chart.add_series(:data => sheet["B2:B5"], :labels => sheet["A2:A5"], :title => sheet["B1"])
218
+ end
227
219
  end
228
- p.workbook['My Worksheet!A1:D2'].each { |c| c.style = Axlsx::STYLE_THIN_BORDER }
229
- p.serialize("example13.xlsx")
230
220
 
221
+ ##Generating A Line Chart
231
222
 
223
+ wb.add_worksheet(:name => "Line Chart") do |sheet|
224
+ sheet.add_row ["First", 1, 5, 7, 9]
225
+ sheet.add_row ["Second", 5, 2, 14, 9]
226
+ sheet.add_chart(Axlsx::Line3DChart, :title => "example 6: Line Chart", :rotX => 30, :rotY => 20) do |chart|
227
+ chart.start_at 0, 2
228
+ chart.end_at 10, 15
229
+ chart.add_series :data => sheet["B1:E1"], :title => sheet["A1"]
230
+ chart.add_series :data => sheet["B2:E2"], :title => sheet["A2"]
231
+ end
232
+ end
233
+
234
+ ##Auto Filter
235
+
236
+ wb.add_worksheet(:name => "Auto Filter") do |sheet|
237
+ sheet.add_row ["Build Matrix"]
238
+ sheet.add_row ["Build", "Duration", "Finished", "Rvm"]
239
+ sheet.add_row ["19.1", "1 min 32 sec", "about 10 hours ago", "1.8.7"]
240
+ sheet.add_row ["19.2", "1 min 28 sec", "about 10 hours ago", "1.9.2"]
241
+ sheet.add_row ["19.3", "1 min 35 sec", "about 10 hours ago", "1.9.3"]
242
+ sheet.auto_filter = "A2:D5"
243
+ end
244
+
245
+ ##Validate and Serialize
232
246
 
233
- ###Documentation
247
+ p.validate.each { |e| puts e.message }
248
+ p.serialize("example.xlsx")
234
249
 
250
+
251
+ #Documentation
252
+ --------------
235
253
  This gem is 100% documented with YARD, an exceptional documentation library. To see documentation for this, and all the gems installed on your system use:
236
254
 
237
255
  gem install yard
238
256
  yard server -g
239
257
 
240
258
 
241
- ###Specs
242
-
259
+ #Specs
260
+ ------
243
261
  This gem has 100% test coverage using test/unit. To execute tests for this gem, simply run rake in the gem directory.
244
262
 
245
- Changelog
263
+ #Changelog
246
264
  ---------
265
+ - **December.14.11**: 1.0.14 release
266
+ - Added support for mergin cells
267
+ - Added support for auto filters
268
+ - Improved auto width calculations
269
+ - Improved charts
270
+ - Updated examples to output to a single workbook with multiple sheets
271
+ - Added access to app and core package objects so you can set the creator and other properties of the package
272
+ - The beginning of password protected xlsx files - roadmapped for January release.
273
+
274
+ - **December.8.11**: 1.0.13 release
275
+ - Fixing .gemspec errors that caused gem to miss the lib directory. Sorry about that.
276
+
247
277
  - **December.7.11**: 1.0.12 release
248
- - changed dependency from 'zip' jem to 'rubyzip' and added conditional code to force binary encoding to resolve issue with excel 2011
278
+ DO NOT USE THIS VERSION = THE GEM IS BROKEN
279
+ - changed dependency from 'zip' gem to 'rubyzip' and added conditional code to force binary encoding to resolve issue with excel 2011
249
280
  - Patched bug in app.xml that would ignore user specified properties.
250
281
  - **December.5.11**: 1.0.11 release
251
282
  - Added [] methods to worksheet and workbook to provide name based access to cells.
@@ -258,8 +289,8 @@ Changelog
258
289
  Please see the {file:CHANGELOG.md} document for past release information.
259
290
 
260
291
 
261
- Copyright
262
- ---------
292
+ #Copyright and License
293
+ ----------
263
294
 
264
295
  Axlsx © 2011 by [Randy Morgan](mailto:digial.ipseity@gmail.com). Axlsx is
265
296
  licensed under the MIT license. Please see the {file:LICENSE} document for more information.