OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only

"dynamic" array in file format

  • 1.  "dynamic" array in file format

    Posted 06-28-2024 08:34
    Hi all,

    I can still not attach an .odt file in the "Discussions" interface. As
    it is likely that the attachment in the email is neither accepted, I
    have copied the content of the attachment below.

    Kind regards,
    Regina

    ???dynamic??? array in file format

    All given section numbers belong to part 3 of ODF 1.3.

    When the size of an array changes while the user works with the
    spreadsheet document, this is not relevant for the file format. But
    ???dynamic??? arrays exist in file format too.

    The file can contain a <table:database-range> (9.4.15) element. A
    function that expects an array as input parameter can use a reference to
    such <table:database-range> element. The <table:database-range> element
    has the attribute table:name (19.677) for this purpose.

    The <table:database-range> element is connected to an array of cells via
    its table:target-range-address (19.736) attribute. This array of cells
    can contain the data directly or they display data from an external source.

    A <table:database-range> element can get its content from external
    sources like databases or other spreadsheet files. If such is intended,
    the <table:database-range> element has a child element
    <table:database-source-query> (9.4.18), <table:database-source-sql>
    (9.4.16) or <table:database-source-table> (9.4.17). Now it can happen,
    that the size of the source data changes between saving and loading the
    document so that the size of the array specified in attribute
    table:target-range-address no longer fits to the size of the current
    external data.

    The standard does not specify what should happen in such case. But the
    <table:database-range> element has some hints for the consumer. If its
    attribute table:table-has-persistent-data (19.651) has value true, then
    the cells addressed by attribute table:target-range-address contain the
    values in the state from saving the document. If it has value false or
    if the consumer is configured to update the data on opening,
    automatically or by request, then attribute table:on-update-keep-size
    (19.686) specifies whether the target array size shall be updated or
    not. The standard does not specify what shall happen if enlarging the
    array size for the imported data would overwrite existing cell content.

    If the size of the database range changes, this will propagate to
    functions, that reference the database range in an import parameter, and
    might affect the size of the output of the function, e.g. SORT and
    TRANSPOSE. The left-top most cell of the affected array of cells has in
    its table:formula attribute (19.646) the formula itself. In case it is a
    matrix formula (like SORT), then the cell has the attributes
    table:number-matrix-columns-spanned (19.683) and
    table:number-matrix-rows-spanned (19.684). They specify the size of the
    formula output in the state when saving the document. The standard does
    not specify what shall happen if the function output is recalculated on
    loading the file and the new output has different size than given in
    these attributes.

    ???The standard does not specify??? means, that I have not found anything in
    the standard. Please notify me, if I have overseen something.</table:database-range></table:database-source-table></table:database-source-sql></table:database-source-query></table:database-range></table:database-range></table:database-range></table:database-range></table:database-range></table:database-range>