line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
############################################################################### |
3
|
|
|
|
|
|
|
# |
4
|
|
|
|
|
|
|
# Theme - A class for writing the Excel XLSX Theme file. |
5
|
|
|
|
|
|
|
# |
6
|
|
|
|
|
|
|
# Used in conjunction with Excel::Writer::XLSX |
7
|
|
|
|
|
|
|
# |
8
|
|
|
|
|
|
|
# Copyright 2000-2021, John McNamara, jmcnamara@cpan.org |
9
|
|
|
|
|
|
|
# |
10
|
|
|
|
|
|
|
# Documentation after __END__ |
11
|
|
|
|
|
|
|
# |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
# perltidy with the following options: -mbl=2 -pt=0 -nola |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
############################################################################### |
17
|
|
|
|
|
|
|
# |
18
|
|
|
|
|
|
|
# NOTE: This class doesn't try to create the Excel theme1.xml programmatically. |
19
|
|
|
|
|
|
|
# Instead it just writes a stored default theme. This is mainly to |
20
|
|
|
|
|
|
|
# facilitate easier comparisons during testing. The theme1.xml file |
21
|
|
|
|
|
|
|
# isn't actually required. |
22
|
|
|
|
|
|
|
|
23
|
|
|
|
|
|
|
use 5.008002; |
24
|
1124
|
|
|
1124
|
|
15918
|
use strict; |
|
1124
|
|
|
|
|
3270
|
|
25
|
1124
|
|
|
1124
|
|
4868
|
use warnings; |
|
1124
|
|
|
|
|
1888
|
|
|
1124
|
|
|
|
|
18148
|
|
26
|
1124
|
|
|
1124
|
|
4516
|
use Exporter; |
|
1124
|
|
|
|
|
1962
|
|
|
1124
|
|
|
|
|
20917
|
|
27
|
1124
|
|
|
1124
|
|
4662
|
use Carp; |
|
1124
|
|
|
|
|
1979
|
|
|
1124
|
|
|
|
|
31782
|
|
28
|
1124
|
|
|
1124
|
|
5449
|
use IO::File; |
|
1124
|
|
|
|
|
2070
|
|
|
1124
|
|
|
|
|
49030
|
|
29
|
1124
|
|
|
1124
|
|
6095
|
use utf8; |
|
1124
|
|
|
|
|
2019
|
|
|
1124
|
|
|
|
|
129002
|
|
30
|
1124
|
|
|
1124
|
|
506433
|
|
|
1124
|
|
|
|
|
13210
|
|
|
1124
|
|
|
|
|
4910
|
|
31
|
|
|
|
|
|
|
our @ISA = qw(Exporter); |
32
|
|
|
|
|
|
|
our $VERSION = '1.09'; |
33
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
############################################################################### |
36
|
|
|
|
|
|
|
# |
37
|
|
|
|
|
|
|
# Public and private API methods. |
38
|
|
|
|
|
|
|
# |
39
|
|
|
|
|
|
|
############################################################################### |
40
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
|
42
|
|
|
|
|
|
|
############################################################################### |
43
|
|
|
|
|
|
|
# |
44
|
|
|
|
|
|
|
# new() |
45
|
|
|
|
|
|
|
# |
46
|
|
|
|
|
|
|
# Constructor. |
47
|
|
|
|
|
|
|
# |
48
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
my $class = shift; |
50
|
|
|
|
|
|
|
|
51
|
892
|
|
|
892
|
0
|
2087
|
my $self = {}; |
52
|
|
|
|
|
|
|
|
53
|
892
|
|
|
|
|
2017
|
bless $self, $class; |
54
|
|
|
|
|
|
|
|
55
|
892
|
|
|
|
|
2148
|
return $self; |
56
|
|
|
|
|
|
|
} |
57
|
892
|
|
|
|
|
2296
|
|
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
############################################################################### |
60
|
|
|
|
|
|
|
# |
61
|
|
|
|
|
|
|
# _assemble_xml_file() |
62
|
|
|
|
|
|
|
# |
63
|
|
|
|
|
|
|
# Assemble and write the XML file. |
64
|
|
|
|
|
|
|
# |
65
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
my $self = shift; |
67
|
|
|
|
|
|
|
|
68
|
|
|
|
|
|
|
$self->_write_theme_file(); |
69
|
892
|
|
|
892
|
|
1901
|
} |
70
|
|
|
|
|
|
|
|
71
|
892
|
|
|
|
|
3657
|
|
72
|
|
|
|
|
|
|
############################################################################### |
73
|
|
|
|
|
|
|
# |
74
|
|
|
|
|
|
|
# _set_xml_writer() |
75
|
|
|
|
|
|
|
# |
76
|
|
|
|
|
|
|
# Set the filehandle only. This class doesn't use a real XML writer class. |
77
|
|
|
|
|
|
|
# |
78
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
my $self = shift; |
80
|
|
|
|
|
|
|
my $filename = shift; |
81
|
|
|
|
|
|
|
|
82
|
|
|
|
|
|
|
my $fh = IO::File->new( $filename, 'w' ); |
83
|
892
|
|
|
892
|
|
9771
|
croak "Couldn't open file $filename for writing.\n" unless $fh; |
84
|
892
|
|
|
|
|
1716
|
|
85
|
|
|
|
|
|
|
binmode $fh, ':utf8'; |
86
|
892
|
|
|
|
|
5319
|
|
87
|
892
|
50
|
|
|
|
96106
|
$self->{_fh} = $fh; |
88
|
|
|
|
|
|
|
} |
89
|
892
|
|
|
|
|
4442
|
|
90
|
|
|
|
|
|
|
|
91
|
892
|
|
|
|
|
7483
|
############################################################################### |
92
|
|
|
|
|
|
|
# |
93
|
|
|
|
|
|
|
# Internal methods. |
94
|
|
|
|
|
|
|
# |
95
|
|
|
|
|
|
|
############################################################################### |
96
|
|
|
|
|
|
|
|
97
|
|
|
|
|
|
|
# Sparklines styles. Used by the Worksheet class. |
98
|
|
|
|
|
|
|
our @spark_styles = ( |
99
|
|
|
|
|
|
|
{ # 0 |
100
|
|
|
|
|
|
|
series => { _theme => "4", _tint => "-0.499984740745262" }, |
101
|
|
|
|
|
|
|
negative => { _theme => "5" }, |
102
|
|
|
|
|
|
|
markers => { _theme => "4", _tint => "-0.499984740745262" }, |
103
|
|
|
|
|
|
|
first => { _theme => "4", _tint => "0.39997558519241921" }, |
104
|
|
|
|
|
|
|
last => { _theme => "4", _tint => "0.39997558519241921" }, |
105
|
|
|
|
|
|
|
high => { _theme => "4" }, |
106
|
|
|
|
|
|
|
low => { _theme => "4" }, |
107
|
|
|
|
|
|
|
}, |
108
|
|
|
|
|
|
|
{ # 1 |
109
|
|
|
|
|
|
|
series => { _theme => "4", _tint => "-0.499984740745262" }, |
110
|
|
|
|
|
|
|
negative => { _theme => "5" }, |
111
|
|
|
|
|
|
|
markers => { _theme => "4", _tint => "-0.499984740745262" }, |
112
|
|
|
|
|
|
|
first => { _theme => "4", _tint => "0.39997558519241921" }, |
113
|
|
|
|
|
|
|
last => { _theme => "4", _tint => "0.39997558519241921" }, |
114
|
|
|
|
|
|
|
high => { _theme => "4" }, |
115
|
|
|
|
|
|
|
low => { _theme => "4" }, |
116
|
|
|
|
|
|
|
}, |
117
|
|
|
|
|
|
|
{ # 2 |
118
|
|
|
|
|
|
|
series => { _theme => "5", _tint => "-0.499984740745262" }, |
119
|
|
|
|
|
|
|
negative => { _theme => "6" }, |
120
|
|
|
|
|
|
|
markers => { _theme => "5", _tint => "-0.499984740745262" }, |
121
|
|
|
|
|
|
|
first => { _theme => "5", _tint => "0.39997558519241921" }, |
122
|
|
|
|
|
|
|
last => { _theme => "5", _tint => "0.39997558519241921" }, |
123
|
|
|
|
|
|
|
high => { _theme => "5" }, |
124
|
|
|
|
|
|
|
low => { _theme => "5" }, |
125
|
|
|
|
|
|
|
}, |
126
|
|
|
|
|
|
|
{ # 3 |
127
|
|
|
|
|
|
|
series => { _theme => "6", _tint => "-0.499984740745262" }, |
128
|
|
|
|
|
|
|
negative => { _theme => "7" }, |
129
|
|
|
|
|
|
|
markers => { _theme => "6", _tint => "-0.499984740745262" }, |
130
|
|
|
|
|
|
|
first => { _theme => "6", _tint => "0.39997558519241921" }, |
131
|
|
|
|
|
|
|
last => { _theme => "6", _tint => "0.39997558519241921" }, |
132
|
|
|
|
|
|
|
high => { _theme => "6" }, |
133
|
|
|
|
|
|
|
low => { _theme => "6" }, |
134
|
|
|
|
|
|
|
}, |
135
|
|
|
|
|
|
|
{ # 4 |
136
|
|
|
|
|
|
|
series => { _theme => "7", _tint => "-0.499984740745262" }, |
137
|
|
|
|
|
|
|
negative => { _theme => "8" }, |
138
|
|
|
|
|
|
|
markers => { _theme => "7", _tint => "-0.499984740745262" }, |
139
|
|
|
|
|
|
|
first => { _theme => "7", _tint => "0.39997558519241921" }, |
140
|
|
|
|
|
|
|
last => { _theme => "7", _tint => "0.39997558519241921" }, |
141
|
|
|
|
|
|
|
high => { _theme => "7" }, |
142
|
|
|
|
|
|
|
low => { _theme => "7" }, |
143
|
|
|
|
|
|
|
}, |
144
|
|
|
|
|
|
|
{ # 5 |
145
|
|
|
|
|
|
|
series => { _theme => "8", _tint => "-0.499984740745262" }, |
146
|
|
|
|
|
|
|
negative => { _theme => "9" }, |
147
|
|
|
|
|
|
|
markers => { _theme => "8", _tint => "-0.499984740745262" }, |
148
|
|
|
|
|
|
|
first => { _theme => "8", _tint => "0.39997558519241921" }, |
149
|
|
|
|
|
|
|
last => { _theme => "8", _tint => "0.39997558519241921" }, |
150
|
|
|
|
|
|
|
high => { _theme => "8" }, |
151
|
|
|
|
|
|
|
low => { _theme => "8" }, |
152
|
|
|
|
|
|
|
}, |
153
|
|
|
|
|
|
|
{ # 6 |
154
|
|
|
|
|
|
|
series => { _theme => "9", _tint => "-0.499984740745262" }, |
155
|
|
|
|
|
|
|
negative => { _theme => "4" }, |
156
|
|
|
|
|
|
|
markers => { _theme => "9", _tint => "-0.499984740745262" }, |
157
|
|
|
|
|
|
|
first => { _theme => "9", _tint => "0.39997558519241921" }, |
158
|
|
|
|
|
|
|
last => { _theme => "9", _tint => "0.39997558519241921" }, |
159
|
|
|
|
|
|
|
high => { _theme => "9" }, |
160
|
|
|
|
|
|
|
low => { _theme => "9" }, |
161
|
|
|
|
|
|
|
}, |
162
|
|
|
|
|
|
|
{ # 7 |
163
|
|
|
|
|
|
|
series => { _theme => "4", _tint => "-0.249977111117893" }, |
164
|
|
|
|
|
|
|
negative => { _theme => "5" }, |
165
|
|
|
|
|
|
|
markers => { _theme => "5", _tint => "-0.249977111117893" }, |
166
|
|
|
|
|
|
|
first => { _theme => "5", _tint => "-0.249977111117893" }, |
167
|
|
|
|
|
|
|
last => { _theme => "5", _tint => "-0.249977111117893" }, |
168
|
|
|
|
|
|
|
high => { _theme => "5", _tint => "-0.249977111117893" }, |
169
|
|
|
|
|
|
|
low => { _theme => "5", _tint => "-0.249977111117893" }, |
170
|
|
|
|
|
|
|
}, |
171
|
|
|
|
|
|
|
{ # 8 |
172
|
|
|
|
|
|
|
series => { _theme => "5", _tint => "-0.249977111117893" }, |
173
|
|
|
|
|
|
|
negative => { _theme => "6" }, |
174
|
|
|
|
|
|
|
markers => { _theme => "6", _tint => "-0.249977111117893" }, |
175
|
|
|
|
|
|
|
first => { _theme => "6", _tint => "-0.249977111117893" }, |
176
|
|
|
|
|
|
|
last => { _theme => "6", _tint => "-0.249977111117893" }, |
177
|
|
|
|
|
|
|
high => { _theme => "6", _tint => "-0.249977111117893" }, |
178
|
|
|
|
|
|
|
low => { _theme => "6", _tint => "-0.249977111117893" }, |
179
|
|
|
|
|
|
|
}, |
180
|
|
|
|
|
|
|
{ # 9 |
181
|
|
|
|
|
|
|
series => { _theme => "6", _tint => "-0.249977111117893" }, |
182
|
|
|
|
|
|
|
negative => { _theme => "7" }, |
183
|
|
|
|
|
|
|
markers => { _theme => "7", _tint => "-0.249977111117893" }, |
184
|
|
|
|
|
|
|
first => { _theme => "7", _tint => "-0.249977111117893" }, |
185
|
|
|
|
|
|
|
last => { _theme => "7", _tint => "-0.249977111117893" }, |
186
|
|
|
|
|
|
|
high => { _theme => "7", _tint => "-0.249977111117893" }, |
187
|
|
|
|
|
|
|
low => { _theme => "7", _tint => "-0.249977111117893" }, |
188
|
|
|
|
|
|
|
}, |
189
|
|
|
|
|
|
|
{ # 10 |
190
|
|
|
|
|
|
|
series => { _theme => "7", _tint => "-0.249977111117893" }, |
191
|
|
|
|
|
|
|
negative => { _theme => "8" }, |
192
|
|
|
|
|
|
|
markers => { _theme => "8", _tint => "-0.249977111117893" }, |
193
|
|
|
|
|
|
|
first => { _theme => "8", _tint => "-0.249977111117893" }, |
194
|
|
|
|
|
|
|
last => { _theme => "8", _tint => "-0.249977111117893" }, |
195
|
|
|
|
|
|
|
high => { _theme => "8", _tint => "-0.249977111117893" }, |
196
|
|
|
|
|
|
|
low => { _theme => "8", _tint => "-0.249977111117893" }, |
197
|
|
|
|
|
|
|
}, |
198
|
|
|
|
|
|
|
{ # 11 |
199
|
|
|
|
|
|
|
series => { _theme => "8", _tint => "-0.249977111117893" }, |
200
|
|
|
|
|
|
|
negative => { _theme => "9" }, |
201
|
|
|
|
|
|
|
markers => { _theme => "9", _tint => "-0.249977111117893" }, |
202
|
|
|
|
|
|
|
first => { _theme => "9", _tint => "-0.249977111117893" }, |
203
|
|
|
|
|
|
|
last => { _theme => "9", _tint => "-0.249977111117893" }, |
204
|
|
|
|
|
|
|
high => { _theme => "9", _tint => "-0.249977111117893" }, |
205
|
|
|
|
|
|
|
low => { _theme => "9", _tint => "-0.249977111117893" }, |
206
|
|
|
|
|
|
|
}, |
207
|
|
|
|
|
|
|
{ # 12 |
208
|
|
|
|
|
|
|
series => { _theme => "9", _tint => "-0.249977111117893" }, |
209
|
|
|
|
|
|
|
negative => { _theme => "4" }, |
210
|
|
|
|
|
|
|
markers => { _theme => "4", _tint => "-0.249977111117893" }, |
211
|
|
|
|
|
|
|
first => { _theme => "4", _tint => "-0.249977111117893" }, |
212
|
|
|
|
|
|
|
last => { _theme => "4", _tint => "-0.249977111117893" }, |
213
|
|
|
|
|
|
|
high => { _theme => "4", _tint => "-0.249977111117893" }, |
214
|
|
|
|
|
|
|
low => { _theme => "4", _tint => "-0.249977111117893" }, |
215
|
|
|
|
|
|
|
}, |
216
|
|
|
|
|
|
|
{ # 13 |
217
|
|
|
|
|
|
|
series => { _theme => "4" }, |
218
|
|
|
|
|
|
|
negative => { _theme => "5" }, |
219
|
|
|
|
|
|
|
markers => { _theme => "4", _tint => "-0.249977111117893" }, |
220
|
|
|
|
|
|
|
first => { _theme => "4", _tint => "-0.249977111117893" }, |
221
|
|
|
|
|
|
|
last => { _theme => "4", _tint => "-0.249977111117893" }, |
222
|
|
|
|
|
|
|
high => { _theme => "4", _tint => "-0.249977111117893" }, |
223
|
|
|
|
|
|
|
low => { _theme => "4", _tint => "-0.249977111117893" }, |
224
|
|
|
|
|
|
|
}, |
225
|
|
|
|
|
|
|
{ # 14 |
226
|
|
|
|
|
|
|
series => { _theme => "5" }, |
227
|
|
|
|
|
|
|
negative => { _theme => "6" }, |
228
|
|
|
|
|
|
|
markers => { _theme => "5", _tint => "-0.249977111117893" }, |
229
|
|
|
|
|
|
|
first => { _theme => "5", _tint => "-0.249977111117893" }, |
230
|
|
|
|
|
|
|
last => { _theme => "5", _tint => "-0.249977111117893" }, |
231
|
|
|
|
|
|
|
high => { _theme => "5", _tint => "-0.249977111117893" }, |
232
|
|
|
|
|
|
|
low => { _theme => "5", _tint => "-0.249977111117893" }, |
233
|
|
|
|
|
|
|
}, |
234
|
|
|
|
|
|
|
{ # 15 |
235
|
|
|
|
|
|
|
series => { _theme => "6" }, |
236
|
|
|
|
|
|
|
negative => { _theme => "7" }, |
237
|
|
|
|
|
|
|
markers => { _theme => "6", _tint => "-0.249977111117893" }, |
238
|
|
|
|
|
|
|
first => { _theme => "6", _tint => "-0.249977111117893" }, |
239
|
|
|
|
|
|
|
last => { _theme => "6", _tint => "-0.249977111117893" }, |
240
|
|
|
|
|
|
|
high => { _theme => "6", _tint => "-0.249977111117893" }, |
241
|
|
|
|
|
|
|
low => { _theme => "6", _tint => "-0.249977111117893" }, |
242
|
|
|
|
|
|
|
}, |
243
|
|
|
|
|
|
|
{ # 16 |
244
|
|
|
|
|
|
|
series => { _theme => "7" }, |
245
|
|
|
|
|
|
|
negative => { _theme => "8" }, |
246
|
|
|
|
|
|
|
markers => { _theme => "7", _tint => "-0.249977111117893" }, |
247
|
|
|
|
|
|
|
first => { _theme => "7", _tint => "-0.249977111117893" }, |
248
|
|
|
|
|
|
|
last => { _theme => "7", _tint => "-0.249977111117893" }, |
249
|
|
|
|
|
|
|
high => { _theme => "7", _tint => "-0.249977111117893" }, |
250
|
|
|
|
|
|
|
low => { _theme => "7", _tint => "-0.249977111117893" }, |
251
|
|
|
|
|
|
|
}, |
252
|
|
|
|
|
|
|
{ # 17 |
253
|
|
|
|
|
|
|
series => { _theme => "8" }, |
254
|
|
|
|
|
|
|
negative => { _theme => "9" }, |
255
|
|
|
|
|
|
|
markers => { _theme => "8", _tint => "-0.249977111117893" }, |
256
|
|
|
|
|
|
|
first => { _theme => "8", _tint => "-0.249977111117893" }, |
257
|
|
|
|
|
|
|
last => { _theme => "8", _tint => "-0.249977111117893" }, |
258
|
|
|
|
|
|
|
high => { _theme => "8", _tint => "-0.249977111117893" }, |
259
|
|
|
|
|
|
|
low => { _theme => "8", _tint => "-0.249977111117893" }, |
260
|
|
|
|
|
|
|
}, |
261
|
|
|
|
|
|
|
{ # 18 |
262
|
|
|
|
|
|
|
series => { _theme => "9" }, |
263
|
|
|
|
|
|
|
negative => { _theme => "4" }, |
264
|
|
|
|
|
|
|
markers => { _theme => "9", _tint => "-0.249977111117893" }, |
265
|
|
|
|
|
|
|
first => { _theme => "9", _tint => "-0.249977111117893" }, |
266
|
|
|
|
|
|
|
last => { _theme => "9", _tint => "-0.249977111117893" }, |
267
|
|
|
|
|
|
|
high => { _theme => "9", _tint => "-0.249977111117893" }, |
268
|
|
|
|
|
|
|
low => { _theme => "9", _tint => "-0.249977111117893" }, |
269
|
|
|
|
|
|
|
}, |
270
|
|
|
|
|
|
|
{ # 19 |
271
|
|
|
|
|
|
|
series => { _theme => "4", _tint => "0.39997558519241921" }, |
272
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
273
|
|
|
|
|
|
|
markers => { _theme => "4", _tint => "0.79998168889431442" }, |
274
|
|
|
|
|
|
|
first => { _theme => "4", _tint => "-0.249977111117893" }, |
275
|
|
|
|
|
|
|
last => { _theme => "4", _tint => "-0.249977111117893" }, |
276
|
|
|
|
|
|
|
high => { _theme => "4", _tint => "-0.499984740745262" }, |
277
|
|
|
|
|
|
|
low => { _theme => "4", _tint => "-0.499984740745262" }, |
278
|
|
|
|
|
|
|
}, |
279
|
|
|
|
|
|
|
{ # 20 |
280
|
|
|
|
|
|
|
series => { _theme => "5", _tint => "0.39997558519241921" }, |
281
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
282
|
|
|
|
|
|
|
markers => { _theme => "5", _tint => "0.79998168889431442" }, |
283
|
|
|
|
|
|
|
first => { _theme => "5", _tint => "-0.249977111117893" }, |
284
|
|
|
|
|
|
|
last => { _theme => "5", _tint => "-0.249977111117893" }, |
285
|
|
|
|
|
|
|
high => { _theme => "5", _tint => "-0.499984740745262" }, |
286
|
|
|
|
|
|
|
low => { _theme => "5", _tint => "-0.499984740745262" }, |
287
|
|
|
|
|
|
|
}, |
288
|
|
|
|
|
|
|
{ # 21 |
289
|
|
|
|
|
|
|
series => { _theme => "6", _tint => "0.39997558519241921" }, |
290
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
291
|
|
|
|
|
|
|
markers => { _theme => "6", _tint => "0.79998168889431442" }, |
292
|
|
|
|
|
|
|
first => { _theme => "6", _tint => "-0.249977111117893" }, |
293
|
|
|
|
|
|
|
last => { _theme => "6", _tint => "-0.249977111117893" }, |
294
|
|
|
|
|
|
|
high => { _theme => "6", _tint => "-0.499984740745262" }, |
295
|
|
|
|
|
|
|
low => { _theme => "6", _tint => "-0.499984740745262" }, |
296
|
|
|
|
|
|
|
}, |
297
|
|
|
|
|
|
|
{ # 22 |
298
|
|
|
|
|
|
|
series => { _theme => "7", _tint => "0.39997558519241921" }, |
299
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
300
|
|
|
|
|
|
|
markers => { _theme => "7", _tint => "0.79998168889431442" }, |
301
|
|
|
|
|
|
|
first => { _theme => "7", _tint => "-0.249977111117893" }, |
302
|
|
|
|
|
|
|
last => { _theme => "7", _tint => "-0.249977111117893" }, |
303
|
|
|
|
|
|
|
high => { _theme => "7", _tint => "-0.499984740745262" }, |
304
|
|
|
|
|
|
|
low => { _theme => "7", _tint => "-0.499984740745262" }, |
305
|
|
|
|
|
|
|
}, |
306
|
|
|
|
|
|
|
{ # 23 |
307
|
|
|
|
|
|
|
series => { _theme => "8", _tint => "0.39997558519241921" }, |
308
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
309
|
|
|
|
|
|
|
markers => { _theme => "8", _tint => "0.79998168889431442" }, |
310
|
|
|
|
|
|
|
first => { _theme => "8", _tint => "-0.249977111117893" }, |
311
|
|
|
|
|
|
|
last => { _theme => "8", _tint => "-0.249977111117893" }, |
312
|
|
|
|
|
|
|
high => { _theme => "8", _tint => "-0.499984740745262" }, |
313
|
|
|
|
|
|
|
low => { _theme => "8", _tint => "-0.499984740745262" }, |
314
|
|
|
|
|
|
|
}, |
315
|
|
|
|
|
|
|
{ # 24 |
316
|
|
|
|
|
|
|
series => { _theme => "9", _tint => "0.39997558519241921" }, |
317
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.499984740745262" }, |
318
|
|
|
|
|
|
|
markers => { _theme => "9", _tint => "0.79998168889431442" }, |
319
|
|
|
|
|
|
|
first => { _theme => "9", _tint => "-0.249977111117893" }, |
320
|
|
|
|
|
|
|
last => { _theme => "9", _tint => "-0.249977111117893" }, |
321
|
|
|
|
|
|
|
high => { _theme => "9", _tint => "-0.499984740745262" }, |
322
|
|
|
|
|
|
|
low => { _theme => "9", _tint => "-0.499984740745262" }, |
323
|
|
|
|
|
|
|
}, |
324
|
|
|
|
|
|
|
{ # 25 |
325
|
|
|
|
|
|
|
series => { _theme => "1", _tint => "0.499984740745262" }, |
326
|
|
|
|
|
|
|
negative => { _theme => "1", _tint => "0.249977111117893" }, |
327
|
|
|
|
|
|
|
markers => { _theme => "1", _tint => "0.249977111117893" }, |
328
|
|
|
|
|
|
|
first => { _theme => "1", _tint => "0.249977111117893" }, |
329
|
|
|
|
|
|
|
last => { _theme => "1", _tint => "0.249977111117893" }, |
330
|
|
|
|
|
|
|
high => { _theme => "1", _tint => "0.249977111117893" }, |
331
|
|
|
|
|
|
|
low => { _theme => "1", _tint => "0.249977111117893" }, |
332
|
|
|
|
|
|
|
}, |
333
|
|
|
|
|
|
|
{ # 26 |
334
|
|
|
|
|
|
|
series => { _theme => "1", _tint => "0.34998626667073579" }, |
335
|
|
|
|
|
|
|
negative => { _theme => "0", _tint => "-0.249977111117893" }, |
336
|
|
|
|
|
|
|
markers => { _theme => "0", _tint => "-0.249977111117893" }, |
337
|
|
|
|
|
|
|
first => { _theme => "0", _tint => "-0.249977111117893" }, |
338
|
|
|
|
|
|
|
last => { _theme => "0", _tint => "-0.249977111117893" }, |
339
|
|
|
|
|
|
|
high => { _theme => "0", _tint => "-0.249977111117893" }, |
340
|
|
|
|
|
|
|
low => { _theme => "0", _tint => "-0.249977111117893" }, |
341
|
|
|
|
|
|
|
}, |
342
|
|
|
|
|
|
|
{ # 27 |
343
|
|
|
|
|
|
|
series => { _rgb => "FF323232" }, |
344
|
|
|
|
|
|
|
negative => { _rgb => "FFD00000" }, |
345
|
|
|
|
|
|
|
markers => { _rgb => "FFD00000" }, |
346
|
|
|
|
|
|
|
first => { _rgb => "FFD00000" }, |
347
|
|
|
|
|
|
|
last => { _rgb => "FFD00000" }, |
348
|
|
|
|
|
|
|
high => { _rgb => "FFD00000" }, |
349
|
|
|
|
|
|
|
low => { _rgb => "FFD00000" }, |
350
|
|
|
|
|
|
|
}, |
351
|
|
|
|
|
|
|
{ # 28 |
352
|
|
|
|
|
|
|
series => { _rgb => "FF000000" }, |
353
|
|
|
|
|
|
|
negative => { _rgb => "FF0070C0" }, |
354
|
|
|
|
|
|
|
markers => { _rgb => "FF0070C0" }, |
355
|
|
|
|
|
|
|
first => { _rgb => "FF0070C0" }, |
356
|
|
|
|
|
|
|
last => { _rgb => "FF0070C0" }, |
357
|
|
|
|
|
|
|
high => { _rgb => "FF0070C0" }, |
358
|
|
|
|
|
|
|
low => { _rgb => "FF0070C0" }, |
359
|
|
|
|
|
|
|
}, |
360
|
|
|
|
|
|
|
{ # 29 |
361
|
|
|
|
|
|
|
series => { _rgb => "FF376092" }, |
362
|
|
|
|
|
|
|
negative => { _rgb => "FFD00000" }, |
363
|
|
|
|
|
|
|
markers => { _rgb => "FFD00000" }, |
364
|
|
|
|
|
|
|
first => { _rgb => "FFD00000" }, |
365
|
|
|
|
|
|
|
last => { _rgb => "FFD00000" }, |
366
|
|
|
|
|
|
|
high => { _rgb => "FFD00000" }, |
367
|
|
|
|
|
|
|
low => { _rgb => "FFD00000" }, |
368
|
|
|
|
|
|
|
}, |
369
|
|
|
|
|
|
|
{ # 30 |
370
|
|
|
|
|
|
|
series => { _rgb => "FF0070C0" }, |
371
|
|
|
|
|
|
|
negative => { _rgb => "FF000000" }, |
372
|
|
|
|
|
|
|
markers => { _rgb => "FF000000" }, |
373
|
|
|
|
|
|
|
first => { _rgb => "FF000000" }, |
374
|
|
|
|
|
|
|
last => { _rgb => "FF000000" }, |
375
|
|
|
|
|
|
|
high => { _rgb => "FF000000" }, |
376
|
|
|
|
|
|
|
low => { _rgb => "FF000000" }, |
377
|
|
|
|
|
|
|
}, |
378
|
|
|
|
|
|
|
{ # 31 |
379
|
|
|
|
|
|
|
series => { _rgb => "FF5F5F5F" }, |
380
|
|
|
|
|
|
|
negative => { _rgb => "FFFFB620" }, |
381
|
|
|
|
|
|
|
markers => { _rgb => "FFD70077" }, |
382
|
|
|
|
|
|
|
first => { _rgb => "FF5687C2" }, |
383
|
|
|
|
|
|
|
last => { _rgb => "FF359CEB" }, |
384
|
|
|
|
|
|
|
high => { _rgb => "FF56BE79" }, |
385
|
|
|
|
|
|
|
low => { _rgb => "FFFF5055" }, |
386
|
|
|
|
|
|
|
}, |
387
|
|
|
|
|
|
|
{ # 32 |
388
|
|
|
|
|
|
|
series => { _rgb => "FF5687C2" }, |
389
|
|
|
|
|
|
|
negative => { _rgb => "FFFFB620" }, |
390
|
|
|
|
|
|
|
markers => { _rgb => "FFD70077" }, |
391
|
|
|
|
|
|
|
first => { _rgb => "FF777777" }, |
392
|
|
|
|
|
|
|
last => { _rgb => "FF359CEB" }, |
393
|
|
|
|
|
|
|
high => { _rgb => "FF56BE79" }, |
394
|
|
|
|
|
|
|
low => { _rgb => "FFFF5055" }, |
395
|
|
|
|
|
|
|
}, |
396
|
|
|
|
|
|
|
{ # 33 |
397
|
|
|
|
|
|
|
series => { _rgb => "FFC6EFCE" }, |
398
|
|
|
|
|
|
|
negative => { _rgb => "FFFFC7CE" }, |
399
|
|
|
|
|
|
|
markers => { _rgb => "FF8CADD6" }, |
400
|
|
|
|
|
|
|
first => { _rgb => "FFFFDC47" }, |
401
|
|
|
|
|
|
|
last => { _rgb => "FFFFEB9C" }, |
402
|
|
|
|
|
|
|
high => { _rgb => "FF60D276" }, |
403
|
|
|
|
|
|
|
low => { _rgb => "FFFF5367" }, |
404
|
|
|
|
|
|
|
}, |
405
|
|
|
|
|
|
|
{ # 34 |
406
|
|
|
|
|
|
|
series => { _rgb => "FF00B050" }, |
407
|
|
|
|
|
|
|
negative => { _rgb => "FFFF0000" }, |
408
|
|
|
|
|
|
|
markers => { _rgb => "FF0070C0" }, |
409
|
|
|
|
|
|
|
first => { _rgb => "FFFFC000" }, |
410
|
|
|
|
|
|
|
last => { _rgb => "FFFFC000" }, |
411
|
|
|
|
|
|
|
high => { _rgb => "FF00B050" }, |
412
|
|
|
|
|
|
|
low => { _rgb => "FFFF0000" }, |
413
|
|
|
|
|
|
|
}, |
414
|
|
|
|
|
|
|
{ # 35 |
415
|
|
|
|
|
|
|
series => { _theme => "3" }, |
416
|
|
|
|
|
|
|
negative => { _theme => "9" }, |
417
|
|
|
|
|
|
|
markers => { _theme => "8" }, |
418
|
|
|
|
|
|
|
first => { _theme => "4" }, |
419
|
|
|
|
|
|
|
last => { _theme => "5" }, |
420
|
|
|
|
|
|
|
high => { _theme => "6" }, |
421
|
|
|
|
|
|
|
low => { _theme => "7" }, |
422
|
|
|
|
|
|
|
}, |
423
|
|
|
|
|
|
|
{ # 36 |
424
|
|
|
|
|
|
|
series => { _theme => "1" }, |
425
|
|
|
|
|
|
|
negative => { _theme => "9" }, |
426
|
|
|
|
|
|
|
markers => { _theme => "8" }, |
427
|
|
|
|
|
|
|
first => { _theme => "4" }, |
428
|
|
|
|
|
|
|
last => { _theme => "5" }, |
429
|
|
|
|
|
|
|
high => { _theme => "6" }, |
430
|
|
|
|
|
|
|
low => { _theme => "7" }, |
431
|
|
|
|
|
|
|
}, |
432
|
|
|
|
|
|
|
); |
433
|
|
|
|
|
|
|
|
434
|
|
|
|
|
|
|
|
435
|
|
|
|
|
|
|
############################################################################### |
436
|
|
|
|
|
|
|
# |
437
|
|
|
|
|
|
|
# XML writing methods. |
438
|
|
|
|
|
|
|
# |
439
|
|
|
|
|
|
|
############################################################################### |
440
|
|
|
|
|
|
|
|
441
|
|
|
|
|
|
|
|
442
|
|
|
|
|
|
|
############################################################################### |
443
|
|
|
|
|
|
|
# |
444
|
|
|
|
|
|
|
# _write_theme_file() |
445
|
|
|
|
|
|
|
# |
446
|
|
|
|
|
|
|
# Write a default theme.xml file. |
447
|
|
|
|
|
|
|
# |
448
|
|
|
|
|
|
|
|
449
|
|
|
|
|
|
|
my $self = shift; |
450
|
|
|
|
|
|
|
my $theme = << 'XML_DATA'; |
451
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
452
|
|
|
|
|
|
|
<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink><a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS Pゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/><a:font script="Jpan" typeface="MS Pゴシック"/><a:font script="Hang" typeface="맑은 고딕"/><a:font script="Hans" typeface="宋体"/><a:font script="Hant" typeface="新細明體"/><a:font script="Arab" typeface="Arial"/><a:font script="Hebr" typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme> |
453
|
|
|
|
|
|
|
XML_DATA |
454
|
892
|
|
|
892
|
|
1772
|
|
455
|
892
|
|
|
|
|
1912
|
local $\ = undef; # Protect print from -l on commandline. |
456
|
|
|
|
|
|
|
print { $self->{_fh} } $theme; |
457
|
|
|
|
|
|
|
} |
458
|
|
|
|
|
|
|
|
459
|
|
|
|
|
|
|
|
460
|
892
|
|
|
|
|
2772
|
1; |
461
|
892
|
|
|
|
|
1740
|
|
|
892
|
|
|
|
|
46164
|
|
462
|
|
|
|
|
|
|
|
463
|
|
|
|
|
|
|
|
464
|
|
|
|
|
|
|
=pod |
465
|
|
|
|
|
|
|
|
466
|
|
|
|
|
|
|
=head1 NAME |
467
|
|
|
|
|
|
|
|
468
|
|
|
|
|
|
|
Theme - A class for writing the Excel XLSX Theme file. |
469
|
|
|
|
|
|
|
|
470
|
|
|
|
|
|
|
=head1 SYNOPSIS |
471
|
|
|
|
|
|
|
|
472
|
|
|
|
|
|
|
See the documentation for L<Excel::Writer::XLSX>. |
473
|
|
|
|
|
|
|
|
474
|
|
|
|
|
|
|
=head1 DESCRIPTION |
475
|
|
|
|
|
|
|
|
476
|
|
|
|
|
|
|
This module is used in conjunction with L<Excel::Writer::XLSX>. |
477
|
|
|
|
|
|
|
|
478
|
|
|
|
|
|
|
=head1 AUTHOR |
479
|
|
|
|
|
|
|
|
480
|
|
|
|
|
|
|
John McNamara jmcnamara@cpan.org |
481
|
|
|
|
|
|
|
|
482
|
|
|
|
|
|
|
=head1 COPYRIGHT |
483
|
|
|
|
|
|
|
|
484
|
|
|
|
|
|
|
(c) MM-MMXXI, John McNamara. |
485
|
|
|
|
|
|
|
|
486
|
|
|
|
|
|
|
All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. |
487
|
|
|
|
|
|
|
|
488
|
|
|
|
|
|
|
=head1 LICENSE |
489
|
|
|
|
|
|
|
|
490
|
|
|
|
|
|
|
Either the Perl Artistic Licence L<http://dev.perl.org/licenses/artistic.html> or the GPL L<http://www.opensource.org/licenses/gpl-license.php>. |
491
|
|
|
|
|
|
|
|
492
|
|
|
|
|
|
|
=head1 DISCLAIMER OF WARRANTY |
493
|
|
|
|
|
|
|
|
494
|
|
|
|
|
|
|
See the documentation for L<Excel::Writer::XLSX>. |
495
|
|
|
|
|
|
|
|
496
|
|
|
|
|
|
|
=cut |