writeexcel 0.4.1 → 0.4.2
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.
- data/README.rdoc +7 -0
- data/VERSION +1 -1
- data/examples/chart_area.rb +5 -5
- data/examples/chart_bar.rb +5 -5
- data/examples/chart_column.rb +5 -5
- data/examples/chart_line.rb +5 -5
- data/examples/chart_pie.rb +5 -5
- data/examples/chart_scatter.rb +5 -5
- data/examples/chart_stock.rb +2 -2
- data/lib/writeexcel/biffwriter.rb +1 -1
- data/lib/writeexcel/chart.rb +73 -141
- data/lib/writeexcel/charts/area.rb +9 -8
- data/lib/writeexcel/charts/bar.rb +9 -10
- data/lib/writeexcel/charts/column.rb +9 -10
- data/lib/writeexcel/charts/external.rb +5 -1
- data/lib/writeexcel/charts/line.rb +9 -8
- data/lib/writeexcel/charts/pie.rb +9 -10
- data/lib/writeexcel/charts/scatter.rb +9 -10
- data/lib/writeexcel/charts/stock.rb +9 -8
- data/lib/writeexcel/colors.rb +6 -1
- data/lib/writeexcel/compatibility.rb +1 -9
- data/lib/writeexcel/format.rb +6 -1
- data/lib/writeexcel/formula.rb +6 -12
- data/lib/writeexcel/helper.rb +22 -0
- data/lib/writeexcel/storage_lite.rb +15 -18
- data/lib/writeexcel/workbook.rb +21 -21
- data/lib/writeexcel/worksheet.rb +16 -36
- data/lib/writeexcel.rb +9 -11
- data/test/test_60_chart_generic.rb +1 -1
- data/test/test_61_chart_subclasses.rb +7 -7
- data/test/test_62_chart_formats.rb +2 -2
- data/test/test_63_chart_area_formats.rb +2 -2
- data/test/test_example_match.rb +21 -21
- data/test/test_format.rb +51 -51
- data/test/test_formula.rb +1 -1
- data/test/test_worksheet.rb +1 -1
- data/writeexcel.gemspec +2 -2
- data/writeexcel.rdoc +599 -2
- metadata +3 -3
data/lib/writeexcel/chart.rb
CHANGED
@@ -33,22 +33,24 @@ require 'writeexcel/colors'
|
|
33
33
|
# sub-classes.
|
34
34
|
#
|
35
35
|
#
|
36
|
-
#
|
36
|
+
# BIFFwriter
|
37
37
|
# ^
|
38
38
|
# |
|
39
|
-
#
|
39
|
+
# Writeexcel::Worksheet
|
40
40
|
# ^
|
41
41
|
# |
|
42
|
-
#
|
42
|
+
# Writeexcel::Chart
|
43
43
|
# ^
|
44
44
|
# |
|
45
|
-
#
|
45
|
+
# Writeexcel::Chart::* (sub-types)
|
46
46
|
#
|
47
47
|
|
48
48
|
#
|
49
49
|
# = Chart
|
50
50
|
# Chart - A writer class for Excel Charts.
|
51
51
|
#
|
52
|
+
module Writeexcel
|
53
|
+
|
52
54
|
class Chart < Worksheet
|
53
55
|
require 'writeexcel/helper'
|
54
56
|
private :convert_to_ascii_if_ascii
|
@@ -59,7 +61,25 @@ class Chart < Worksheet
|
|
59
61
|
#
|
60
62
|
# Factory method for returning chart objects based on their class type.
|
61
63
|
#
|
62
|
-
def self.factory(
|
64
|
+
def self.factory(type, *args) #:nodoc:
|
65
|
+
klass =
|
66
|
+
case type
|
67
|
+
when 'Chart::Column'
|
68
|
+
Chart::Column
|
69
|
+
when 'Chart::Bar'
|
70
|
+
Chart::Bar
|
71
|
+
when 'Chart::Line'
|
72
|
+
Chart::Line
|
73
|
+
when 'Chart::Area'
|
74
|
+
Chart::Area
|
75
|
+
when 'Chart::Pie'
|
76
|
+
Chart::Pie
|
77
|
+
when 'Chart::Scatter'
|
78
|
+
Chart::Scatter
|
79
|
+
when 'Chart::Stock'
|
80
|
+
Chart::Stock
|
81
|
+
end
|
82
|
+
|
63
83
|
klass.new(*args)
|
64
84
|
end
|
65
85
|
|
@@ -1072,24 +1092,7 @@ class Chart < Worksheet
|
|
1072
1092
|
# Write the FRAME chart substream.
|
1073
1093
|
#
|
1074
1094
|
def store_plotarea_frame_stream # :nodoc:
|
1075
|
-
|
1076
|
-
|
1077
|
-
store_frame(0x00, 0x03)
|
1078
|
-
store_begin
|
1079
|
-
|
1080
|
-
store_lineformat(
|
1081
|
-
area[:line_color_rgb], area[:line_pattern],
|
1082
|
-
area[:line_weight], area[:line_options],
|
1083
|
-
area[:line_color_index]
|
1084
|
-
)
|
1085
|
-
|
1086
|
-
store_areaformat(
|
1087
|
-
area[:fg_color_rgb], area[:bg_color_rgb],
|
1088
|
-
area[:area_pattern], area[:area_options],
|
1089
|
-
area[:fg_color_index], area[:bg_color_index]
|
1090
|
-
)
|
1091
|
-
|
1092
|
-
store_end
|
1095
|
+
store_area_frame_stream_common(:plot)
|
1093
1096
|
end
|
1094
1097
|
|
1095
1098
|
###############################################################################
|
@@ -1099,9 +1102,19 @@ class Chart < Worksheet
|
|
1099
1102
|
# Write the FRAME chart substream for and embedded chart.
|
1100
1103
|
#
|
1101
1104
|
def store_chartarea_frame_stream # :nodoc:
|
1102
|
-
|
1105
|
+
store_area_frame_stream_common(:chart)
|
1106
|
+
end
|
1107
|
+
|
1108
|
+
def store_area_frame_stream_common(type)
|
1109
|
+
if type == :plot
|
1110
|
+
area = @plotarea
|
1111
|
+
grbit = 0x03
|
1112
|
+
else
|
1113
|
+
area = @chartarea
|
1114
|
+
grbit = 0x02
|
1115
|
+
end
|
1103
1116
|
|
1104
|
-
store_frame(0x00,
|
1117
|
+
store_frame(0x00, grbit)
|
1105
1118
|
store_begin
|
1106
1119
|
|
1107
1120
|
store_lineformat(
|
@@ -1118,6 +1131,7 @@ class Chart < Worksheet
|
|
1118
1131
|
|
1119
1132
|
store_end
|
1120
1133
|
end
|
1134
|
+
private :store_area_frame_stream_common
|
1121
1135
|
|
1122
1136
|
###############################################################################
|
1123
1137
|
#
|
@@ -1290,18 +1304,8 @@ class Chart < Worksheet
|
|
1290
1304
|
catCrossDate = 0x0000 # Crossing point.
|
1291
1305
|
grbit = 0x00EF # Option flags.
|
1292
1306
|
|
1293
|
-
|
1294
|
-
|
1295
|
-
data += [catMax].pack('v')
|
1296
|
-
data += [catMajor].pack('v')
|
1297
|
-
data += [unitMajor].pack('v')
|
1298
|
-
data += [catMinor].pack('v')
|
1299
|
-
data += [unitMinor].pack('v')
|
1300
|
-
data += [unitBase].pack('v')
|
1301
|
-
data += [catCrossDate].pack('v')
|
1302
|
-
data += [grbit].pack('v')
|
1303
|
-
|
1304
|
-
append(header, data)
|
1307
|
+
store_simple(record, length, catMin, catMax, catMajor, unitMajor,
|
1308
|
+
catMinor, unitMinor, unitBase, catCrossDate, grbit)
|
1305
1309
|
end
|
1306
1310
|
|
1307
1311
|
###############################################################################
|
@@ -1315,10 +1319,7 @@ class Chart < Worksheet
|
|
1315
1319
|
length = 0x0002 # Number of bytes to follow.
|
1316
1320
|
# num_axes # Number of axes used.
|
1317
1321
|
|
1318
|
-
|
1319
|
-
data = [num_axes].pack('v')
|
1320
|
-
|
1321
|
-
append(header, data)
|
1322
|
+
store_simple(record, length, num_axes)
|
1322
1323
|
end
|
1323
1324
|
|
1324
1325
|
###############################################################################
|
@@ -1357,10 +1358,7 @@ class Chart < Worksheet
|
|
1357
1358
|
length = 0x0002 # Number of bytes to follow.
|
1358
1359
|
line_format = 0x0001 # Axis line format.
|
1359
1360
|
|
1360
|
-
|
1361
|
-
data = [line_format].pack('v')
|
1362
|
-
|
1363
|
-
append(header, data)
|
1361
|
+
store_simple(record, length, line_format)
|
1364
1362
|
end
|
1365
1363
|
|
1366
1364
|
###############################################################################
|
@@ -1398,9 +1396,7 @@ class Chart < Worksheet
|
|
1398
1396
|
record = 0x1033 # Record identifier.
|
1399
1397
|
length = 0x0000 # Number of bytes to follow.
|
1400
1398
|
|
1401
|
-
|
1402
|
-
|
1403
|
-
append(header)
|
1399
|
+
store_simple(record, length)
|
1404
1400
|
end
|
1405
1401
|
|
1406
1402
|
###############################################################################
|
@@ -1417,13 +1413,7 @@ class Chart < Worksheet
|
|
1417
1413
|
catMark = 0x0001 # Frequency of ticks.
|
1418
1414
|
grbit = 0x0001 # Option flags.
|
1419
1415
|
|
1420
|
-
|
1421
|
-
data = [catCross].pack('v')
|
1422
|
-
data += [catLabel].pack('v')
|
1423
|
-
data += [catMark].pack('v')
|
1424
|
-
data += [grbit].pack('v')
|
1425
|
-
|
1426
|
-
append(header, data)
|
1416
|
+
store_simple(record, length, catCross, catLabel, catMark, grbit)
|
1427
1417
|
end
|
1428
1418
|
|
1429
1419
|
###############################################################################
|
@@ -1490,10 +1480,7 @@ class Chart < Worksheet
|
|
1490
1480
|
length = 0x0002 # Number of bytes to follow.
|
1491
1481
|
type = 0x0001 # Drop/hi-lo line type.
|
1492
1482
|
|
1493
|
-
|
1494
|
-
data = [type].pack('v')
|
1495
|
-
|
1496
|
-
append(header, data)
|
1483
|
+
store_simple(record, length, type)
|
1497
1484
|
end
|
1498
1485
|
|
1499
1486
|
###############################################################################
|
@@ -1550,13 +1537,7 @@ class Chart < Worksheet
|
|
1550
1537
|
# point_number # Point number.
|
1551
1538
|
grbit = 0x0000 # Format flags.
|
1552
1539
|
|
1553
|
-
|
1554
|
-
data = [point_number].pack('v')
|
1555
|
-
data += [series_index].pack('v')
|
1556
|
-
data += [series_number].pack('v')
|
1557
|
-
data += [grbit].pack('v')
|
1558
|
-
|
1559
|
-
append(header, data)
|
1540
|
+
store_simple(record, length, point_number, series_index, series_number, grbit)
|
1560
1541
|
end
|
1561
1542
|
|
1562
1543
|
###############################################################################
|
@@ -1571,10 +1552,7 @@ class Chart < Worksheet
|
|
1571
1552
|
length = 0x0002 # Number of bytes to follow.
|
1572
1553
|
type = 0x0002 # Type.
|
1573
1554
|
|
1574
|
-
|
1575
|
-
data = [type].pack('v')
|
1576
|
-
|
1577
|
-
append(header, data)
|
1555
|
+
store_simple(record, length, type)
|
1578
1556
|
end
|
1579
1557
|
|
1580
1558
|
###############################################################################
|
@@ -1588,10 +1566,7 @@ class Chart < Worksheet
|
|
1588
1566
|
length = 0x0002 # Number of bytes to follow.
|
1589
1567
|
percent_gap = 0x0096 # Drop bar width gap (%).
|
1590
1568
|
|
1591
|
-
|
1592
|
-
data = [percent_gap].pack('v')
|
1593
|
-
|
1594
|
-
append(header, data)
|
1569
|
+
store_simple(record, length, percent_gap)
|
1595
1570
|
end
|
1596
1571
|
|
1597
1572
|
###############################################################################
|
@@ -1604,9 +1579,7 @@ class Chart < Worksheet
|
|
1604
1579
|
record = 0x1034 # Record identifier.
|
1605
1580
|
length = 0x0000 # Number of bytes to follow.
|
1606
1581
|
|
1607
|
-
|
1608
|
-
|
1609
|
-
append(header)
|
1582
|
+
store_simple(record, length)
|
1610
1583
|
end
|
1611
1584
|
|
1612
1585
|
###############################################################################
|
@@ -1624,14 +1597,7 @@ class Chart < Worksheet
|
|
1624
1597
|
# height_basis # Height basis, in twips.
|
1625
1598
|
# scale_basis # Scale by chart area or plot area.
|
1626
1599
|
|
1627
|
-
|
1628
|
-
data = [width_basis].pack('v')
|
1629
|
-
data += [height_basis].pack('v')
|
1630
|
-
data += [height].pack('v')
|
1631
|
-
data += [scale_basis].pack('v')
|
1632
|
-
data += [index].pack('v')
|
1633
|
-
|
1634
|
-
append(header, data)
|
1600
|
+
store_simple(record, length, width_basis, height_basis, height, scale_basis, index)
|
1635
1601
|
end
|
1636
1602
|
|
1637
1603
|
###############################################################################
|
@@ -1646,10 +1612,7 @@ class Chart < Worksheet
|
|
1646
1612
|
length = 0x0002 # Number of bytes to follow.
|
1647
1613
|
# index # Font index.
|
1648
1614
|
|
1649
|
-
|
1650
|
-
data = [index].pack('v')
|
1651
|
-
|
1652
|
-
append(header, data)
|
1615
|
+
store_simple(record, length, index)
|
1653
1616
|
end
|
1654
1617
|
|
1655
1618
|
###############################################################################
|
@@ -1664,11 +1627,7 @@ class Chart < Worksheet
|
|
1664
1627
|
# frame_type # Frame type.
|
1665
1628
|
# grbit # Option flags.
|
1666
1629
|
|
1667
|
-
|
1668
|
-
data = [frame_type].pack('v')
|
1669
|
-
data += [grbit].pack('v')
|
1670
|
-
|
1671
|
-
append(header, data)
|
1630
|
+
store_simple(record, length, frame_type, grbit)
|
1672
1631
|
end
|
1673
1632
|
|
1674
1633
|
###############################################################################
|
@@ -1767,12 +1726,7 @@ class Chart < Worksheet
|
|
1767
1726
|
link_index1 = 0x0000 # Link index 1.
|
1768
1727
|
link_index2 = 0x0000 # Link index 2.
|
1769
1728
|
|
1770
|
-
|
1771
|
-
data = [link_type].pack('v')
|
1772
|
-
data += [link_index1].pack('v')
|
1773
|
-
data += [link_index2].pack('v')
|
1774
|
-
|
1775
|
-
append(header, data)
|
1729
|
+
store_simple(record, length, link_type, link_index1, link_index2)
|
1776
1730
|
end
|
1777
1731
|
|
1778
1732
|
###############################################################################
|
@@ -1786,10 +1740,7 @@ class Chart < Worksheet
|
|
1786
1740
|
length = 0x0002 # Number of bytes to follow.
|
1787
1741
|
percent = 0x0000 # Distance % from center.
|
1788
1742
|
|
1789
|
-
|
1790
|
-
data = [percent].pack('v')
|
1791
|
-
|
1792
|
-
append(header, data)
|
1743
|
+
store_simple(record, length, percent)
|
1793
1744
|
end
|
1794
1745
|
|
1795
1746
|
###############################################################################
|
@@ -1803,9 +1754,7 @@ class Chart < Worksheet
|
|
1803
1754
|
record = 0x1035 # Record identifier.
|
1804
1755
|
length = 0x0000 # Number of bytes to follow.
|
1805
1756
|
|
1806
|
-
|
1807
|
-
|
1808
|
-
append(header)
|
1757
|
+
store_simple(record, length)
|
1809
1758
|
end
|
1810
1759
|
|
1811
1760
|
###############################################################################
|
@@ -1906,15 +1855,8 @@ class Chart < Worksheet
|
|
1906
1855
|
bubble_type = 0x0001 # Type: bubble.
|
1907
1856
|
bubble_count = 0x0000 # Num of bubble values.
|
1908
1857
|
|
1909
|
-
|
1910
|
-
|
1911
|
-
data += [value_type].pack('v')
|
1912
|
-
data += [category_count].pack('v')
|
1913
|
-
data += [value_count].pack('v')
|
1914
|
-
data += [bubble_type].pack('v')
|
1915
|
-
data += [bubble_count].pack('v')
|
1916
|
-
|
1917
|
-
append(header, data)
|
1858
|
+
store_simple(record, length, category_type, value_type,
|
1859
|
+
category_count, value_count, bubble_type, bubble_count)
|
1918
1860
|
end
|
1919
1861
|
|
1920
1862
|
###############################################################################
|
@@ -1962,10 +1904,7 @@ class Chart < Worksheet
|
|
1962
1904
|
length = 0x0002 # Number of bytes to follow.
|
1963
1905
|
# series # Series parent.
|
1964
1906
|
|
1965
|
-
|
1966
|
-
data = [series].pack('v')
|
1967
|
-
|
1968
|
-
append(header, data)
|
1907
|
+
store_simple(record, length, series)
|
1969
1908
|
end
|
1970
1909
|
|
1971
1910
|
###############################################################################
|
@@ -1979,10 +1918,7 @@ class Chart < Worksheet
|
|
1979
1918
|
length = 0x0002 # Number of bytes to follow.
|
1980
1919
|
chartgroup = 0x0000 # Chart group index.
|
1981
1920
|
|
1982
|
-
|
1983
|
-
data = [chartgroup].pack('v')
|
1984
|
-
|
1985
|
-
append(header, data)
|
1921
|
+
store_simple(record, length, chartgroup)
|
1986
1922
|
end
|
1987
1923
|
|
1988
1924
|
###############################################################################
|
@@ -1999,11 +1935,7 @@ class Chart < Worksheet
|
|
1999
1935
|
|
2000
1936
|
grbit = 0x000A if @embedded
|
2001
1937
|
|
2002
|
-
|
2003
|
-
data = [grbit].pack('v')
|
2004
|
-
data += [empty_cells].pack('v')
|
2005
|
-
|
2006
|
-
append(header, data)
|
1938
|
+
store_simple(record, length, grbit, empty_cells)
|
2007
1939
|
end
|
2008
1940
|
|
2009
1941
|
###############################################################################
|
@@ -2171,8 +2103,11 @@ class Chart < Worksheet
|
|
2171
2103
|
# Setup the default configuration data for a chart.
|
2172
2104
|
#
|
2173
2105
|
def set_default_config_data # :nodoc:
|
2174
|
-
|
2175
|
-
|
2106
|
+
@config = default_config_data
|
2107
|
+
end
|
2108
|
+
|
2109
|
+
def default_config_data # :nodoc:
|
2110
|
+
{
|
2176
2111
|
:axisparent => [ 0, 0x00F8, 0x01F5, 0x0E7F, 0x0B36 ],
|
2177
2112
|
:axisparent_pos => [ 2, 2, 0x008C, 0x01AA, 0x0EEA, 0x0C52 ],
|
2178
2113
|
:chart => [ 0x0000, 0x0000, 0x02DD51E0, 0x01C2B838 ],
|
@@ -2192,8 +2127,9 @@ class Chart < Worksheet
|
|
2192
2127
|
:x_axis_text_pos => [ 2, 2, 0, 0, 0x2B, 0x17 ],
|
2193
2128
|
:y_axis_text => [ 0x002D, 0x06AA, 0x5F, 0x1CC, 0x0281, 0x00, 90 ],
|
2194
2129
|
:y_axis_text_pos => [ 2, 2, 0, 0, 0x17, 0x44 ],
|
2195
|
-
}
|
2130
|
+
}
|
2196
2131
|
end
|
2132
|
+
private :default_config_data
|
2197
2133
|
|
2198
2134
|
###############################################################################
|
2199
2135
|
#
|
@@ -2219,8 +2155,7 @@ class Chart < Worksheet
|
|
2219
2155
|
:line_options => 0x0009,
|
2220
2156
|
}
|
2221
2157
|
|
2222
|
-
|
2223
|
-
@config = {
|
2158
|
+
@config = default_config_data.merge({
|
2224
2159
|
:axisparent => [ 0, 0x01D8, 0x031D, 0x0D79, 0x07E9 ],
|
2225
2160
|
:axisparent_pos => [ 2, 2, 0x010C, 0x0292, 0x0E46, 0x09FD ],
|
2226
2161
|
:chart => [ 0x0000, 0x0000, 0x01847FE8, 0x00F47FE8 ],
|
@@ -2231,15 +2166,12 @@ class Chart < Worksheet
|
|
2231
2166
|
:legend => [ 0x044E, 0x0E4A, 0x088D, 0x0123, 0x0, 0x1, 0xF ],
|
2232
2167
|
:legend_pos => [ 5, 2, 0x044E, 0x0E4A, 0, 0 ],
|
2233
2168
|
:legend_text => [ 0xFFFFFFD9, 0xFFFFFFC1, 0, 0, 0x00B1, 0x0000 ],
|
2234
|
-
:legend_text_pos => [ 2, 2, 0, 0, 0, 0 ],
|
2235
2169
|
:series_text => [ 0xFFFFFFD9, 0xFFFFFFC1, 0, 0, 0x00B1, 0x1020 ],
|
2236
|
-
:series_text_pos => [ 2, 2, 0, 0, 0, 0 ],
|
2237
2170
|
:title_text => [ 0x060F, 0x004C, 0x038A, 0x016F, 0x0081, 0x1030 ],
|
2238
|
-
:title_text_pos => [ 2, 2, 0, 0, 0x73, 0x1D ],
|
2239
2171
|
:x_axis_text => [ 0x07EF, 0x0C8F, 0x153, 0x123, 0x81, 0x00 ],
|
2240
|
-
:x_axis_text_pos => [ 2, 2, 0, 0, 0x2B, 0x17 ],
|
2241
2172
|
:y_axis_text => [ 0x0057, 0x0564, 0xB5, 0x035D, 0x0281, 0x00, 90 ],
|
2242
|
-
|
2243
|
-
} #>>>
|
2173
|
+
})
|
2244
2174
|
end
|
2245
|
-
end
|
2175
|
+
end # class Chart
|
2176
|
+
|
2177
|
+
end # module Writeexcel
|
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require 'writeexcel'
|
17
17
|
|
18
|
+
module Writeexcel
|
19
|
+
|
18
20
|
class Chart
|
19
21
|
|
20
22
|
#
|
@@ -29,7 +31,7 @@ class Chart
|
|
29
31
|
# workbook = WriteExcel.new('chart.xls')
|
30
32
|
# worksheet = workbook.add_worksheet
|
31
33
|
#
|
32
|
-
# chart = workbook.add_chart(:type => Chart::Area)
|
34
|
+
# chart = workbook.add_chart(:type => 'Chart::Area')
|
33
35
|
#
|
34
36
|
# # Configure the chart.
|
35
37
|
# chart.add_series(
|
@@ -52,7 +54,7 @@ class Chart
|
|
52
54
|
# This module implements Area charts for WriteExcel. The chart object is
|
53
55
|
# created via the Workbook add_chart method:
|
54
56
|
#
|
55
|
-
# chart = workbook.add_chart(:type => Chart::Area)
|
57
|
+
# chart = workbook.add_chart(:type => 'Chart::Area')
|
56
58
|
#
|
57
59
|
# Once the object is created it can be configured via the following methods
|
58
60
|
# that are common to all chart classes:
|
@@ -95,7 +97,7 @@ class Chart
|
|
95
97
|
# worksheet.write('A2', data)
|
96
98
|
#
|
97
99
|
# # Create a new chart object. In this case an embedded chart.
|
98
|
-
# chart = workbook.add_chart(:type => Chart::Area, :embedded => 1)
|
100
|
+
# chart = workbook.add_chart(:type => 'Chart::Area', :embedded => 1)
|
99
101
|
#
|
100
102
|
# # Configure the first series. (Sample 1)
|
101
103
|
# chart.add_series(
|
@@ -144,10 +146,9 @@ class Chart
|
|
144
146
|
length = 0x0002 # Number of bytes to follow.
|
145
147
|
grbit = 0x0001 # Option flags.
|
146
148
|
|
147
|
-
|
148
|
-
data = [grbit].pack('v')
|
149
|
-
|
150
|
-
append(header, data)
|
149
|
+
store_simple(record, length, grbit)
|
151
150
|
end
|
152
151
|
end
|
153
|
-
end
|
152
|
+
end # class Chart
|
153
|
+
|
154
|
+
end # module Writeexcel
|
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require 'writeexcel/chart'
|
17
17
|
|
18
|
+
module Writeexcel
|
19
|
+
|
18
20
|
class Chart
|
19
21
|
|
20
22
|
#
|
@@ -29,7 +31,7 @@ class Chart
|
|
29
31
|
# workbook = WriteExcel.new('chart.xls')
|
30
32
|
# worksheet = workbook.add_worksheet
|
31
33
|
#
|
32
|
-
# chart = workbook.add_chart(:type => Chart::Bar)
|
34
|
+
# chart = workbook.add_chart(:type => 'Chart::Bar')
|
33
35
|
#
|
34
36
|
# # Configure the chart.
|
35
37
|
# chart.add_series(
|
@@ -52,7 +54,7 @@ class Chart
|
|
52
54
|
# This module implements Bar charts for WriteExcel. The chart object is
|
53
55
|
# created via the Workbook add_chart method:
|
54
56
|
#
|
55
|
-
# chart = workbook.add_chart(:type => Chart::Bar)
|
57
|
+
# chart = workbook.add_chart(:type => 'Chart::Bar')
|
56
58
|
#
|
57
59
|
# Once the object is created it can be configured via the following methods
|
58
60
|
# that are common to all chart classes:
|
@@ -95,7 +97,7 @@ class Chart
|
|
95
97
|
# worksheet.write('A2', data)
|
96
98
|
#
|
97
99
|
# # Create a new chart object. In this case an embedded chart.
|
98
|
-
# chart = workbook.add_chart(:type => Chart::Bar, :embedded => 1)
|
100
|
+
# chart = workbook.add_chart(:type => 'Chart::Bar', :embedded => 1)
|
99
101
|
#
|
100
102
|
# # Configure the first series. (Sample 1)
|
101
103
|
# chart.add_series(
|
@@ -150,12 +152,7 @@ class Chart
|
|
150
152
|
pcGap = 0x0096 # Space between cats.
|
151
153
|
grbit = 0x0001 # Option flags.
|
152
154
|
|
153
|
-
|
154
|
-
data = [pcOverlap].pack('v')
|
155
|
-
data += [pcGap].pack('v')
|
156
|
-
data += [grbit].pack('v')
|
157
|
-
|
158
|
-
append(header, data)
|
155
|
+
store_simple(record, length, pcOverlap, pcGap, grbit)
|
159
156
|
end
|
160
157
|
|
161
158
|
###############################################################################
|
@@ -175,4 +172,6 @@ class Chart
|
|
175
172
|
@config[:y_axis_text_pos] = [ 2, 2, 0, 0, 0x45, 0x17 ]
|
176
173
|
end
|
177
174
|
end
|
178
|
-
end
|
175
|
+
end # class Chart
|
176
|
+
|
177
|
+
end # module Writeexcel
|
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require 'writeexcel/chart'
|
17
17
|
|
18
|
+
module Writeexcel
|
19
|
+
|
18
20
|
class Chart
|
19
21
|
|
20
22
|
#
|
@@ -29,7 +31,7 @@ class Chart
|
|
29
31
|
# workbook = WriteExcel.new('chart.xls')
|
30
32
|
# worksheet = workbook.add_worksheet
|
31
33
|
#
|
32
|
-
# chart = workbook.add_chart(:type => Chart::Column)
|
34
|
+
# chart = workbook.add_chart(:type => 'Chart::Column')
|
33
35
|
#
|
34
36
|
# # Configure the chart.
|
35
37
|
# chart.add_series(
|
@@ -52,7 +54,7 @@ class Chart
|
|
52
54
|
# This module implements Column charts for WriteExcel. The chart object is
|
53
55
|
# created via the Workbook add_chart method:
|
54
56
|
#
|
55
|
-
# chart = workbook.add_chart(:type => Chart::Column)
|
57
|
+
# chart = workbook.add_chart(:type => 'Chart::Column')
|
56
58
|
#
|
57
59
|
# Once the object is created it can be configured via the following methods
|
58
60
|
# that are common to all chart classes:
|
@@ -95,7 +97,7 @@ class Chart
|
|
95
97
|
# worksheet.write('A2', data)
|
96
98
|
#
|
97
99
|
# # Create a new chart object. In this case an embedded chart.
|
98
|
-
# chart = workbook.add_chart(:type => Chart::Column, :embedded => 1)
|
100
|
+
# chart = workbook.add_chart(:type => 'Chart::Column', :embedded => 1)
|
99
101
|
#
|
100
102
|
# # Configure the first series. (Sample 1)
|
101
103
|
# chart.add_series(
|
@@ -146,12 +148,9 @@ class Chart
|
|
146
148
|
pcGap = 0x0096 # Space between cats.
|
147
149
|
grbit = 0x0000 # Option flags.
|
148
150
|
|
149
|
-
|
150
|
-
data = [pcOverlap].pack('v')
|
151
|
-
data += [pcGap].pack('v')
|
152
|
-
data += [grbit].pack('v')
|
153
|
-
|
154
|
-
append(header, data)
|
151
|
+
store_simple(record, length, pcOverlap, pcGap, grbit)
|
155
152
|
end
|
156
153
|
end
|
157
|
-
end
|
154
|
+
end # class Chart
|
155
|
+
|
156
|
+
end # module Writeexcel
|
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require 'writeexcel/chart'
|
17
17
|
|
18
|
+
module Writeexcel
|
19
|
+
|
18
20
|
class External < Chart # :nodoc:
|
19
21
|
###############################################################################
|
20
22
|
#
|
@@ -59,4 +61,6 @@ class External < Chart # :nodoc:
|
|
59
61
|
def close
|
60
62
|
nil
|
61
63
|
end
|
62
|
-
end
|
64
|
+
end # class Chart
|
65
|
+
|
66
|
+
end # module Writeexcel
|
@@ -15,6 +15,8 @@
|
|
15
15
|
|
16
16
|
require 'writeexcel/chart'
|
17
17
|
|
18
|
+
module Writeexcel
|
19
|
+
|
18
20
|
class Chart
|
19
21
|
|
20
22
|
#
|
@@ -29,7 +31,7 @@ class Chart
|
|
29
31
|
# workbook = WriteExcel.new('chart.xls')
|
30
32
|
# worksheet = workbook.add_worksheet
|
31
33
|
#
|
32
|
-
# chart = workbook.add_chart(:type => Chart::Line)
|
34
|
+
# chart = workbook.add_chart(:type => 'Chart::Line')
|
33
35
|
#
|
34
36
|
# # Configure the chart.
|
35
37
|
# chart.add_series(
|
@@ -52,7 +54,7 @@ class Chart
|
|
52
54
|
# This module implements Line charts for WriteExcel. The chart object is
|
53
55
|
# created via the Workbook add_chart method:
|
54
56
|
#
|
55
|
-
# chart = workbook.add_chart(:type => Chart::Line)
|
57
|
+
# chart = workbook.add_chart(:type => 'Chart::Line')
|
56
58
|
#
|
57
59
|
# Once the object is created it can be configured via the following methods
|
58
60
|
# that are common to all chart classes:
|
@@ -95,7 +97,7 @@ class Chart
|
|
95
97
|
# worksheet.write('A2', data)
|
96
98
|
#
|
97
99
|
# # Create a new chart object. In this case an embedded chart.
|
98
|
-
# chart = workbook.add_chart(:type => Chart::Line, :embedded => 1)
|
100
|
+
# chart = workbook.add_chart(:type => 'Chart::Line', :embedded => 1)
|
99
101
|
#
|
100
102
|
# # Configure the first series. (Sample 1)
|
101
103
|
# chart.add_series(
|
@@ -144,10 +146,9 @@ class Chart
|
|
144
146
|
length = 0x0002 # Number of bytes to follow.
|
145
147
|
grbit = 0x0000 # Option flags.
|
146
148
|
|
147
|
-
|
148
|
-
data = [grbit].pack('v')
|
149
|
-
|
150
|
-
append(header, data)
|
149
|
+
store_simple(record, length, grbit)
|
151
150
|
end
|
152
151
|
end
|
153
|
-
end
|
152
|
+
end # class Chart
|
153
|
+
|
154
|
+
end # module Writeexcel
|