Class: Aio::Base::Toolkit::ExcelOffice::WorkBook

Inherits:
Object
  • Object
show all
Includes:
Ui::Verbose
Defined in:
lib/aio/base/toolkit/excel_office.rb

Constant Summary collapse

@@worksheets_name =
[]

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Ui::Verbose

#clear_line, #print_error, #print_good, #progress_bar

Constructor Details

#initialize(encoding = "utf-8") ⇒ WorkBook

Returns a new instance of WorkBook.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/aio/base/toolkit/excel_office.rb', line 8

def initialize(encoding = "utf-8")

	if Aio::Base::Toolkit::OS.windows?
		require "win32ole"
	else
		print_error "只有Windows系统才能使用Excel模块"
		exit 0
	end

	@excel = WIN32OLE.new("excel.Application")
	@excel.visible = false
	@workbook = @excel.workbooks.add
	@encoding = encoding
	create_style
end

Class Method Details

.bold_style(sty) ⇒ Object



66
67
68
69
70
# File 'lib/aio/base/toolkit/excel_office.rb', line 66

def self.bold_style(sty)
	sty.font.size = 9
	sty.font.bold = true
	sty.HorizontalAlignment = -4108
end

.normal_style(sty) ⇒ Object



61
62
63
64
# File 'lib/aio/base/toolkit/excel_office.rb', line 61

def self.normal_style(sty)
	sty.font.size = 9
	sty.HorizontalAlignment = -4108
end

.title_style(sty) ⇒ Object



72
73
74
75
76
# File 'lib/aio/base/toolkit/excel_office.rb', line 72

def self.title_style(sty)
	sty.font.size = 20
	sty.font.bold = true
	sty.HorizontalAlignment = -4108
end

Instance Method Details

#add_worksheet(name) ⇒ Object



39
40
41
42
43
44
45
46
47
48
# File 'lib/aio/base/toolkit/excel_office.rb', line 39

def  add_worksheet(name)
	while @@worksheets_name.include?(name)
		name += "1"
	end
	@@worksheets_name << name
	worksheet = @workbook.worksheets.add
	worksheet.activate
	worksheet.name = name
	return WorkSheet.new(worksheet)
end

#closeObject



87
88
89
90
# File 'lib/aio/base/toolkit/excel_office.rb', line 87

def close
	@workbook.close
	@excel.quit
end

#create_styleObject



50
51
52
53
54
55
56
57
58
59
# File 'lib/aio/base/toolkit/excel_office.rb', line 50

def create_style
	sty = @workbook.styles.add("NormalStyle")
	self.class.normal_style(sty)

	sty = @workbook.styles.add("BoldStyle")
	self.class.bold_style(sty)

	sty = @workbook.styles.add("TitleStyle")
	self.class.title_style(sty)
end

#display_alerts=(bool) ⇒ Object

警告提示开关



35
36
37
# File 'lib/aio/base/toolkit/excel_office.rb', line 35

def display_alerts=(bool)
	@excel.DisplayAlerts = bool
end

#save(path) ⇒ Object



82
83
84
85
# File 'lib/aio/base/toolkit/excel_office.rb', line 82

def save(path)
	path = Aio::Base::Toolkit::String.safe_path(path)
	@workbook.saveas(path)
end

#showObject



78
79
80
# File 'lib/aio/base/toolkit/excel_office.rb', line 78

def show
	@excel.visible = true
end

#window_normalObject

切换到普通视图



30
31
32
# File 'lib/aio/base/toolkit/excel_office.rb', line 30

def window_normal
	@excel.ActiveWindow.View = 1
end

#window_pagebreakObject

切换到分页预览视图



25
26
27
# File 'lib/aio/base/toolkit/excel_office.rb', line 25

def window_pagebreak
	@excel.ActiveWindow.View = 2
end