Sha256: d85d756dca01baabe54acaf0c418551219e91079fccb0d6fda783261c4229541

Contents?: true

Size: 1.93 KB

Versions: 12

Compression:

Stored size: 1.93 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, cxn03651@msj.biglobe.ne.jp
#

require 'rubygems'
require 'write_xlsx'

workbook  = WriteXLSX.new('shape7.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 positions 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, 350)
p2 = worksheet.insert_shape('A1', plus, 150, 350)
p3 = worksheet.insert_shape('A1', plus, 350, 150)
plus[:adjustments] = 35  # change shape of plus symbol.
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] = 4   # 4th connection pt, clockwise from top(0).
cxn_shape[:start_side]  = 'b' # r)ight or b)ottom.

cxn_shape[:end]         = p1[:id]
cxn_shape[:end_index]   = 0
cxn_shape[:end_side]    = 't' # 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

12 entries across 12 versions & 1 rubygems

Version Path
write_xlsx-0.64.1 examples/shape7.rb
write_xlsx-0.64.0 examples/shape7.rb
write_xlsx-0.62.0 examples/shape7.rb
write_xlsx-0.61.0 examples/shape7.rb
write_xlsx-0.60.0 examples/shape7.rb
write_xlsx-0.59.0 examples/shape7.rb
write_xlsx-0.58.0 examples/shape7.rb
write_xlsx-0.57.0 examples/shape7.rb
write_xlsx-0.56.0 examples/shape7.rb
write_xlsx-0.55.0 examples/shape7.rb
write_xlsx-0.54.0 examples/shape7.rb
write_xlsx-0.51.0 examples/shape7.rb