Class: Aio::Base::Toolkit::ExcelWps::Chart

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

Overview

图表

Constant Summary collapse

ColumnClustered =

图形类型

51
ColumnStacked =

簇状柱形图

52
Doughnut =

堆积柱状图

-4120						# 圆环图
Line =

圆环图

4
Pie =

折线图

5
BarClustered =

饼图

57
DataLabelsShowLabel =

标签数据

4
DataLabelsShowLabelAndPercent =

数据点所属的分类

5
DataLabelsShowPercent =

占比百分比以及所属分类,仅饼图

3
DataLabelsShowValue =

百分比, 仅饼图

2

Instance Method Summary collapse

Constructor Details

#initialize(active) ⇒ Chart

Returns a new instance of Chart.



333
334
335
# File 'lib/aio/base/toolkit/excel_wps.rb', line 333

def initialize(active)
  @chart = active
end

Instance Method Details

#axes_unit(int) ⇒ Object

设置坐标轴格式, 刻度单位



380
381
382
383
# File 'lib/aio/base/toolkit/excel_wps.rb', line 380

def axes_unit(int)
  @chart.Axes(2).MajorUnit = int
  @chart.Axes(2).MinorUnit = int
end

#axes_x=(name) ⇒ Object

设置X轴名称, 只用于条形图



368
369
370
371
# File 'lib/aio/base/toolkit/excel_wps.rb', line 368

def axes_x=(name)
  @chart.Axes(1,1).HasTitle = true
  @chart.Axes(1,1).AxisTitle.Characters.Text = name
end

#axes_y=(name) ⇒ Object

设置Y轴名称, 只用于条形图



374
375
376
377
# File 'lib/aio/base/toolkit/excel_wps.rb', line 374

def axes_y=(name)
  @chart.Axes(2,1).HasTitle = true
  @chart.Axes(2,1).AxisTitle.Characters.Text = name
end

#category_name=(bool) ⇒ Object

标签类别名称开关



417
418
419
420
421
# File 'lib/aio/base/toolkit/excel_wps.rb', line 417

def category_name=(bool)
  now_table do |n|
    n.ShowCategoryName = bool
  end
end

#chart_workObject



337
338
339
# File 'lib/aio/base/toolkit/excel_wps.rb', line 337

def chart_work
  @chart
end

#data_label(type = DataLabelsShowLabelAndPercent) ⇒ Object

添加饼图的百分比



395
396
397
398
399
400
401
402
403
404
405
406
407
# File 'lib/aio/base/toolkit/excel_wps.rb', line 395

def data_label(type=DataLabelsShowLabelAndPercent)

  # 应用标签选项
  @chart.ApplyDataLabels(type)

  # 取消标签选项的系列名称
  now = @chart.SeriesCollection(1).DataLabels
  now.ShowSeriesName = false

  # 将图例放到右边
  now = @chart.Legend
  now.Position = -4152
end

#now_tableObject

标签选项



342
343
344
345
346
347
348
349
# File 'lib/aio/base/toolkit/excel_wps.rb', line 342

def now_table
  #@chart.SeriesCollection(n).DataLabels
  num = @chart.SeriesCollection.Count
  num.times do |t|
    t += 1
    yield @chart.SeriesCollection(t).DataLabels
  end
end

#series_name=(bool) ⇒ Object

标签系列名称开关



410
411
412
413
414
# File 'lib/aio/base/toolkit/excel_wps.rb', line 410

def series_name=(bool)
  now_table do |n|
    n.ShowSeriesName = bool
  end
end

#source=(range) ⇒ Object

这是原数据地址, 以每列数据作为一个系列



358
359
360
# File 'lib/aio/base/toolkit/excel_wps.rb', line 358

def source=(range)
  @chart.SetSourceData(range, 2)
end

#style=(int) ⇒ Object

修改样式通过录制宏可以查看样式编号条形图中203 比较好看饼图中 251, 254 比较好看



389
390
391
392
# File 'lib/aio/base/toolkit/excel_wps.rb', line 389

def style=(int)
  @chart.ChartStyle = int
  data_label
end

#title=(name) ⇒ Object

修改标题



352
353
354
355
# File 'lib/aio/base/toolkit/excel_wps.rb', line 352

def title=(name)
  @chart.HasTitle = true
  @chart.ChartTitle.Characters.Text = name
end

#type=(c_type) ⇒ Object

更改图形类型



363
364
365
# File 'lib/aio/base/toolkit/excel_wps.rb', line 363

def type=(c_type)
  @chart.ChartType = c_type
end

#value=(bool) ⇒ Object

标签值开关



424
425
426
427
428
429
430
# File 'lib/aio/base/toolkit/excel_wps.rb', line 424

def value=(bool)
  now_table do |n|
    n.ShowValue = bool
    n.ShowLegendKey = 0 unless bool
    n.Separator = " " unless bool
  end
end