diff options
| author | Randy Morgan <[email protected]> | 2012-05-19 09:44:29 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2012-05-19 09:44:29 +0900 |
| commit | 869acca69612b9197d5bdf7ff8c543e51438f9ed (patch) | |
| tree | 924edd9fafae0c77229c2d9979f8dfc317179a8d | |
| parent | c8b40481b1ab947fbb783657e19749b59b716cfe (diff) | |
| download | caxlsx-869acca69612b9197d5bdf7ff8c543e51438f9ed.tar.gz caxlsx-869acca69612b9197d5bdf7ff8c543e51438f9ed.zip | |
correct relation management for comments and some spec improvements for package to provide more breadth in serialization integration testing.
| -rw-r--r-- | lib/axlsx/drawing/vml_shape.rb | 6 | ||||
| -rw-r--r-- | lib/axlsx/rels/relationships.rb | 2 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/comment.rb | 6 | ||||
| -rw-r--r-- | lib/axlsx/workbook/worksheet/worksheet.rb | 7 | ||||
| -rw-r--r-- | test/tc_package.rb | 31 | ||||
| -rw-r--r-- | test/workbook/worksheet/tc_comment.rb | 15 |
6 files changed, 37 insertions, 30 deletions
diff --git a/lib/axlsx/drawing/vml_shape.rb b/lib/axlsx/drawing/vml_shape.rb index c4b56237..c915d7e5 100644 --- a/lib/axlsx/drawing/vml_shape.rb +++ b/lib/axlsx/drawing/vml_shape.rb @@ -100,14 +100,10 @@ module Axlsx def to_xml_string(str ='') str << <<SHAME_ON_YOU -<v:shape id="#{@id}" type="#_x0000_t202" -style='position:absolute;margin-left:104pt;margin-top:2pt;width:800px;height:27pt;z-index:1;mso-wrap-style:tight' - fillcolor="#ffffa1 [80]" o:insetmode="auto"> - +<v:shape id="#{@id}" type="#_x0000_t202" fillcolor="#ffffa1 [80]" o:insetmode="auto"> <v:fill color2="#ffffa1 [80]"/> <v:shadow on="t" obscured="t"/> <v:path o:connecttype="none"/> - <v:textbox style='mso-fit-text-with-word-wrap:t'> <div style='text-align:left'></div> </v:textbox> diff --git a/lib/axlsx/rels/relationships.rb b/lib/axlsx/rels/relationships.rb index dbc5b209..521d7689 100644 --- a/lib/axlsx/rels/relationships.rb +++ b/lib/axlsx/rels/relationships.rb @@ -10,7 +10,7 @@ require 'axlsx/rels/relationship.rb' def initialize super Relationship end - + def to_xml_string(str = '') str << '<?xml version="1.0" encoding="UTF-8"?>' str << '<Relationships xmlns="' << RELS_R << '">' diff --git a/lib/axlsx/workbook/worksheet/comment.rb b/lib/axlsx/workbook/worksheet/comment.rb index 0394d7c8..bd7a88aa 100644 --- a/lib/axlsx/workbook/worksheet/comment.rb +++ b/lib/axlsx/workbook/worksheet/comment.rb @@ -90,10 +90,10 @@ module Axlsx def initialize_vml_shape pos = Axlsx::name_to_indices(ref) @vml_shape = VmlShape.new(:row => pos[1], :column => pos[0]) do |vml| - vml.left_column = vml.row + 1 - vml.right_column = vml.column + 4 + vml.left_column = vml.column + vml.right_column = vml.column + 2 vml.top_row = vml.row - vml.bottom_row = vml.row + 4 + vml.bottom_row = vml.row + 4 end end diff --git a/lib/axlsx/workbook/worksheet/worksheet.rb b/lib/axlsx/workbook/worksheet/worksheet.rb index b104b054..57d96861 100644 --- a/lib/axlsx/workbook/worksheet/worksheet.rb +++ b/lib/axlsx/workbook/worksheet/worksheet.rb @@ -241,7 +241,7 @@ module Axlsx # (see #fit_to_page) # @return [Boolean] def fit_to_page=(v) - warn('DEPRECIATED: fit_to_page has been depreciated. This value will automatically be set for you when page_setup.fit_to_width or page_setup.fit_to_height are specified.') + warn('axlsx::DEPRECIATED: Worksheet#fit_to_page has been depreciated. This value will automatically be set for you when you use PageSetup#fit_to.') fit_to_page end @@ -466,6 +466,7 @@ module Axlsx # @param [String] str # @return [String] def to_xml_string + rels = relationships str = '<?xml version="1.0" encoding="UTF-8"?>' str.concat "<worksheet xmlns=\"%s\" xmlns:r=\"%s\">" % [XML_NS, XML_NS_R] str.concat "<sheetPr><pageSetUpPr fitToPage=\"%s\"></pageSetUpPr></sheetPr>" % fit_to_page if fit_to_page @@ -485,8 +486,8 @@ module Axlsx print_options.to_xml_string(str) if @print_options page_margins.to_xml_string(str) if @page_margins page_setup.to_xml_string(str) if @page_setup - str.concat "<drawing r:id='rId1'></drawing>" if @drawing - str << '<legacyDrawing r:id="rId1"/>' if @comments.size > 0 + str << "<drawing r:id='rId" << (rels.index{ |r| r.Type == DRAWING_R } + 1).to_s << "'/>" if @drawing + str << "<legacyDrawing r:id='rId" << (rels.index{ |r| r.Type == VML_DRAWING_R } + 1).to_s << "'/>" if @comments.size > 0 unless @tables.empty? str.concat "<tableParts count='%s'>%s</tableParts>" % [@tables.size, @tables.reduce('') { |memo, obj| memo += "<tablePart r:id='%s'/>" % obj.rId }] end diff --git a/test/tc_package.rb b/test/tc_package.rb index d51f0f5f..47c61dbb 100644 --- a/test/tc_package.rb +++ b/test/tc_package.rb @@ -1,12 +1,16 @@ +# encoding: UTF-8 require 'tc_helper.rb' class TestPackage < Test::Unit::TestCase def setup @package = Axlsx::Package.new ws = @package.workbook.add_worksheet - ws.add_row ['yes', 'we', 'can'] - ws.add_comment :author => 'bob', :text => 'penny!', :ref => 'A1' - chart = ws.add_chart Axlsx::Pie3DChart + ws.add_row ['Can', 'we', 'build it?'] + ws.add_row ['Yes!', 'We', 'can!'] + ws.add_comment :author => 'alice', :text => 'Hi Bob', :ref => 'A12' + ws.add_comment :author => 'bob', :text => 'Hi Alice', :ref => 'F19' + + chart = ws.add_chart Axlsx::Pie3DChart, :title => "これは?", :start_at => [0,3] chart.add_series :data=>[1,2,3], :labels=>["a", "b", "c"] @fname = 'axlsx_test_serialization.xlsx' img = File.expand_path('../../examples/image1.jpeg', __FILE__) @@ -14,10 +18,18 @@ class TestPackage < Test::Unit::TestCase image.width=720 image.height=666 image.hyperlink.tooltip = "Labeled Link" - image.start_at 2, 2 + image.start_at 5, 5 + end + ws.add_image :image_src => File.expand_path('../../examples/image1.gif', __FILE__) do |image| + image.start_at 0, 20 + image.width=360 + image.height=333 + end + ws.add_image :image_src => File.expand_path('../../examples/image1.png', __FILE__) do |image| + image.start_at 9, 20 + image.width = 180 + image.height = 167 end - ws.add_image :image_src => File.expand_path('../../examples/image1.gif', __FILE__) - ws.add_image :image_src => File.expand_path('../../examples/image1.png', __FILE__) ws.add_table 'A1:C1' end @@ -65,11 +77,8 @@ class TestPackage < Test::Unit::TestCase def test_validation assert_equal(@package.validate.size, 0, @package.validate) - parts = @package.send(:parts) - workbook = parts.select { |part| part[:entry] =~ /xl\/workbook\.xml/ }.first - workbook[:doc] = workbook[:doc].gsub('definedNames', 'defineNames') - errors = @package.send(:validate_single_doc, workbook[:schema], workbook[:doc] ) - assert_equal(errors.size, 1) + Axlsx::Workbook.class_variable_set(:@@date1904, 9900) + assert_equal(@package.validate.size, 2, @package.validate) end def test_parts diff --git a/test/workbook/worksheet/tc_comment.rb b/test/workbook/worksheet/tc_comment.rb index 352f30a0..0cb79bcc 100644 --- a/test/workbook/worksheet/tc_comment.rb +++ b/test/workbook/worksheet/tc_comment.rb @@ -34,14 +34,15 @@ class TestComment < Test::Unit::TestCase end def test_vml_shape + pos = Axlsx::name_to_indices(@c1.ref) assert(@c1.vml_shape.is_a?(Axlsx::VmlShape)) - assert(@c1.vml_shape.column == Axlsx::name_to_indices(@c1.ref)[0]) - assert(@c1.vml_shape.row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.left_column == Axlsx::name_to_indices(@c1.ref)[1]+1) - assert(@c1.vml_shape.top_row == Axlsx::name_to_indices(@c1.ref)[1]) - assert(@c1.vml_shape.right_column == Axlsx::name_to_indices(@c1.ref)[0]+4) - assert(@c1.vml_shape.bottom_row == Axlsx::name_to_indices(@c1.ref)[1]+4) + assert(@c1.vml_shape.column == pos[0]) + assert(@c1.vml_shape.row == pos[1]) + assert(@c1.vml_shape.row == pos[1]) + assert_equal(pos[0], @c1.vml_shape.left_column) + assert(@c1.vml_shape.top_row == pos[1]) + assert_equal(pos[0] + 2 , @c1.vml_shape.right_column) + assert(@c1.vml_shape.bottom_row == pos[1]+4) end def to_xml_string |
