summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-05-19 09:44:29 +0900
committerRandy Morgan <[email protected]>2012-05-19 09:44:29 +0900
commit869acca69612b9197d5bdf7ff8c543e51438f9ed (patch)
tree924edd9fafae0c77229c2d9979f8dfc317179a8d
parentc8b40481b1ab947fbb783657e19749b59b716cfe (diff)
downloadcaxlsx-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.rb6
-rw-r--r--lib/axlsx/rels/relationships.rb2
-rw-r--r--lib/axlsx/workbook/worksheet/comment.rb6
-rw-r--r--lib/axlsx/workbook/worksheet/worksheet.rb7
-rw-r--r--test/tc_package.rb31
-rw-r--r--test/workbook/worksheet/tc_comment.rb15
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