writeexcel 0.6.19 → 1.0.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/README.rdoc +7 -12
- data/examples/properties.rb +2 -2
- data/lib/writeexcel/col_info.rb +0 -2
- data/lib/writeexcel/properties.rb +9 -7
- data/lib/writeexcel/storage_lite.rb +16 -13
- data/lib/writeexcel/version.rb +1 -1
- data/test/perl_output/properties.xls +0 -0
- data/test/test_21_escher.rb +0 -8
- data/test/test_22_mso_drawing_group.rb +0 -8
- data/test/test_23_note.rb +0 -9
- data/test/test_24_txo.rb +0 -9
- data/test/test_30_validation_dval.rb +0 -9
- data/test/test_31_validation_dv_strings.rb +0 -9
- data/test/test_32_validation_dv_formula.rb +0 -9
- data/test/test_40_property_types.rb +0 -9
- data/test/test_41_properties.rb +0 -9
- data/test/test_42_set_properties.rb +0 -9
- data/test/test_60_chart_generic.rb +0 -4
- data/test/test_63_chart_area_formats.rb +0 -4
- data/test/test_example_match.rb +34 -0
- data/test/test_properties.rb +34 -0
- data/test/test_storage_lite.rb +0 -10
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 702289cea8e425bbac18a6d8f80c4576cbf20161
|
4
|
+
data.tar.gz: b1957b4f76a19077b31f11183f0a8bcec2ba4553
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d37342053b25ef225bbd72facd93e71058c401d6d002ad579e5b6265f78b2dce090dfd597f9a984e37824f2574997fabc8ec55c849467e0bba88c2443c278dec
|
7
|
+
data.tar.gz: 2a4e84a327faee73ffb11784a5cde5dd267bd998a508821509e713e104f87241b04b836472b3ca47f871368858c36a70f7a70c80c67d762066f937828c3d720d
|
data/README.rdoc
CHANGED
@@ -5,10 +5,7 @@ Write to a cross-platform Excel binary file.
|
|
5
5
|
== Description
|
6
6
|
|
7
7
|
This library is converted from Spreadsheet::WriteExcel module of Perl.
|
8
|
-
http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.
|
9
|
-
|
10
|
-
Some examples written in perl was successfully converted to Ruby. But
|
11
|
-
this library written in Ruby has many bugs, I think.
|
8
|
+
http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.38/
|
12
9
|
|
13
10
|
Original description is below:
|
14
11
|
|
@@ -42,8 +39,8 @@ Or install it yourself as:
|
|
42
39
|
|
43
40
|
== Usage
|
44
41
|
|
45
|
-
See
|
46
|
-
You must save source file in UTF8 and run ruby with -Ku option or set $KCODE='u'.
|
42
|
+
See Reference http://writeexcel.web.fc2.com/ .
|
43
|
+
You must save source file in UTF8, and run ruby with -Ku option or set $KCODE='u' in Ruby 1.8.
|
47
44
|
|
48
45
|
Example Code:
|
49
46
|
|
@@ -84,12 +81,10 @@ Example Code:
|
|
84
81
|
* ignore. if write 0001, use string such as write(1,2, '0001')
|
85
82
|
* and ......
|
86
83
|
|
87
|
-
==
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
== Recent Changes
|
84
|
+
== Recent Change
|
85
|
+
v1.0.0
|
86
|
+
* Bug fix in Workbook#set_properties.
|
87
|
+
s
|
93
88
|
v0.6.19
|
94
89
|
* Bug fix in Worksheet#write_url_internal
|
95
90
|
|
data/examples/properties.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/ruby
|
1
|
+
#!/usr/bin/ruby
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
##############################################################################
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
workbook = WriteExcel.new('properties.xls')
|
17
17
|
worksheet = workbook.add_worksheet
|
18
|
-
|
18
|
+
|
19
19
|
workbook.set_properties(
|
20
20
|
:title => 'This is an example spreadsheet',
|
21
21
|
:subject => 'With document properties',
|
data/lib/writeexcel/col_info.rb
CHANGED
@@ -226,14 +226,16 @@ def pack_VT_FILETIME(localtime) #:nodoc:
|
|
226
226
|
|
227
227
|
epoch = DateTime.new(1601, 1, 1)
|
228
228
|
|
229
|
+
t = localtime.getgm
|
230
|
+
|
229
231
|
datetime = DateTime.new(
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
232
|
+
t.year,
|
233
|
+
t.mon,
|
234
|
+
t.mday,
|
235
|
+
t.hour,
|
236
|
+
t.min,
|
237
|
+
t.sec,
|
238
|
+
t.usec
|
237
239
|
)
|
238
240
|
bignum = (datetime - epoch) * 86400 * 1e7.to_i
|
239
241
|
high, low = bignum.divmod 1 << 32
|
@@ -669,15 +669,18 @@ def _saveHeader(rh_info, iSBDcnt, iBBcnt, iPPScnt)
|
|
669
669
|
iAllW = iAll
|
670
670
|
iBdCntW = iAllW / iBlCnt
|
671
671
|
iBdCntW += 1 if iAllW % iBlCnt > 0
|
672
|
-
iBdCnt =
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
672
|
+
iBdCnt = ((iAll + iBdCntW) / iBlCnt).to_i
|
673
|
+
iBdCnt += ((iAllW + iBdCntW) % iBlCnt) == 0 ? 0 : 1
|
674
|
+
if iBdCnt > i1stBdL
|
675
|
+
#0.1 Calculate BD count
|
676
|
+
iBlCnt -= 1 #the BlCnt is reduced in the count of the last sect is used for a pointer the next Bl
|
677
|
+
iBBleftover = iAll - i1stBdMax
|
678
|
+
if iAll >i1stBdMax
|
679
|
+
iBdCnt, iBdExL, iBBleftover = calc_idbcnt_idbexl_ibbleftover(iBBleftover, iBlCnt, iBdCnt, iBdExL)
|
680
|
+
end
|
681
|
+
iBdCnt += i1stBdL
|
682
|
+
#print "iBdCnt = iBdCnt \n"
|
678
683
|
end
|
679
|
-
iBdCnt += i1stBdL
|
680
|
-
#print "iBdCnt = iBdCnt \n"
|
681
684
|
|
682
685
|
#1.Save Header
|
683
686
|
data = [
|
@@ -694,8 +697,8 @@ def _saveHeader(rh_info, iSBDcnt, iBBcnt, iPPScnt)
|
|
694
697
|
[iBBcnt+iSBDcnt].pack("V"), #ROOT START
|
695
698
|
[0].pack("V"),
|
696
699
|
[0x1000].pack("V"),
|
697
|
-
[0].pack("V"), #Small Block Depot
|
698
|
-
[
|
700
|
+
[iSBDcnt == 0 ? -2 : 0].pack("V"), #Small Block Depot
|
701
|
+
[iSBDcnt].pack("V")
|
699
702
|
]
|
700
703
|
file.write(
|
701
704
|
ruby_18 { data.join('') } ||
|
@@ -805,9 +808,9 @@ def _savePpsSetPnt(pps_array, aList, rh_info)
|
|
805
808
|
aWk = pps_array.dup
|
806
809
|
#1.3.2 Devide a array into Previous,Next
|
807
810
|
aPrev = aWk[0, iPos]
|
808
|
-
aWk[0..iPos-1] =
|
811
|
+
aWk[0..iPos-1] = []
|
809
812
|
aNext = aWk[1, iCnt - iPos - 1]
|
810
|
-
aWk[1..(1 + iCnt - iPos -1 -1)] =
|
813
|
+
aWk[1..(1 + iCnt - iPos -1 -1)] = []
|
811
814
|
pps_array[iPos].prev_pps = _savePpsSetPnt(aPrev, aList, rh_info)
|
812
815
|
pps_array[iPos].next_pps = _savePpsSetPnt(aNext, aList, rh_info)
|
813
816
|
pps_array[iPos].dir_pps = _savePpsSetPnt(pps_array[iPos].child, aList, rh_info)
|
@@ -837,7 +840,7 @@ def _savePpsSetPnt2(pps_array, aList, rh_info)
|
|
837
840
|
|
838
841
|
aWk = pps_array.dup
|
839
842
|
aPrev = aWk[1, 1]
|
840
|
-
aWk[1..1] =
|
843
|
+
aWk[1..1] = []
|
841
844
|
aNext = aWk[1..aWk.size] #, $iCnt - $iPos -1);
|
842
845
|
pps_array[iPos].prev_pps = _savePpsSetPnt2(pps_array, aList, rh_info)
|
843
846
|
aList.push(pps_array[iPos])
|
data/lib/writeexcel/version.rb
CHANGED
Binary file
|
data/test/test_21_escher.rb
CHANGED
@@ -492,14 +492,6 @@ def test_for_store_mso_split_menu_colors
|
|
492
492
|
assert_equal(target, result, caption)
|
493
493
|
end
|
494
494
|
|
495
|
-
###############################################################################
|
496
|
-
#
|
497
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
498
|
-
#
|
499
|
-
def unpack_record(data)
|
500
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
501
|
-
end
|
502
|
-
|
503
495
|
def data_for_test
|
504
496
|
return [
|
505
497
|
[ 'DggContainer', # Caption
|
@@ -739,12 +739,4 @@ def test_3_sheets_1024_and_1024_and_1_times_duplicate
|
|
739
739
|
|
740
740
|
end
|
741
741
|
=end
|
742
|
-
###############################################################################
|
743
|
-
#
|
744
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
745
|
-
#
|
746
|
-
def unpack_record(data)
|
747
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
748
|
-
end
|
749
|
-
|
750
742
|
end
|
data/test/test_23_note.rb
CHANGED
@@ -54,13 +54,4 @@ def test_defined_author_name
|
|
54
54
|
result = unpack_record(comment.store_note_record(obj_id))
|
55
55
|
assert_equal(target, result, caption)
|
56
56
|
end
|
57
|
-
|
58
|
-
###############################################################################
|
59
|
-
#
|
60
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
61
|
-
#
|
62
|
-
def unpack_record(data)
|
63
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
64
|
-
end
|
65
|
-
|
66
57
|
end
|
data/test/test_24_txo.rb
CHANGED
@@ -71,13 +71,4 @@ def test_second_continue_record_after_txo
|
|
71
71
|
result = unpack_record(comment.__send__("store_txo_continue_2", formats))
|
72
72
|
assert_equal(target, result, caption)
|
73
73
|
end
|
74
|
-
|
75
|
-
###############################################################################
|
76
|
-
#
|
77
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
78
|
-
#
|
79
|
-
def unpack_record(data)
|
80
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
81
|
-
end
|
82
|
-
|
83
74
|
end
|
@@ -71,13 +71,4 @@ def test_3
|
|
71
71
|
result = unpack_record(@validations.__send__("dval_record", obj_id, dv_count))
|
72
72
|
assert_equal(target, result, caption)
|
73
73
|
end
|
74
|
-
|
75
|
-
###############################################################################
|
76
|
-
#
|
77
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
78
|
-
#
|
79
|
-
def unpack_record(data)
|
80
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
81
|
-
end
|
82
|
-
|
83
74
|
end
|
@@ -120,13 +120,4 @@ def test_string_longer_than_32_characters_for_dialog_messages
|
|
120
120
|
result = unpack_record(@data_validation.__send__("pack_dv_string", string, max_length))
|
121
121
|
assert_equal(target, result, caption)
|
122
122
|
end
|
123
|
-
|
124
|
-
###############################################################################
|
125
|
-
#
|
126
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
127
|
-
#
|
128
|
-
def unpack_record(data)
|
129
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
130
|
-
end
|
131
|
-
|
132
123
|
end
|
@@ -207,13 +207,4 @@ def test_pack_dv_formula_should_not_change_formula_string
|
|
207
207
|
|
208
208
|
assert_equal('=SUM(A1:D1)', formula)
|
209
209
|
end
|
210
|
-
|
211
|
-
###############################################################################
|
212
|
-
#
|
213
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
214
|
-
#
|
215
|
-
def unpack_record(data)
|
216
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
217
|
-
end
|
218
|
-
|
219
210
|
end
|
@@ -176,13 +176,4 @@ def test_pack_a_VT_FILETIME
|
|
176
176
|
result = unpack_record( pack_VT_FILETIME(filetime) )
|
177
177
|
assert_equal(target, result, caption)
|
178
178
|
end
|
179
|
-
|
180
|
-
###############################################################################
|
181
|
-
#
|
182
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
183
|
-
#
|
184
|
-
def unpack_record(data)
|
185
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
186
|
-
end
|
187
|
-
|
188
179
|
end
|
data/test/test_41_properties.rb
CHANGED
@@ -223,13 +223,4 @@ def test_same_as_previous_plus_creation_date
|
|
223
223
|
result = unpack_record( create_summary_property_set(properties))
|
224
224
|
assert_equal(target, result, caption)
|
225
225
|
end
|
226
|
-
|
227
|
-
###############################################################################
|
228
|
-
#
|
229
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
230
|
-
#
|
231
|
-
def unpack_record(data)
|
232
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
233
|
-
end
|
234
|
-
|
235
226
|
end
|
@@ -431,13 +431,4 @@ def test_same_as_previous_plus_creation_date
|
|
431
431
|
workbook.close
|
432
432
|
|
433
433
|
end
|
434
|
-
|
435
|
-
###############################################################################
|
436
|
-
#
|
437
|
-
# Unpack the binary data into a format suitable for printing in tests.
|
438
|
-
#
|
439
|
-
def unpack_record(data)
|
440
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
441
|
-
end
|
442
|
-
|
443
434
|
end
|
@@ -567,8 +567,4 @@ def test_store_serauxtrend
|
|
567
567
|
got = unpack_record(@chart.__send__("store_serauxtrend", *values))
|
568
568
|
assert_equal(expected, got, caption)
|
569
569
|
end
|
570
|
-
|
571
|
-
def unpack_record(data)
|
572
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
573
|
-
end
|
574
570
|
end
|
data/test/test_example_match.rb
CHANGED
@@ -3421,4 +3421,38 @@ def test_compatibility_mode_write_number
|
|
3421
3421
|
# do assertion
|
3422
3422
|
compare_file("#{PERL_OUTDIR}/compatibility_mode_write_number.xls", @file)
|
3423
3423
|
end
|
3424
|
+
|
3425
|
+
def test_properties
|
3426
|
+
workbook = WriteExcel.new(@file)
|
3427
|
+
|
3428
|
+
#
|
3429
|
+
# adjust @localtime to target xls file.
|
3430
|
+
#
|
3431
|
+
workbook.instance_variable_set(
|
3432
|
+
:@localtime,
|
3433
|
+
Time.local(2013, 5, 5, 22, 37, 42)
|
3434
|
+
)
|
3435
|
+
|
3436
|
+
worksheet = workbook.add_worksheet
|
3437
|
+
|
3438
|
+
workbook.set_properties(
|
3439
|
+
:title => 'This is an example spreadsheet',
|
3440
|
+
:subject => 'With document properties',
|
3441
|
+
:author => 'Hideo NAKAMURA',
|
3442
|
+
:manager => 'John McNamara',
|
3443
|
+
:company => 'Rubygem',
|
3444
|
+
:category => 'Example spreadsheets',
|
3445
|
+
:keywords => 'Sample, Example, Properties',
|
3446
|
+
:comments => 'Created with Ruby and WriteExcel'
|
3447
|
+
)
|
3448
|
+
|
3449
|
+
|
3450
|
+
worksheet.set_column('A:A', 50)
|
3451
|
+
worksheet.write('A1', 'Select File->Properties to see the file properties')
|
3452
|
+
|
3453
|
+
workbook.close
|
3454
|
+
|
3455
|
+
# do assertion
|
3456
|
+
compare_file("#{PERL_OUTDIR}/properties.xls", @file)
|
3457
|
+
end
|
3424
3458
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'helper'
|
4
|
+
require 'stringio'
|
5
|
+
|
6
|
+
class TestProperties < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@workbook = WriteExcel.new(StringIO.new)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_pack_VT_FILETIME
|
12
|
+
assert_equal(
|
13
|
+
'40 00 00 00 00 FD 2D ED CE 48 CE 01',
|
14
|
+
unpack_record(pack_VT_FILETIME(Time.local(2013, 5, 4, 22, 54, 42)))
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create_summary_property_set
|
19
|
+
assert_equal(
|
20
|
+
'FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2 F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00 08 01 00 00 07 00 00 00 01 00 00 00 40 00 00 00 02 00 00 00 48 00 00 00 03 00 00 00 70 00 00 00 04 00 00 00 94 00 00 00 05 00 00 00 AC 00 00 00 06 00 00 00 D0 00 00 00 0C 00 00 00 FC 00 00 00 02 00 00 00 E4 04 00 00 1E 00 00 00 1F 00 00 00 54 68 69 73 20 69 73 20 61 6E 20 65 78 61 6D 70 6C 65 20 73 70 72 65 61 64 73 68 65 65 74 00 00 1E 00 00 00 19 00 00 00 57 69 74 68 20 64 6F 63 75 6D 65 6E 74 20 70 72 6F 70 65 72 74 69 65 73 00 00 00 00 1E 00 00 00 0F 00 00 00 48 69 64 65 6F 20 4E 41 4B 41 4D 55 52 41 00 00 1E 00 00 00 1C 00 00 00 53 61 6D 70 6C 65 2C 20 45 78 61 6D 70 6C 65 2C 20 50 72 6F 70 65 72 74 69 65 73 00 1E 00 00 00 21 00 00 00 43 72 65 61 74 65 64 20 77 69 74 68 20 52 75 62 79 20 61 6E 64 20 57 72 69 74 65 45 78 63 65 6C 00 00 00 00 40 00 00 00 00 62 93 81 C5 48 CE 01',
|
21
|
+
unpack_record(create_summary_property_set(
|
22
|
+
[
|
23
|
+
[1, "VT_I2", 1252],
|
24
|
+
[2, "VT_LPSTR", "This is an example spreadsheet"],
|
25
|
+
[3, "VT_LPSTR", "With document properties"],
|
26
|
+
[4, "VT_LPSTR", "Hideo NAKAMURA"],
|
27
|
+
[5, "VT_LPSTR", "Sample, Example, Properties"],
|
28
|
+
[6, "VT_LPSTR", "Created with Ruby and WriteExcel"],
|
29
|
+
[12, "VT_FILETIME", Time.local(2013, 5, 4, 21, 47, 16)]
|
30
|
+
]
|
31
|
+
))
|
32
|
+
)
|
33
|
+
end
|
34
|
+
end
|
data/test/test_storage_lite.rb
CHANGED
@@ -43,11 +43,6 @@ def test_ucs2asc
|
|
43
43
|
assert_equal(str, result)
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
47
|
-
def unpack_record(data)
|
48
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
49
|
-
end
|
50
|
-
|
51
46
|
end
|
52
47
|
|
53
48
|
class TC_OLEStorageLitePPSFile < Test::Unit::TestCase
|
@@ -108,9 +103,4 @@ def test_append_stringio
|
|
108
103
|
assert_equal(d, pps_file.read)
|
109
104
|
end
|
110
105
|
end
|
111
|
-
|
112
|
-
def unpack_record(data)
|
113
|
-
data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
|
114
|
-
end
|
115
|
-
|
116
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: writeexcel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hideo NAKAMURA
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Multiple worksheets can be added to a workbook and formatting can be
|
14
14
|
applied to cells. Text, numbers, formulas, hyperlinks and images can be written
|
@@ -209,6 +209,7 @@ files:
|
|
209
209
|
- test/perl_output/outline_collapsed.xls
|
210
210
|
- test/perl_output/panes.xls
|
211
211
|
- test/perl_output/password_protection.xls
|
212
|
+
- test/perl_output/properties.xls
|
212
213
|
- test/perl_output/protection.xls
|
213
214
|
- test/perl_output/regions.xls
|
214
215
|
- test/perl_output/right_to_left.xls
|
@@ -269,6 +270,7 @@ files:
|
|
269
270
|
- test/test_format.rb
|
270
271
|
- test/test_formula.rb
|
271
272
|
- test/test_ole.rb
|
273
|
+
- test/test_properties.rb
|
272
274
|
- test/test_storage_lite.rb
|
273
275
|
- test/test_workbook.rb
|
274
276
|
- test/test_worksheet.rb
|
@@ -364,6 +366,7 @@ test_files:
|
|
364
366
|
- test/perl_output/outline_collapsed.xls
|
365
367
|
- test/perl_output/panes.xls
|
366
368
|
- test/perl_output/password_protection.xls
|
369
|
+
- test/perl_output/properties.xls
|
367
370
|
- test/perl_output/protection.xls
|
368
371
|
- test/perl_output/regions.xls
|
369
372
|
- test/perl_output/right_to_left.xls
|
@@ -424,6 +427,7 @@ test_files:
|
|
424
427
|
- test/test_format.rb
|
425
428
|
- test/test_formula.rb
|
426
429
|
- test/test_ole.rb
|
430
|
+
- test/test_properties.rb
|
427
431
|
- test/test_storage_lite.rb
|
428
432
|
- test/test_workbook.rb
|
429
433
|
- test/test_worksheet.rb
|