forked from amazingfate/loongoffice
tdf#64086: fix broken XLSX import of named ranges in charts Do not create inner data table in Calc for charts, if the data source contains named ranges. Use the named ranges (local sheet names and global names) to find the data source of charts, so it will be updated correctly if we modify the values in cells. Second part: tdf#143623: chart OOXML, offapi: export the named ranges in charts with the proper special (non-ooxml-standard) Excel syntax. We need to add "[0]" characters before a global named range for proper refreshing of chart data. Also we have to add the sheet name to the local named ranges even if it's on the same sheet, but only in case of charts. Because of this, add property RefConventionChartOOXML to com::sun:⭐:sheet::FormulaParser, which specifies that use special OOXML chart syntax in case of OOXML reference convention, when parsing a formula string. Third part: tdf#66250 ODF chart: export the reference of named ranges in case of charts, if the named range contains a valid reference. Note: maybe export the name of named ranges would be a nicer solution in the future. Follow-up of commit 3c766512984feff739377d0f0af46558ee7139fd "Related: tdf#64086 Add FormulaGrammar::isRefConventionOOXML()". Thanks to Eike Rathke for his help. Change-Id: I10d8563fb436092e833682f331c25b0c0829ef86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118862 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
102 lines
3.0 KiB
Plaintext
102 lines
3.0 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#ifndef __com_sun_star_sheet_FormulaParser_idl__
|
|
#define __com_sun_star_sheet_FormulaParser_idl__
|
|
|
|
#include <com/sun/star/beans/PropertySet.idl>
|
|
#include <com/sun/star/sheet/XFormulaParser.idl>
|
|
#include <com/sun/star/sheet/FormulaOpCodeMapEntry.idl>
|
|
#include <com/sun/star/sheet/ExternalLinkInfo.idl>
|
|
|
|
|
|
module com { module sun { module star { module sheet {
|
|
|
|
|
|
service FormulaParser
|
|
{
|
|
|
|
service com::sun::star::beans::PropertySet;
|
|
|
|
|
|
interface XFormulaParser;
|
|
|
|
|
|
/** specifies whether to use English parser and formatter.
|
|
|
|
<p>Note: When changing this, an already existing #OpCodeMap
|
|
needs to be recreated internally, so for performance reasons
|
|
set this <em>before</em> setting the #OpCodeMap.
|
|
*/
|
|
[property] boolean CompileEnglish;
|
|
|
|
|
|
/** specifies which address reference style convention to use when
|
|
parsing a formula string.
|
|
|
|
@see AddressConvention
|
|
*/
|
|
[property] short FormulaConvention;
|
|
|
|
|
|
[property] boolean IgnoreLeadingSpaces;
|
|
|
|
|
|
[property] string ParameterSeparator;
|
|
|
|
|
|
/** contains the complete mapping of names to op-codes.
|
|
|
|
<p>Names and symbols not defined here lead to a parser/print error.</p>
|
|
*/
|
|
[property] sequence< FormulaOpCodeMapEntry > OpCodeMap;
|
|
|
|
|
|
/** contains a list of external links referenced in formulas.
|
|
|
|
<p>Use of this property depends on the FormulaConvention
|
|
in use. It is relevant only for
|
|
AddressConvention::XL_OOX to map indices to external
|
|
documents. The sequence must be in the order of indices used. Note
|
|
that indices are 1-based, the sequence must start with an empty
|
|
element.</p>
|
|
|
|
@since OOo 3.1
|
|
*/
|
|
[property] sequence< ExternalLinkInfo > ExternalLinks;
|
|
|
|
|
|
/** specifies that use special ooxml chart syntax in case of OOXML reference
|
|
convention, when parsing a formula string.
|
|
|
|
<p>Special syntax like: [0]!GlobalNamedRange, LocalSheet!LocalNamedRange</p>
|
|
|
|
@since LibreOffice 7.3
|
|
*/
|
|
[property] boolean RefConventionChartOOXML;
|
|
|
|
};
|
|
|
|
|
|
}; }; }; };
|
|
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|