Class: ExcelWps::WorkSheet

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

Overview

class WorkBook

Constant Summary collapse

IMAGE_ROW_NUM =
56
@@worksheets_name =
[]

Instance Method Summary collapse

Constructor Details

#initialize(worksheet) ⇒ WorkSheet

Returns a new instance of WorkSheet.



98
99
100
101
102
# File 'lib/excel_wps.rb', line 98

def initialize(worksheet)
  @row_count = 1
  @worksheet = worksheet
  @nil_space = []
end

Instance Method Details

#add_chart(&block) ⇒ Object

添加图表



180
181
182
183
184
185
186
187
188
# File 'lib/excel_wps.rb', line 180

def add_chart(&block)
  ch = @worksheet.Shapes.AddChart
  active = ch.chart

  # 占位符
  block.call(Chart.new(active))

  ch.copy
end

#add_image(image_path) ⇒ Object

添加图像



154
155
156
157
158
159
160
161
162
# File 'lib/excel_wps.rb', line 154

def add_image(image_path)
  return unless File.exist?(image_path)
  add_space_line
  add_row
  cell_name = current_row.first_cell
  @worksheet.Range(cell_name).Select
  @worksheet.Pictures.Insert(image_path)
  add_space_line IMAGE_ROW_NUM
end

#add_row {|@current_row| ... } ⇒ Object

增加Row类

Yields:



135
136
137
138
139
140
141
# File 'lib/excel_wps.rb', line 135

def add_row(&block)
  @current_row = Row.new(@worksheet, @row_count)
  @current_row.height = @row_height if @row_height
  @row_count += 1
  yield @current_row if block
  return @current_row
end

#add_space_line(n = 1) ⇒ Object

增加一个空行



105
106
107
108
# File 'lib/excel_wps.rb', line 105

def add_space_line(n=1)
  return if n < 1
  @row_count += n
end

#add_title(name) ⇒ Object

添加标题行



121
122
123
# File 'lib/excel_wps.rb', line 121

def add_title(name)
  add_row.add_cell(name, false, "BoldStyle")
end

#current_rowObject

返回此时的Row类



144
145
146
# File 'lib/excel_wps.rb', line 144

def current_row
  return @current_row
end

#current_row_idObject

返回此时的行索引



149
150
151
# File 'lib/excel_wps.rb', line 149

def current_row_id
  return @current_row.row_id
end

#has_pagebreak?Boolean

判断是否有垂直分页符存在

Returns:

  • (Boolean)


165
166
167
# File 'lib/excel_wps.rb', line 165

def has_pagebreak?
  @worksheet.VPageBreaks.count > 0 
end

#height(height) ⇒ Object



130
131
132
# File 'lib/excel_wps.rb', line 130

def height(height)
  @row_height = height
end

#merge(range1, range2) ⇒ Object

对列进行合并



111
112
113
# File 'lib/excel_wps.rb', line 111

def merge(range1, range2)
  @worksheet.range("#{range1}:#{range2}").merge
end

#pagebreak(col) ⇒ Object

对列修改分页符



170
171
172
# File 'lib/excel_wps.rb', line 170

def pagebreak(col)
  @worksheet.VPageBreaks(1).Location = @worksheet.columns(col)
end

#range(str) ⇒ Object

产生 ::Range 类



116
117
118
# File 'lib/excel_wps.rb', line 116

def range(str)
  @worksheet.range(str)
end

#width(col, width) ⇒ Object

设置列的宽度



126
127
128
# File 'lib/excel_wps.rb', line 126

def width(col, width)
  @worksheet.Columns("#{col}:#{col}").ColumnWidth = width
end

#worksheetObject

返回::WorkSheet



175
176
177
# File 'lib/excel_wps.rb', line 175

def worksheet
  @worksheet
end