summaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorWeston Ganger <[email protected]>2022-01-13 08:06:07 -0800
committerJosef Šimánek <[email protected]>2022-01-28 20:31:04 +0100
commitc8eb5fe13bfca2dcac17848dd15dc04f4f0dcf9b (patch)
treead2e392d4113fd833a5f0de2914e91b98f4a5866 /lib
parent9df7ea821ca36d66f15e34f857fb271f4b4dbc43 (diff)
downloadcaxlsx-c8eb5fe13bfca2dcac17848dd15dc04f4f0dcf9b.tar.gz
caxlsx-c8eb5fe13bfca2dcac17848dd15dc04f4f0dcf9b.zip
Fix invalid xml when pivot table created with more than one column in data field
Diffstat (limited to 'lib')
-rw-r--r--lib/axlsx/workbook/worksheet/pivot_table.rb6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/axlsx/workbook/worksheet/pivot_table.rb b/lib/axlsx/workbook/worksheet/pivot_table.rb
index d8c630ec..bc500a8a 100644
--- a/lib/axlsx/workbook/worksheet/pivot_table.rb
+++ b/lib/axlsx/workbook/worksheet/pivot_table.rb
@@ -173,7 +173,9 @@ module Axlsx
# @return [String]
def to_xml_string(str = '')
str << '<?xml version="1.0" encoding="UTF-8"?>'
- str << ('<pivotTableDefinition xmlns="' << XML_NS << '" name="' << name << '" cacheId="' << cache_definition.cache_id.to_s << '" dataOnRows="1" applyNumberFormats="0" applyBorderFormats="0" applyFontFormats="0" applyPatternFormats="0" applyAlignmentFormats="0" applyWidthHeightFormats="1" dataCaption="Data" showMultipleLabel="0" showMemberPropertyTips="0" useAutoFormatting="1" indent="0" compact="0" compactData="0" gridDropZones="1" multipleFieldFilters="0">')
+
+ str << ('<pivotTableDefinition xmlns="' << XML_NS << '" name="' << name << '" cacheId="' << cache_definition.cache_id.to_s << '"' << (data.size <= 1 ? ' dataOnRows="1"' : '') << ' applyNumberFormats="0" applyBorderFormats="0" applyFontFormats="0" applyPatternFormats="0" applyAlignmentFormats="0" applyWidthHeightFormats="1" dataCaption="Data" showMultipleLabel="0" showMemberPropertyTips="0" useAutoFormatting="1" indent="0" compact="0" compactData="0" gridDropZones="1" multipleFieldFilters="0">')
+
str << ('<location firstDataCol="1" firstDataRow="1" firstHeaderRow="1" ref="' << ref << '"/>')
str << ('<pivotFields count="' << header_cells_count.to_s << '">')
header_cell_values.each do |cell_value|
@@ -195,7 +197,7 @@ module Axlsx
end
str << '</rowItems>'
end
- if columns.empty?
+ if columns.empty? && data.size <= 1
str << '<colItems count="1"><i/></colItems>'
else
str << ('<colFields count="' << columns.size.to_s << '">')