write_xlsx 0.72.3.beta1 → 0.73.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.
- checksums.yaml +4 -4
- data/Changes +6 -0
- data/README.md +1 -1
- data/lib/write_xlsx/chart/axis.rb +15 -1
- data/lib/write_xlsx/chart/scatter.rb +1 -1
- data/lib/write_xlsx/chart/series.rb +17 -6
- data/lib/write_xlsx/chart.rb +60 -12
- data/lib/write_xlsx/package/table.rb +10 -9
- data/lib/write_xlsx/version.rb +1 -1
- data/lib/write_xlsx/workbook.rb +17 -8
- data/lib/write_xlsx/worksheet.rb +18 -5
- data/test/package/table/test_table01.rb +1 -0
- data/test/package/table/test_table02.rb +1 -0
- data/test/package/table/test_table03.rb +1 -0
- data/test/package/table/test_table04.rb +1 -0
- data/test/package/table/test_table05.rb +1 -0
- data/test/package/table/test_table06.rb +1 -0
- data/test/package/table/test_table07.rb +1 -0
- data/test/package/table/test_table08.rb +1 -0
- data/test/package/table/test_table09.rb +1 -0
- data/test/package/table/test_table10.rb +1 -0
- data/test/package/table/test_table11.rb +1 -0
- data/test/package/table/test_table12.rb +1 -0
- data/test/package/table/test_write_auto_filter.rb +1 -1
- data/test/package/table/test_write_table_column.rb +1 -1
- data/test/package/table/test_write_table_style_info.rb +1 -1
- data/test/regression/test_chart_axis30.rb +44 -0
- data/test/regression/test_chart_axis31.rb +44 -0
- data/test/regression/test_chart_axis32.rb +44 -0
- data/test/regression/test_chart_errorbars08.rb +54 -0
- data/test/regression/test_chart_errorbars09.rb +54 -0
- data/test/regression/test_chart_errorbars10.rb +56 -0
- data/test/regression/test_chart_font07.rb +44 -0
- data/test/regression/test_chart_font08.rb +44 -0
- data/test/regression/test_chart_scatter12.rb +51 -0
- data/test/regression/test_chart_scatter13.rb +51 -0
- data/test/regression/test_chart_scatter14.rb +52 -0
- data/test/regression/test_comment12.rb +35 -0
- data/test/regression/test_table16.rb +37 -0
- data/test/regression/xlsx_files/chart_axis30.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis31.xlsx +0 -0
- data/test/regression/xlsx_files/chart_axis32.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars09.xlsx +0 -0
- data/test/regression/xlsx_files/chart_errorbars10.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font07.xlsx +0 -0
- data/test/regression/xlsx_files/chart_font08.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter12.xlsx +0 -0
- data/test/regression/xlsx_files/chart_scatter14.xlsx +0 -0
- data/test/regression/xlsx_files/comment12.xlsx +0 -0
- metadata +60 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd7c9924a9f5ccf9b80207b867a7bff175bc382a
|
4
|
+
data.tar.gz: bb3b383fc98310774db112b3a3452d4b41bfab40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 945b9f957e1c8b223aad62bc58b9b73fa1d8df6213d69df9286f1995fc31f3629a417a2c0f3063c4a2fc29c374b6d0453ae435774d6984c54c081ea97d9ef118
|
7
|
+
data.tar.gz: 0e473012b15e3133e4f2a5df0ebf83a8cdad8f12c8cd9e078258cb9f7ff29a9c6a9c062e1ca627bc725fa58941b0e4ec7450e21de8abda3bb19258ed23515831
|
data/Changes
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
Change history of write_xlsx rubygem.
|
2
2
|
|
3
|
+
2013-11-13 v0.73.0
|
4
|
+
Added custom error bar option to charts.
|
5
|
+
Fix for tables added in non-sequential order.
|
6
|
+
Fix for scatter charts with markers on non-marker series.
|
7
|
+
Fix for charts with star style markers
|
8
|
+
|
3
9
|
2013-09-21 v0.72.3.beta1
|
4
10
|
speed up when script handles large number of cells.
|
5
11
|
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# write_xlsx
|
2
2
|
|
3
|
-
gem to create a new file in the Excel 2007+ XLSX format, and you can use the same interface as writeexcel gem. write_xlsx is converted from Perl's module [Excel::Writer::XLSX-0.
|
3
|
+
gem to create a new file in the Excel 2007+ XLSX format, and you can use the same interface as writeexcel gem. write_xlsx is converted from Perl's module [Excel::Writer::XLSX-0.73](https://github.com/jmcnamara/excel-writer-xlsx) .
|
4
4
|
|
5
5
|
## Description
|
6
6
|
|
@@ -11,7 +11,7 @@ module Writexlsx
|
|
11
11
|
attr_accessor :defaults, :reverse
|
12
12
|
attr_accessor :min, :max
|
13
13
|
attr_accessor :minor_unit, :major_unit, :minor_unit_type, :major_unit_type
|
14
|
-
attr_accessor :log_base, :crossing, :position, :label_position, :visible
|
14
|
+
attr_accessor :log_base, :crossing, :position, :position_axis, :label_position, :visible
|
15
15
|
attr_accessor :num_format, :num_format_linked, :num_font
|
16
16
|
attr_accessor :major_gridlines, :minor_gridlines, :major_tick_mark
|
17
17
|
|
@@ -31,6 +31,7 @@ module Writexlsx
|
|
31
31
|
@major_unit_type = args[:major_unit_type]
|
32
32
|
@log_base = args[:log_base]
|
33
33
|
@crossing = args[:crossing]
|
34
|
+
@position_axis = args[:position_axis]
|
34
35
|
@label_position = args[:label_position]
|
35
36
|
@num_format = args[:num_format]
|
36
37
|
@num_format_linked = args[:num_format_linked]
|
@@ -50,8 +51,21 @@ module Writexlsx
|
|
50
51
|
@position = args[:position]
|
51
52
|
@position = @position.downcase[0, 1] if @position
|
52
53
|
|
54
|
+
# Set the position for a category axis on or between the tick marks.
|
55
|
+
if @position_axis
|
56
|
+
if @position_axis == 'on_tick'
|
57
|
+
@position_axis = 'midCat'
|
58
|
+
elsif @position_axis == 'between'
|
59
|
+
# Doesn't neet to be modified.
|
60
|
+
else
|
61
|
+
# Otherwise use the default value.
|
62
|
+
@position_axis = nil
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
53
66
|
# Set the font properties if present.
|
54
67
|
@num_font = @chart.convert_font_args(args[:num_font])
|
68
|
+
@name_font = @chart.convert_font_args(args[:name_font])
|
55
69
|
end
|
56
70
|
|
57
71
|
#
|
@@ -255,7 +255,7 @@ module Writexlsx
|
|
255
255
|
# Go through each series and define default values.
|
256
256
|
@series.each do |series|
|
257
257
|
# Set a marker type unless there is already a user defined type.
|
258
|
-
|
258
|
+
unless ptrue?(series.marker)
|
259
259
|
series.marker = { :type => 'none', :_defined => 1 }
|
260
260
|
end
|
261
261
|
end
|
@@ -83,7 +83,7 @@ class Series
|
|
83
83
|
:diamond => 'diamond',
|
84
84
|
:triangle => 'triangle',
|
85
85
|
:x => 'x',
|
86
|
-
:star => '
|
86
|
+
:star => 'star',
|
87
87
|
:dot => 'dot',
|
88
88
|
:short_dash => 'dot',
|
89
89
|
:dash => 'dash',
|
@@ -160,17 +160,22 @@ class Series
|
|
160
160
|
|
161
161
|
# Default values.
|
162
162
|
error_bars = {
|
163
|
-
:_type
|
164
|
-
:_value
|
165
|
-
:_endcap
|
166
|
-
:_direction
|
163
|
+
:_type => 'fixedVal',
|
164
|
+
:_value => 1,
|
165
|
+
:_endcap => 1,
|
166
|
+
:_direction => 'both',
|
167
|
+
:_plus_values => [1],
|
168
|
+
:_minus_values => [1],
|
169
|
+
:_plus_data => [],
|
170
|
+
:_minus_data => []
|
167
171
|
}
|
168
172
|
|
169
173
|
types = {
|
170
174
|
:fixed => 'fixedVal',
|
171
175
|
:percentage => 'percentage',
|
172
176
|
:standard_deviation => 'stdDev',
|
173
|
-
:standard_error => 'stdErr'
|
177
|
+
:standard_error => 'stdErr',
|
178
|
+
:custom => 'cust'
|
174
179
|
}
|
175
180
|
|
176
181
|
# Check the error bars type.
|
@@ -203,6 +208,12 @@ class Series
|
|
203
208
|
end
|
204
209
|
end
|
205
210
|
|
211
|
+
# Set any custom values
|
212
|
+
error_bars[:_plus_values] = params[:plus_values] if params[:plus_values]
|
213
|
+
error_bars[:_minus_values] = params[:minus_values] if params[:minus_values]
|
214
|
+
error_bars[:_plus_data] = params[:plus_data] if params[:plus_data]
|
215
|
+
error_bars[:_minus_data] = params[:minus_data] if params[:minus_data]
|
216
|
+
|
206
217
|
# Set the line properties for the error bars.
|
207
218
|
error_bars[:_line] = line_properties(params[:line])
|
208
219
|
|
data/lib/write_xlsx/chart.rb
CHANGED
@@ -118,6 +118,7 @@ module Writexlsx
|
|
118
118
|
@y_offset = 0
|
119
119
|
@table = nil
|
120
120
|
@smooth_allowed = 0
|
121
|
+
@cross_between = 'between'
|
121
122
|
|
122
123
|
set_default_properties
|
123
124
|
end
|
@@ -211,8 +212,9 @@ module Writexlsx
|
|
211
212
|
# Set the properties of the chart legend.
|
212
213
|
#
|
213
214
|
def set_legend(params)
|
214
|
-
@legend_position
|
215
|
+
@legend_position = params[:position] || 'right'
|
215
216
|
@legend_delete_series = params[:delete_series]
|
217
|
+
@legend_font = convert_font_args(params[:font])
|
216
218
|
end
|
217
219
|
|
218
220
|
#
|
@@ -680,7 +682,10 @@ module Writexlsx
|
|
680
682
|
attributes << ['i', font[:_italic]] if font[:_italic]
|
681
683
|
attributes << ['u', 'sng'] if font[:_underline]
|
682
684
|
|
683
|
-
|
685
|
+
# Turn off baseline when testing fonts that don't have it.
|
686
|
+
if font[:_baseline] != -1
|
687
|
+
attributes << ['baseline', font[:_baseline]]
|
688
|
+
end
|
684
689
|
attributes
|
685
690
|
end
|
686
691
|
|
@@ -1018,6 +1023,13 @@ module Writexlsx
|
|
1018
1023
|
write_num_or_str_ref('c:strRef', formula, data, type)
|
1019
1024
|
end
|
1020
1025
|
|
1026
|
+
#
|
1027
|
+
# Write the <c:numLit> element for literal number list elements.
|
1028
|
+
#
|
1029
|
+
def write_num_lit(data)
|
1030
|
+
write_num_base('c:numLit', data)
|
1031
|
+
end
|
1032
|
+
|
1021
1033
|
#
|
1022
1034
|
# Write the <c:f> element.
|
1023
1035
|
#
|
@@ -1189,7 +1201,7 @@ module Writexlsx
|
|
1189
1201
|
write_crossing(x_axis.crossing)
|
1190
1202
|
|
1191
1203
|
# Write the c:crossBetween element.
|
1192
|
-
write_cross_between
|
1204
|
+
write_cross_between(x_axis.position_axis)
|
1193
1205
|
|
1194
1206
|
# Write the c:majorUnit element.
|
1195
1207
|
write_c_major_unit(y_axis.major_unit)
|
@@ -1467,8 +1479,8 @@ module Writexlsx
|
|
1467
1479
|
#
|
1468
1480
|
# Write the <c:crossBetween> element.
|
1469
1481
|
#
|
1470
|
-
def write_cross_between # :nodoc:
|
1471
|
-
val
|
1482
|
+
def write_cross_between(val = nil) # :nodoc:
|
1483
|
+
val ||= @cross_between
|
1472
1484
|
|
1473
1485
|
@writer.empty_tag('c:crossBetween', [ ['val', val] ])
|
1474
1486
|
end
|
@@ -1513,8 +1525,8 @@ module Writexlsx
|
|
1513
1525
|
# Write the <c:legend> element.
|
1514
1526
|
#
|
1515
1527
|
def write_legend # :nodoc:
|
1516
|
-
position
|
1517
|
-
overlay
|
1528
|
+
position = @legend_position
|
1529
|
+
overlay = false
|
1518
1530
|
|
1519
1531
|
if @legend_delete_series && @legend_delete_series.kind_of?(Array)
|
1520
1532
|
@delete_series = @legend_delete_series
|
@@ -1547,6 +1559,10 @@ module Writexlsx
|
|
1547
1559
|
end if @delete_series
|
1548
1560
|
# Write the c:layout element.
|
1549
1561
|
write_layout
|
1562
|
+
# Write the c:txPr element.
|
1563
|
+
if ptrue?(@legend_font)
|
1564
|
+
write_tx_pr(nil, @legend_font)
|
1565
|
+
end
|
1550
1566
|
# Write the c:overlay element.
|
1551
1567
|
write_overlay if overlay
|
1552
1568
|
end
|
@@ -2107,7 +2123,11 @@ module Writexlsx
|
|
2107
2123
|
# Write the <c:numCache> element.
|
2108
2124
|
#
|
2109
2125
|
def write_num_cache(data) # :nodoc:
|
2110
|
-
|
2126
|
+
write_num_base('c:numCache', data)
|
2127
|
+
end
|
2128
|
+
|
2129
|
+
def write_num_base(tag, data)
|
2130
|
+
@writer.tag_elements(tag) do
|
2111
2131
|
|
2112
2132
|
# Write the c:formatCode element.
|
2113
2133
|
write_format_code('General')
|
@@ -2115,9 +2135,7 @@ module Writexlsx
|
|
2115
2135
|
# Write the c:ptCount element.
|
2116
2136
|
write_pt_count(data.size)
|
2117
2137
|
|
2118
|
-
|
2119
|
-
token = data[i]
|
2120
|
-
|
2138
|
+
data.each_with_index do |token, i|
|
2121
2139
|
# Write non-numeric data as 0.
|
2122
2140
|
if token &&
|
2123
2141
|
!(token.to_s =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/)
|
@@ -2356,7 +2374,13 @@ module Writexlsx
|
|
2356
2374
|
write_no_end_cap
|
2357
2375
|
end
|
2358
2376
|
|
2359
|
-
|
2377
|
+
case error_bars[:_type]
|
2378
|
+
when 'stdErr'
|
2379
|
+
# Don't need to write a c:errValType tag.
|
2380
|
+
when 'cust'
|
2381
|
+
# Write the custom error tags.
|
2382
|
+
write_custom_error(error_bars)
|
2383
|
+
else
|
2360
2384
|
# Write the c:val element.
|
2361
2385
|
write_error_val(error_bars[:_value])
|
2362
2386
|
end
|
@@ -2401,6 +2425,30 @@ module Writexlsx
|
|
2401
2425
|
@writer.empty_tag('c:val', [ ['val', val] ])
|
2402
2426
|
end
|
2403
2427
|
|
2428
|
+
#
|
2429
|
+
# Write the custom error bars type.
|
2430
|
+
#
|
2431
|
+
def write_custom_error(error_bars)
|
2432
|
+
if ptrue?(error_bars[:_plus_values])
|
2433
|
+
# Write the c:plus element.
|
2434
|
+
@writer.tag_elements('c:plus') do
|
2435
|
+
if error_bars[:_plus_values] =~ /^=/ # '=Sheet1!$A$1:$A$5'
|
2436
|
+
write_num_ref(error_bars[:_plus_values], error_bars[:_plus_data], 'num')
|
2437
|
+
else # [1, 2, 3]
|
2438
|
+
write_num_lit(error_bars[:_plus_values])
|
2439
|
+
end
|
2440
|
+
end
|
2441
|
+
# Write the c:minus element.
|
2442
|
+
@writer.tag_elements('c:minus') do
|
2443
|
+
if error_bars[:_minus_values] =~ /^=/ # '=Sheet1!$A$1:$A$5'
|
2444
|
+
write_num_ref(error_bars[:_minus_values], error_bars[:_minus_data], 'num')
|
2445
|
+
else # [1, 2, 3]
|
2446
|
+
write_num_lit(error_bars[:_minus_values])
|
2447
|
+
end
|
2448
|
+
end
|
2449
|
+
end
|
2450
|
+
end
|
2451
|
+
|
2404
2452
|
#
|
2405
2453
|
# Write the <c:upDownBars> element.
|
2406
2454
|
#
|
@@ -24,10 +24,11 @@ module Writexlsx
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
attr_reader :id, :name
|
28
|
+
|
29
|
+
def initialize(worksheet, *args)
|
28
30
|
@worksheet = worksheet
|
29
31
|
@writer = Package::XMLWriterSimple.new
|
30
|
-
@id = id
|
31
32
|
|
32
33
|
@row1, @row2, @col1, @col2, @param = handle_args(*args)
|
33
34
|
@columns = []
|
@@ -146,6 +147,11 @@ module Writexlsx
|
|
146
147
|
end
|
147
148
|
end
|
148
149
|
|
150
|
+
def prepare(id)
|
151
|
+
@id = id
|
152
|
+
@name ||= "Table#{id}"
|
153
|
+
end
|
154
|
+
|
149
155
|
private
|
150
156
|
|
151
157
|
def handle_args(*args)
|
@@ -264,12 +270,7 @@ module Writexlsx
|
|
264
270
|
end
|
265
271
|
|
266
272
|
def set_the_table_name
|
267
|
-
if @param[:name]
|
268
|
-
@name = @param[:name]
|
269
|
-
else
|
270
|
-
# Set a default name.
|
271
|
-
@name = "Table#{@id}"
|
272
|
-
end
|
273
|
+
@name = @param[:name] if @param[:name]
|
273
274
|
end
|
274
275
|
|
275
276
|
def set_the_table_and_autofilter_ranges
|
@@ -287,7 +288,7 @@ module Writexlsx
|
|
287
288
|
|
288
289
|
attributes = [
|
289
290
|
['xmlns', xmlns],
|
290
|
-
['id',
|
291
|
+
['id', id],
|
291
292
|
['name', @name],
|
292
293
|
['displayName', @name],
|
293
294
|
['ref', @range]
|
data/lib/write_xlsx/version.rb
CHANGED
data/lib/write_xlsx/workbook.rb
CHANGED
@@ -45,7 +45,6 @@ module Writexlsx
|
|
45
45
|
attr_reader :doc_properties # :nodoc:
|
46
46
|
attr_reader :image_types, :images # :nodoc:
|
47
47
|
attr_reader :shared_strings # :nodoc:
|
48
|
-
attr_accessor :table_count # :nodoc:
|
49
48
|
attr_reader :vba_project # :nodoc:
|
50
49
|
#
|
51
50
|
# A new Excel workbook is created using the +new+ constructor
|
@@ -1210,6 +1209,9 @@ module Writexlsx
|
|
1210
1209
|
# Add cached data to charts.
|
1211
1210
|
add_chart_data
|
1212
1211
|
|
1212
|
+
# Prepare the worksheet tables.
|
1213
|
+
prepare_tables
|
1214
|
+
|
1213
1215
|
# Package the workbook.
|
1214
1216
|
packager = Package::Packager.new(self)
|
1215
1217
|
packager.set_package_dir(@tempdir)
|
@@ -1497,6 +1499,17 @@ module Writexlsx
|
|
1497
1499
|
add_font_format_for_cell_comments if num_comment_files > 0
|
1498
1500
|
end
|
1499
1501
|
|
1502
|
+
#
|
1503
|
+
# Set the table ids for the worksheet tables.
|
1504
|
+
#
|
1505
|
+
def prepare_tables
|
1506
|
+
table_id = 0
|
1507
|
+
|
1508
|
+
sheets.each do |sheet|
|
1509
|
+
table_id += sheet.prepare_tables(table_id + 1)
|
1510
|
+
end
|
1511
|
+
end
|
1512
|
+
|
1500
1513
|
def add_font_format_for_cell_comments
|
1501
1514
|
format = Format.new(
|
1502
1515
|
@formats,
|
@@ -1666,17 +1679,13 @@ module Writexlsx
|
|
1666
1679
|
sheet.prepare_chart(index, chart_ref_id, drawing_id)
|
1667
1680
|
end
|
1668
1681
|
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
image_id, type, width, height, name = get_image_properties(filename)
|
1673
|
-
|
1682
|
+
sheet.images.each_with_index do |image, index|
|
1683
|
+
image_id, type, width, height, name = get_image_properties(image[2])
|
1674
1684
|
image_ref_id += 1
|
1675
|
-
|
1676
1685
|
sheet.prepare_image(index, image_ref_id, drawing_id, width, height, name, type)
|
1677
1686
|
end
|
1678
1687
|
|
1679
|
-
|
1688
|
+
sheet.shapes.each_with_index do |shape, index|
|
1680
1689
|
sheet.prepare_shape(index, drawing_id)
|
1681
1690
|
end
|
1682
1691
|
|
data/lib/write_xlsx/worksheet.rb
CHANGED
@@ -4213,11 +4213,7 @@ module Writexlsx
|
|
4213
4213
|
#
|
4214
4214
|
def add_table(*args)
|
4215
4215
|
# Table count is a member of Workbook, global to all Worksheet.
|
4216
|
-
|
4217
|
-
id = @workbook.table_count
|
4218
|
-
table = Package::Table.new(self, id, *args)
|
4219
|
-
|
4220
|
-
@external_table_links << ['/table', "../tables/table#{id}.xml"]
|
4216
|
+
table = Package::Table.new(self, *args)
|
4221
4217
|
@tables << table
|
4222
4218
|
table
|
4223
4219
|
end
|
@@ -5746,6 +5742,23 @@ module Writexlsx
|
|
5746
5742
|
@vml_shape_id = vml_shape_id
|
5747
5743
|
end
|
5748
5744
|
|
5745
|
+
#
|
5746
|
+
# Set the table ids for the worksheet tables.
|
5747
|
+
#
|
5748
|
+
def prepare_tables(table_id)
|
5749
|
+
if tables_count > 0
|
5750
|
+
id = table_id
|
5751
|
+
tables.each do |table|
|
5752
|
+
table.prepare(id)
|
5753
|
+
|
5754
|
+
# Store the link used for the rels file.
|
5755
|
+
@external_table_links << ['/table', "../tables/table#{id}.xml"]
|
5756
|
+
id += 1
|
5757
|
+
end
|
5758
|
+
end
|
5759
|
+
tables_count || 0
|
5760
|
+
end
|
5761
|
+
|
5749
5762
|
def num_comments_block
|
5750
5763
|
@comments.size / 1024
|
5751
5764
|
end
|
@@ -12,6 +12,7 @@ class TestTable02 < Test::Unit::TestCase
|
|
12
12
|
def test_table02
|
13
13
|
# Set the table properties.
|
14
14
|
@worksheet.add_table('D4:I15', :style => 'Table Style Light 17')
|
15
|
+
@worksheet.__send__(:prepare_tables, 1)
|
15
16
|
|
16
17
|
table = @worksheet.tables[0]
|
17
18
|
table.__send__(:assemble_xml_file)
|
@@ -12,7 +12,7 @@ class TestTableWriteAutoFilter01 < Test::Unit::TestCase
|
|
12
12
|
def test_table_write_auto_filter
|
13
13
|
expected = '<autoFilter ref="C3:F13"/>'
|
14
14
|
|
15
|
-
table = Writexlsx::Package::Table.new(@worksheet,
|
15
|
+
table = Writexlsx::Package::Table.new(@worksheet, 1, 1, 2, 2)
|
16
16
|
table.instance_variable_set(:@autofilter, 'C3:F13')
|
17
17
|
|
18
18
|
table.__send__(:write_auto_filter)
|
@@ -11,7 +11,7 @@ class TestTableWriteTableColumn < Test::Unit::TestCase
|
|
11
11
|
def test_table_write_table_column
|
12
12
|
expected = '<tableColumn id="1" name="Column1"/>'
|
13
13
|
|
14
|
-
table = Writexlsx::Package::Table.new(@worksheet,
|
14
|
+
table = Writexlsx::Package::Table.new(@worksheet, 1, 1, 2, 2)
|
15
15
|
col_data = Writexlsx::Package::Table::ColumnData.new(1)
|
16
16
|
|
17
17
|
table.__send__(:write_table_column, col_data)
|
@@ -11,7 +11,7 @@ class TestTableWriteTableStyleInfo < Test::Unit::TestCase
|
|
11
11
|
def test_table_write_table_style_info
|
12
12
|
expected = '<tableStyleInfo name="TableStyleMedium9" showFirstColumn="0" showLastColumn="0" showRowStripes="1" showColumnStripes="0"/>'
|
13
13
|
|
14
|
-
table = Writexlsx::Package::Table.new(@worksheet,
|
14
|
+
table = Writexlsx::Package::Table.new(@worksheet, 1, 1, 2, 2)
|
15
15
|
table.instance_variable_set(:@style, 'TableStyleMedium9')
|
16
16
|
table.instance_variable_set(:@show_first_col, 0)
|
17
17
|
table.instance_variable_set(:@show_last_col, 0)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionChartAxis30 < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
File.delete(@xlsx) if File.exist?(@xlsx)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_chart_axis30
|
14
|
+
@xlsx = 'chart_axis30.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@xlsx)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
chart = workbook.add_chart(:type => 'line', :embedded => 1)
|
18
|
+
|
19
|
+
# For testing, copy the randomly generated axis ids in the target xlsx file.
|
20
|
+
chart.instance_variable_set(:@axis_ids, [69200896, 69215360])
|
21
|
+
data = [
|
22
|
+
[ 1, 2, 3, 4, 5 ],
|
23
|
+
[ 2, 4, 6, 8, 10 ],
|
24
|
+
[ 3, 6, 9, 12, 15 ]
|
25
|
+
]
|
26
|
+
|
27
|
+
chart.set_x_axis(:position_axis => 'on_tick')
|
28
|
+
|
29
|
+
worksheet.write('A1', data)
|
30
|
+
|
31
|
+
chart.add_series(:values => '=Sheet1!$A$1:$A$5')
|
32
|
+
chart.add_series(:values => '=Sheet1!$B$1:$B$5')
|
33
|
+
chart.add_series(:values => '=Sheet1!$C$1:$C$5')
|
34
|
+
|
35
|
+
worksheet.insert_chart('E9', chart)
|
36
|
+
|
37
|
+
workbook.close
|
38
|
+
compare_xlsx_for_regression(File.join(@regression_output, @xlsx),
|
39
|
+
@xlsx,
|
40
|
+
nil,
|
41
|
+
{}
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TestRegressionChartAxis31 < Test::Unit::TestCase
|
5
|
+
def setup
|
6
|
+
setup_dir_var
|
7
|
+
end
|
8
|
+
|
9
|
+
def teardown
|
10
|
+
File.delete(@xlsx) if File.exist?(@xlsx)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_chart_axis31
|
14
|
+
@xlsx = 'chart_axis31.xlsx'
|
15
|
+
workbook = WriteXLSX.new(@xlsx)
|
16
|
+
worksheet = workbook.add_worksheet
|
17
|
+
chart = workbook.add_chart(:type => 'bar', :embedded => 1)
|
18
|
+
|
19
|
+
# For testing, copy the randomly generated axis ids in the target xlsx file.
|
20
|
+
chart.instance_variable_set(:@axis_ids, [90616960, 90618496])
|
21
|
+
data = [
|
22
|
+
[ 1, 2, 3, 4, 5 ],
|
23
|
+
[ 2, 4, 6, 8, 10 ],
|
24
|
+
[ 3, 6, 9, 12, 15 ]
|
25
|
+
]
|
26
|
+
|
27
|
+
chart.set_y_axis(:position_axis => 'on_tick')
|
28
|
+
|
29
|
+
worksheet.write('A1', data)
|
30
|
+
|
31
|
+
chart.add_series(:values => '=Sheet1!$A$1:$A$5')
|
32
|
+
chart.add_series(:values => '=Sheet1!$B$1:$B$5')
|
33
|
+
chart.add_series(:values => '=Sheet1!$C$1:$C$5')
|
34
|
+
|
35
|
+
worksheet.insert_chart('E9', chart)
|
36
|
+
|
37
|
+
workbook.close
|
38
|
+
compare_xlsx_for_regression(File.join(@regression_output, @xlsx),
|
39
|
+
@xlsx,
|
40
|
+
nil,
|
41
|
+
{}
|
42
|
+
)
|
43
|
+
end
|
44
|
+
end
|