require 'rubyXL/objects/ooxml_object'
require 'rubyXL/objects/simple_types'
require 'rubyXL/objects/extensions'
require 'rubyXL/objects/relationships'
require 'rubyXL/objects/sheet_common'
# Query Tables
# https://msdn.microsoft.com/en-us/library/hh643563(v=office.12).aspx
module RubyXL
# http://www.datypic.com/sc/ooxml/e-ssml_queryTableField-1.html
class QueryTableField < OOXMLObject
define_attribute(:id, :uint, :required => true)
define_attribute(:name, RubyXL::ST_Xstring)
define_attribute(:dataBound, :bool, :default => true)
define_attribute(:rowNumbers, :bool, :default => false)
define_attribute(:fillFormulas, :bool, :default => false)
define_attribute(:clipped, :bool, :default => false)
define_attribute(:tableColumnId, :uint, :default => 0)
define_child_node(RubyXL::ExtensionStorageArea)
define_element_name 'queryTableField'
end
# http://www.datypic.com/sc/ooxml/e-ssml_queryTableFields-1.html
class QueryTableFields < OOXMLObject
define_child_node(RubyXL::QueryTableField, :collection => :with_count, :accessor => :fields, :node_name => :queryTableField)
define_element_name 'queryTableFields'
end
# http://www.datypic.com/sc/ooxml/e-ssml_deletedField-1.html
class QueryTableDeletedField < OOXMLObject
define_attribute(:name, RubyXL::ST_Xstring, :required => true)
define_element_name 'deletedField'
end
# http://www.datypic.com/sc/ooxml/e-ssml_queryTableDeletedFields-1.html
class QueryTableDeletedFields < OOXMLObject
define_child_node(RubyXL::QueryTableDeletedField, :collection => :with_count, :accessor => :deleted_fields, :node_name => :deletedField)
define_element_name 'queryTableDeletedFields'
end
# http://www.datypic.com/sc/ooxml/e-ssml_queryTableRefresh-1.html
class QueryTableRefresh < OOXMLObject
define_attribute(:preserveSortFilterLayout, :bool, :default => true)
define_attribute(:fieldIdWrapped, :bool, :default => false)
define_attribute(:headersInLastRefresh, :bool, :default => true)
define_attribute(:minimumVersion, :uint, :default => 0)
define_attribute(:nextId, :uint, :default => 1)
define_attribute(:unboundColumnsLeft, :uint, :default => 0)
define_attribute(:unboundColumnsRight, :uint, :default => 0)
define_child_node(RubyXL::QueryTableFields) # [1..1]
define_child_node(RubyXL::QueryTableDeletedFields)
define_child_node(RubyXL::SortState)
define_child_node(RubyXL::ExtensionStorageArea)
define_element_name 'queryTableRefresh'
end
# http://www.datypic.com/sc/ooxml/e-ssml_queryTable.html
class QueryTable < OOXMLTopLevelObject
CONTENT_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml'
REL_TYPE = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable'
include RubyXL::RelationshipSupport
define_attribute(:name, RubyXL::ST_Xstring, :required => true)
define_attribute(:headers, :bool, :default => true)
define_attribute(:rowNumbers, :bool, :default => false)
define_attribute(:disableRefresh, :bool, :default => false)
define_attribute(:backgroundRefresh, :bool, :default => true)
define_attribute(:firstBackgroundRefresh, :bool, :default => false)
define_attribute(:refreshOnLoad, :bool, :default => false)
define_attribute(:growShrinkType, RubyXL::ST_GrowShrinkType, :default => 'insertDelete')
define_attribute(:fillFormulas, :bool, :default => false)
define_attribute(:removeDataOnSave, :bool, :default => false)
define_attribute(:disableEdit, :bool, :default => false)
define_attribute(:preserveFormatting, :bool, :default => true)
define_attribute(:adjustColumnWidth, :bool, :default => true)
define_attribute(:intermediate, :bool, :default => false)
define_attribute(:connectionId, :uint, :required => true)
define_attribute(:autoFormatId, :uint)
define_attribute(:applyNumberFormats, :bool)
define_attribute(:applyBorderFormats, :bool)
define_attribute(:applyFontFormats, :bool)
define_attribute(:applyPatternFormats, :bool)
define_attribute(:applyAlignmentFormats, :bool)
define_attribute(:applyWidthHeightFormats, :bool)
define_child_node(RubyXL::QueryTableRefresh)
define_child_node(RubyXL::ExtensionStorageArea)
define_element_name 'queryTable'
set_namespaces('http://schemas.openxmlformats.org/spreadsheetml/2006/main' => nil,
'http://schemas.openxmlformats.org/officeDocument/2006/relationships' => 'r')
def xlsx_path
ROOT.join('xl', 'queryTables', "queryTable#{file_index}.xml")
end
end
end