robust_excel_ole 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +69 -56
- data/README_detail.rdoc +44 -34
- data/TodoList.md +8 -6
- data/examples/edit_sheets/example_access_sheets_and_cells.rb +6 -6
- data/examples/edit_sheets/example_adding_sheets.rb +2 -2
- data/examples/edit_sheets/example_ranges.rb +3 -3
- data/examples/open_save_close/example_control_to_excel.rb +2 -2
- data/examples/open_save_close/example_default_excel.rb +2 -2
- data/examples/open_save_close/example_force_excel.rb +1 -1
- data/examples/open_save_close/example_if_obstructed_closeifsaved.rb +4 -4
- data/examples/open_save_close/example_if_obstructed_forget.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 +1 -1
- data/examples/open_save_close/example_if_unsaved_forget_more.rb +1 -1
- data/examples/open_save_close/example_read_only.rb +2 -2
- data/examples/open_save_close/example_rename_cells.rb +1 -1
- data/examples/open_save_close/example_reuse.rb +3 -3
- data/examples/open_save_close/example_simple.rb +2 -2
- data/examples/open_save_close/example_unobtrusively.rb +1 -1
- data/lib/robust_excel_ole/book.rb +97 -128
- data/lib/robust_excel_ole/book_store.rb +23 -23
- data/lib/robust_excel_ole/excel.rb +12 -14
- data/lib/robust_excel_ole/version.rb +1 -1
- data/spec/book_spec.rb +462 -289
- data/spec/book_store_spec.rb +36 -55
- data/spec/data/book_with_blank.xls +0 -0
- data/spec/data/{different_simple.xls → different_workbook.xls} +0 -0
- data/spec/data/merge_cells.xls +0 -0
- data/spec/data/{more_simple.xls → more_workbook.xls} +0 -0
- data/spec/data/protected_sheet.xls +0 -0
- data/spec/data/{simple.xls → workbook.xls} +0 -0
- data/spec/data/{simple.xlsm → workbook.xlsm} +0 -0
- data/spec/data/{simple.xlsx → workbook.xlsx} +0 -0
- data/spec/excel_spec.rb +40 -0
- metadata +9 -9
@@ -4,8 +4,6 @@ module RobustExcelOle
|
|
4
4
|
|
5
5
|
class Excel
|
6
6
|
|
7
|
-
attr_writer :excel
|
8
|
-
|
9
7
|
@@hwnd2excel = {}
|
10
8
|
|
11
9
|
# closes all Excel instances
|
@@ -56,10 +54,10 @@ module RobustExcelOle
|
|
56
54
|
if stored
|
57
55
|
result = stored
|
58
56
|
else
|
59
|
-
WIN32OLE.const_load(excel, RobustExcelOle) unless RobustExcelOle.const_defined?(:CONSTANTS)
|
60
57
|
result = super(options)
|
61
|
-
result.excel
|
62
|
-
|
58
|
+
result.instance_variable_set(:@excel, excel)
|
59
|
+
WIN32OLE.const_load(excel, RobustExcelOle) unless RobustExcelOle.const_defined?(:CONSTANTS)
|
60
|
+
@@hwnd2excel[hwnd] = result
|
63
61
|
end
|
64
62
|
result
|
65
63
|
end
|
@@ -68,12 +66,12 @@ module RobustExcelOle
|
|
68
66
|
end
|
69
67
|
|
70
68
|
# generate, save and close an empty workbook
|
71
|
-
def
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
empty_workbook.SaveAs(
|
76
|
-
empty_workbook
|
69
|
+
def generate_workbook file_name
|
70
|
+
self.Workbooks.Add
|
71
|
+
empty_workbook = self.Workbooks.Item(1)
|
72
|
+
filename = RobustExcelOle::absolute_path(file_name)
|
73
|
+
empty_workbook.SaveAs(filename.gsub("/","\\"))
|
74
|
+
empty_workbook
|
77
75
|
end
|
78
76
|
|
79
77
|
def self.hwnd2excel(hwnd)
|
@@ -84,12 +82,12 @@ module RobustExcelOle
|
|
84
82
|
self.Hwnd
|
85
83
|
end
|
86
84
|
|
87
|
-
# returns true, if the Excel instances are identical, false otherwise
|
85
|
+
# returns true, if the Excel instances are alive and identical, false otherwise
|
88
86
|
def == other_excel
|
89
|
-
self.Hwnd == other_excel.Hwnd if other_excel.is_a?(Excel)
|
87
|
+
self.Hwnd == other_excel.Hwnd if other_excel.is_a?(Excel) && self.alive? && other_excel.alive?
|
90
88
|
end
|
91
89
|
|
92
|
-
# returns true, if the Excel instances
|
90
|
+
# returns true, if the Excel instances responds to VVA methods, false otherwise
|
93
91
|
def alive?
|
94
92
|
@excel.Name
|
95
93
|
true
|