Sha256: d166ee2f92ad5f8ef6f9c888c20d1a4656f3d68d68a795cf25eca00f47a9f9a5

Contents?: true

Size: 1.78 KB

Versions: 2

Compression:

Stored size: 1.78 KB

Contents

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

#######################################################################
#
# A simple example of how to use the WriteXLSX gem to
# add shapes and one-to-many connectors to an Excel xlsx file.
#
# reverse('c'), May 2012, John McNamara, jmcnamara@cpan.org
# converted to Ruby by Hideo NAKAMURA, nakamura.hideo@gmail.com
#

require 'write_xlsx'

workbook  = WriteXLSX.new('shape8.xlsx')
worksheet = workbook.add_worksheet

# Add a circle, with centered text. c is for circle, not center.
cw = 60
ch = 60
cx = 210
cy = 190

ellipse = workbook.add_shape(
  :type   => 'ellipse',
  :id     => 2,
  :text   => "Hello\nWorld",
  :width  => cw,
  :height => ch
)
worksheet.insert_shape('A1', ellipse, cx, cy)

# Add a plus sign at 4 different positionos around the circle.
pw = 20
ph = 20
px = 120
py = 250

plus = workbook.add_shape(
  :type   => 'plus',
  :id     => 3,
  :width  => pw,
  :height => ph
)

p1 = worksheet.insert_shape('A1', plus, 350, 150)
p2 = worksheet.insert_shape('A1', plus, 350, 350)
p3 = worksheet.insert_shape('A1', plus, 150, 350)
p4 = worksheet.insert_shape('A1', plus, 150, 150)

cxn_shape = workbook.add_shape(:type => 'bentConnector3', :fill => 0)

cxn_shape.start       = ellipse.id
cxn_shape.start_index = 2   # 2nd connection pt, clockwise from top(0).
cxn_shape.start_side  = 'r' # r)ight or b)ottom.

cxn_shape.end         = p1.id
cxn_shape.end_index   = 3   # 3rd connection point on plus, right side
cxn_shape.end_side    = 'l' # l)eft or t)op.
worksheet.insert_shape('A1', cxn_shape, 0, 0)

cxn_shape.end = p2.id
worksheet.insert_shape('A1', cxn_shape, 0, 0)

cxn_shape.end = p3.id
worksheet.insert_shape('A1', cxn_shape, 0, 0)

cxn_shape.end = p4.id
cxn_shape.adjustments = [-50, 45, 120]
worksheet.insert_shape('A1', cxn_shape, 0, 0)

workbook.close

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
write_xlsx-1.10.0 examples/shape8.rb
write_xlsx-1.09.5 examples/shape8.rb