From 33e2771710a1f0a7740d15cf0b9925f9079d486b Mon Sep 17 00:00:00 2001 From: "Knut I. Stenmark" Date: Fri, 19 Mar 2021 11:47:49 +0100 Subject: Add support for format in pivot tables (#79) --- lib/axlsx/workbook/worksheet/pivot_table.rb | 9 +++++++-- test/workbook/worksheet/tc_pivot_table.rb | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/axlsx/workbook/worksheet/pivot_table.rb b/lib/axlsx/workbook/worksheet/pivot_table.rb index 55174968..d8c630ec 100644 --- a/lib/axlsx/workbook/worksheet/pivot_table.rb +++ b/lib/axlsx/workbook/worksheet/pivot_table.rb @@ -111,8 +111,12 @@ module Axlsx if data_field.is_a? String data_field = {:ref => data_field} end - data_field.values.each do |value| - DataTypeValidator.validate "#{self.class}.data[]", [String], value + data_field.each do |key, value| + if key == :num_fmt + DataTypeValidator.validate "#{self.class}.data[]", [Integer], value + else + DataTypeValidator.validate "#{self.class}.data[]", [String], value + end end @data << data_field end @@ -212,6 +216,7 @@ module Axlsx data.each do |datum_value| # The correct name prefix in ["Sum","Average", etc...] str << "" end diff --git a/test/workbook/worksheet/tc_pivot_table.rb b/test/workbook/worksheet/tc_pivot_table.rb index 6d7f4d1c..a494dcfd 100644 --- a/test/workbook/worksheet/tc_pivot_table.rb +++ b/test/workbook/worksheet/tc_pivot_table.rb @@ -132,4 +132,12 @@ class TestPivotTable < Test::Unit::TestCase end shared_test_pivot_table_xml_validity(pivot_table) end + + def test_add_pivot_table_with_format_options_on_data_field + pivot_table = @ws.add_pivot_table('G5:G6', 'A1:E5') do |pt| + pt.data = [{:ref=>"Sales", :subtotal => 'sum', num_fmt: 4}] + end + doc = Nokogiri::XML(pivot_table.to_xml_string) + assert_equal('4', doc.at_css('dataFields dataField')['numFmtId'], 'adding format options to pivot_table') + end end -- cgit v1.2.3