Class: ExcelOffice::WorkBook

Inherits:
Object
  • Object
show all
Defined in:
lib/excel_office.rb

Constant Summary collapse

@@worksheets_name =
[]

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of WorkBook.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/excel_office.rb', line 5

def initialize(encoding = "utf-8")

	if OS.windows?
		require "win32ole"
	else
		print "只有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



63
64
65
66
67
# File 'lib/excel_office.rb', line 63

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

.normal_style(sty) ⇒ Object



58
59
60
61
# File 'lib/excel_office.rb', line 58

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

.title_style(sty) ⇒ Object



69
70
71
72
73
# File 'lib/excel_office.rb', line 69

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

Instance Method Details

#add_worksheet(name) ⇒ Object



36
37
38
39
40
41
42
43
44
45
# File 'lib/excel_office.rb', line 36

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



84
85
86
87
# File 'lib/excel_office.rb', line 84

def close
	@workbook.close
	@excel.quit
end

#create_styleObject



47
48
49
50
51
52
53
54
55
56
# File 'lib/excel_office.rb', line 47

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

警告提示开关



32
33
34
# File 'lib/excel_office.rb', line 32

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

#save(path) ⇒ Object



79
80
81
82
# File 'lib/excel_office.rb', line 79

def save(path)
	path = String.safe_path(path)
	@workbook.saveas(path)
end

#showObject



75
76
77
# File 'lib/excel_office.rb', line 75

def show
	@excel.visible = true
end

#window_normalObject

切换到普通视图



27
28
29
# File 'lib/excel_office.rb', line 27

def window_normal
	@excel.ActiveWindow.View = 1
end

#window_pagebreakObject

切换到分页预览视图



22
23
24
# File 'lib/excel_office.rb', line 22

def window_pagebreak
	@excel.ActiveWindow.View = 2
end