robust_excel_ole 0.4 → 0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Changelog +15 -0
- data/README.rdoc +128 -63
- data/README_detail.rdoc +130 -60
- data/examples/edit_sheets/example_access_sheets_and_cells.rb +1 -1
- data/examples/edit_sheets/example_adding_sheets.rb +2 -2
- data/examples/edit_sheets/example_copying.rb +1 -1
- data/examples/edit_sheets/example_expanding.rb +1 -1
- data/examples/edit_sheets/example_ranges.rb +1 -1
- data/examples/edit_sheets/example_saving.rb +2 -2
- data/examples/open_save_close/example_control_to_excel.rb +1 -1
- data/examples/open_save_close/example_if_obstructed_closeifsaved.rb +2 -2
- data/examples/open_save_close/example_if_obstructed_save.rb +2 -2
- data/examples/open_save_close/example_if_unsaved_accept.rb +1 -1
- data/examples/open_save_close/example_if_unsaved_forget.rb +2 -2
- data/examples/open_save_close/example_if_unsaved_forget_more.rb +3 -3
- data/examples/open_save_close/example_read_only.rb +1 -1
- data/examples/open_save_close/example_rename_cells.rb +1 -1
- data/examples/open_save_close/example_simple.rb +1 -1
- data/examples/open_save_close/example_unobtrusively.rb +3 -3
- data/lib/robust_excel_ole.rb +1 -0
- data/lib/robust_excel_ole/book.rb +249 -193
- data/lib/robust_excel_ole/bookstore.rb +1 -1
- data/lib/robust_excel_ole/cell.rb +1 -1
- data/lib/robust_excel_ole/excel.rb +125 -4
- data/lib/robust_excel_ole/general.rb +1 -92
- data/lib/robust_excel_ole/range.rb +1 -1
- data/lib/robust_excel_ole/reo_common.rb +37 -0
- data/lib/robust_excel_ole/sheet.rb +77 -24
- data/lib/robust_excel_ole/version.rb +1 -1
- data/spec/book_spec.rb +112 -82
- data/spec/book_specs/book_close_spec.rb +44 -1
- data/spec/book_specs/book_misc_spec.rb +97 -92
- data/spec/book_specs/book_open_spec.rb +40 -8
- data/spec/book_specs/book_save_spec.rb +77 -7
- data/spec/book_specs/book_sheet_spec.rb +290 -66
- data/spec/book_specs/book_unobtr_spec.rb +99 -73
- data/spec/bookstore_spec.rb +1 -1
- data/spec/cell_spec.rb +2 -2
- data/spec/data/another_workbook.xls +0 -0
- data/spec/data/workbook.xls +0 -0
- data/spec/excel_spec.rb +174 -23
- data/spec/general_spec.rb +3 -18
- data/spec/range_spec.rb +3 -3
- data/spec/reo_common_spec.rb +104 -0
- data/spec/sheet_spec.rb +101 -60
- metadata +6 -4
data/spec/sheet_spec.rb
CHANGED
@@ -23,7 +23,7 @@ describe Sheet do
|
|
23
23
|
@blank_file = @dir + '/book_with_blank.xls'
|
24
24
|
@merge_file = @dir + '/merge_cells.xls'
|
25
25
|
@book = Book.open(@simple_file)
|
26
|
-
@sheet = @book
|
26
|
+
@sheet = @book.sheet(1)
|
27
27
|
end
|
28
28
|
|
29
29
|
after do
|
@@ -38,7 +38,7 @@ describe Sheet do
|
|
38
38
|
@key_sender = IO.popen 'ruby "' + File.join(File.dirname(__FILE__), '/helpers/key_sender.rb') + '" "Microsoft Office Excel" ' , "w"
|
39
39
|
@book_protect = Book.open(@protected_file, :visible => true, :read_only => true, :force_excel => :new)
|
40
40
|
@key_sender.puts "{p}{r}{o}{t}{e}{c}{t}{enter}"
|
41
|
-
@protected_sheet = @book_protect
|
41
|
+
@protected_sheet = @book_protect.sheet('protect')
|
42
42
|
end
|
43
43
|
|
44
44
|
after do
|
@@ -60,7 +60,7 @@ describe Sheet do
|
|
60
60
|
shared_context "sheet 'open book with blank'" do
|
61
61
|
before do
|
62
62
|
@book_with_blank = Book.open(@blank_file, :read_only => true)
|
63
|
-
@sheet_with_blank = @book_with_blank
|
63
|
+
@sheet_with_blank = @book_with_blank.sheet(1)
|
64
64
|
end
|
65
65
|
|
66
66
|
after do
|
@@ -289,7 +289,7 @@ describe Sheet do
|
|
289
289
|
context "read sheet which last cell is merged" do
|
290
290
|
before do
|
291
291
|
@book_merge_cells = Book.open(@merge_file)
|
292
|
-
@sheet_merge_cell = @book_merge_cells
|
292
|
+
@sheet_merge_cell = @book_merge_cells.sheet(1)
|
293
293
|
end
|
294
294
|
|
295
295
|
after do
|
@@ -388,73 +388,114 @@ describe Sheet do
|
|
388
388
|
end
|
389
389
|
end
|
390
390
|
|
391
|
-
describe "
|
391
|
+
describe "nameval, set_nameval, [], []=" do
|
392
392
|
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
@sheet1 = @book1[0]
|
398
|
-
end
|
399
|
-
|
400
|
-
after do
|
401
|
-
@book1.close
|
402
|
-
end
|
393
|
+
before do
|
394
|
+
@book1 = Book.open(@dir + '/another_workbook.xls')
|
395
|
+
@sheet1 = @book1.sheet(1)
|
396
|
+
end
|
403
397
|
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
end
|
398
|
+
after do
|
399
|
+
@book1.close(:if_unsaved => :forget)
|
400
|
+
end
|
408
401
|
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
expect {
|
414
|
-
@sheet1["foo"]
|
415
|
-
}.to raise_error(SheetError, /cannot evaluate name "foo" in sheet/)
|
416
|
-
end
|
402
|
+
it "should return value of a defined name" do
|
403
|
+
@sheet1.nameval("firstcell").should == "foo"
|
404
|
+
@sheet1["firstcell"].should == "foo"
|
405
|
+
end
|
417
406
|
|
418
|
-
|
419
|
-
|
420
|
-
|
407
|
+
it "should return default value if name not defined and default value is given" do
|
408
|
+
@sheet1.nameval("foo", :default => 2).should == 2
|
409
|
+
end
|
421
410
|
|
422
|
-
|
423
|
-
|
424
|
-
|
411
|
+
it "should evaluate a formula" do
|
412
|
+
@sheet1.nameval("named_formula").should == 4
|
413
|
+
@sheet1["named_formula"].should == 4
|
425
414
|
end
|
426
|
-
end
|
427
415
|
|
428
|
-
|
416
|
+
it "should raise an error if name not defined" do
|
417
|
+
expect {
|
418
|
+
@sheet1.nameval("foo")
|
419
|
+
}.to raise_error(SheetError, /cannot find or evaluate name "foo" in Sheet1/)
|
420
|
+
expect {
|
421
|
+
@sheet1["foo"]
|
422
|
+
}.to raise_error(SheetError, /cannot find or evaluate name "foo" in Sheet1/)
|
423
|
+
end
|
429
424
|
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
425
|
+
it "should set a range to a value" do
|
426
|
+
@sheet1.nameval("firstcell").should == "foo"
|
427
|
+
@sheet1[1,1].Value.should == "foo"
|
428
|
+
@sheet1.set_nameval("firstcell","bar")
|
429
|
+
@sheet1.nameval("firstcell").should == "bar"
|
430
|
+
@sheet1[1,1].Value.should == "bar"
|
431
|
+
@sheet1["firstcell"] = "foo"
|
432
|
+
@sheet1.nameval("firstcell").should == "foo"
|
433
|
+
@sheet1[1,1].Value.should == "foo"
|
434
|
+
end
|
436
435
|
|
437
|
-
|
438
|
-
|
439
|
-
|
436
|
+
it "should raise an error if name cannot be evaluated" do
|
437
|
+
expect{
|
438
|
+
@sheet1.set_nameval("foo", 1)
|
439
|
+
}.to raise_error(SheetError, /name "foo" not in Sheet1/)
|
440
|
+
expect{
|
441
|
+
@sheet1["foo"] = 1
|
442
|
+
}.to raise_error(SheetError, /name "foo" not in Sheet1/)
|
443
|
+
end
|
444
|
+
end
|
440
445
|
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
@sheet1.nvalue("firstcell").should == "bar"
|
449
|
-
@sheet1[1,1].Value.should == "bar"
|
450
|
-
end
|
446
|
+
describe "rangeval, set_rangeval" do
|
447
|
+
|
448
|
+
before do
|
449
|
+
@book1 = Book.open(@dir + '/another_workbook.xls')
|
450
|
+
@sheet1 = @book1.sheet(1)
|
451
|
+
@sheet2 = @book1.sheet(2)
|
452
|
+
end
|
451
453
|
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
454
|
+
after do
|
455
|
+
@book1.close(:if_unsaved => :forget)
|
456
|
+
end
|
457
|
+
|
458
|
+
it "should return value of a locally defined name" do
|
459
|
+
@sheet1.rangeval("firstcell").should == "foo"
|
460
|
+
end
|
461
|
+
|
462
|
+
it "should return value of a defined name" do
|
463
|
+
@sheet1.rangeval("new").should == "foo"
|
464
|
+
@sheet1.rangeval("one").should == 1.0
|
465
|
+
@sheet1.rangeval("four").should == [[1,2],[3,4]]
|
466
|
+
@sheet1.rangeval("firstrow").should == [[1,2]]
|
467
|
+
end
|
468
|
+
|
469
|
+
it "should return default value if name not defined and default value is given" do
|
470
|
+
@sheet1.rangeval("foo", :default => 2).should == 2
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should raise an error if name not defined for the sheet" do
|
474
|
+
expect {
|
475
|
+
@sheet1.rangeval("foo")
|
476
|
+
}.to raise_error(SheetError, /name "foo" not in Sheet1/)
|
477
|
+
expect {
|
478
|
+
@sheet1.rangeval("named_formula")
|
479
|
+
}.to raise_error(SheetError, /name "named_formula" not in Sheet1/)
|
480
|
+
expect {
|
481
|
+
@sheet2.rangeval("firstcell")
|
482
|
+
}.to raise_error(SheetError, /name "firstcell" not in Sheet2/)
|
483
|
+
end
|
484
|
+
|
485
|
+
it "should set a range to a value" do
|
486
|
+
@sheet1.rangeval("firstcell").should == "foo"
|
487
|
+
@sheet1[1,1].Value.should == "foo"
|
488
|
+
@sheet1.set_rangeval("firstcell","bar")
|
489
|
+
@sheet1.rangeval("firstcell").should == "bar"
|
490
|
+
@sheet1[1,1].Value.should == "bar"
|
491
|
+
end
|
492
|
+
|
493
|
+
it "should raise an error if name cannot be evaluated" do
|
494
|
+
expect{
|
495
|
+
@sheet1.set_nameval("foo", 1)
|
496
|
+
}.to raise_error(SheetError, /name "foo" not in Sheet1/)
|
457
497
|
end
|
498
|
+
|
458
499
|
end
|
459
500
|
|
460
501
|
describe "set_name" do
|
@@ -463,7 +504,7 @@ describe Sheet do
|
|
463
504
|
|
464
505
|
before do
|
465
506
|
@book1 = Book.open(@dir + '/another_workbook.xls', :read_only => true, :visible => true)
|
466
|
-
@sheet1 = @book1
|
507
|
+
@sheet1 = @book1.sheet(1)
|
467
508
|
end
|
468
509
|
|
469
510
|
after do
|
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: robust_excel_ole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: "0.
|
8
|
+
- 5
|
9
|
+
version: "0.5"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- traths
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2016-
|
17
|
+
date: 2016-06-07 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- lib/robust_excel_ole/excel.rb
|
86
86
|
- lib/robust_excel_ole/general.rb
|
87
87
|
- lib/robust_excel_ole/range.rb
|
88
|
+
- lib/robust_excel_ole/reo_common.rb
|
88
89
|
- lib/robust_excel_ole/robustexcelole.sublime-project
|
89
90
|
- lib/robust_excel_ole/robustexcelole.sublime-workspace
|
90
91
|
- lib/robust_excel_ole/sheet.rb
|
@@ -121,6 +122,7 @@ files:
|
|
121
122
|
- spec/helpers/create_temporary_dir.rb
|
122
123
|
- spec/helpers/key_sender.rb
|
123
124
|
- spec/range_spec.rb
|
125
|
+
- spec/reo_common_spec.rb
|
124
126
|
- spec/sheet_spec.rb
|
125
127
|
- spec/spec_helper.rb
|
126
128
|
- version.rb
|