xls/xlsb lib refactoring

This commit is contained in:
Elena.Subbotina
2023-07-10 14:18:33 +03:00
parent 410db159e4
commit 2e8820e81c
220 changed files with 560 additions and 556 deletions

View File

@ -381,6 +381,20 @@
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\AntiMoniker.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\ArrayParsedFormula.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\Bes.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\Color.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\ColSpan.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\DValStrings.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormula.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormulas.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTHeader.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTParsedFormula.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRef.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRefs.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRelID.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqref.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqrefs.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\RelID.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\UncheckedSqRfX.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffString.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffStructure.cpp" />
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BookExt_Conditional11.cpp" />
@ -1173,6 +1187,23 @@
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\AntiMoniker.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\ArrayParsedFormula.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\Bes.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\CellRangeRef.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\CellRef.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\Color.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\ColSpan.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\DValStrings.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormula.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormulas.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTHeader.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTParsedFormula.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRef.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRefs.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRelID.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqref.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqrefs.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\RelID.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\UncheckedSqRfX.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\XLWideString.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffAttribute.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffString.h" />
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffStructure.h" />

View File

@ -35,6 +35,9 @@
<Filter Include="Logic\Biff_structures\ODRAW">
<UniqueIdentifier>{73faf489-4c86-4f5b-b26b-0d51a50612ad}</UniqueIdentifier>
</Filter>
<Filter Include="Logic\Biff_structures\BIFF12">
<UniqueIdentifier>{5654e677-b95e-42da-bac5-20d259c046e2}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\XlsFile\Format\Logging\Log.cpp">
@ -2389,6 +2392,48 @@
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BiffStructure.cpp">
<Filter>Logic\Biff_structures</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\Color.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\ColSpan.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\DValStrings.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTHeader.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\RelID.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\UncheckedSqRfX.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormulas.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRefs.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRelID.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqrefs.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormula.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRef.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqref.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
<ClCompile Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTParsedFormula.cpp">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\XlsFile\Format\Logging\Log.h">
@ -4785,5 +4830,56 @@
<ClInclude Include="..\..\..\XlsFile\Format\Logic\XlsElementsType.h">
<Filter>Logic</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\Color.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\ColSpan.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\DValStrings.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTHeader.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\RelID.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\UncheckedSqRfX.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\XLWideString.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\CellRangeRef.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormulas.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRefs.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRelID.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqrefs.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTFormula.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTRef.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTSqref.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\FRTParsedFormula.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
<ClInclude Include="..\..\..\XlsFile\Format\Logic\Biff_structures\BIFF12\CellRef.h">
<Filter>Logic\Biff_structures\BIFF12</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@ -35,7 +35,7 @@
#include "../../../../../OOXML/Base/Unit.h"
#include <boost/algorithm/string.hpp>
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/DValStrings.h"
#include "../Biff_structures/BIFF12/DValStrings.h"
namespace XLS

View File

@ -35,8 +35,8 @@
#include "../Biff_structures/BiffString.h"
#include "../Biff_structures/DVParsedFormula.h"
#include "../Biff_structures/SqRefU.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/UncheckedSqRfX.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/FRTHeader.h"
#include "../Biff_structures/BIFF12/UncheckedSqRfX.h"
#include "../Biff_structures/BIFF12/FRTHeader.h"
namespace XLS
{

View File

@ -33,8 +33,8 @@
#include "BiffRecord.h"
#include "../Biff_structures/BiffString.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../../../../../OOXML/XlsxFormat/WritingElement.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
//#include "../../../../../OOXML/XlsxFormat/WritingElement.h"
namespace XLS
{
@ -60,7 +60,6 @@ public:
_UINT16 iNoResPass;
XLUnicodeString stUNUsername;
XLSB::XLNullableWideString stUserName;
};
} // namespace XLS

View File

@ -32,7 +32,7 @@
#include "Font.h"
#include "../Biff_structures/BiffString.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "BiffRecord.h"
#include "../Biff_structures/BorderFillInfo.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_records/Color.h"
#include "../Biff_structures/BIFF12/Color.h"
namespace XLS
{

View File

@ -34,7 +34,7 @@
#include "BiffRecord.h"
#include "../Biff_structures/BiffString.h"
#include "../Biff_structures/NameParsedFormula.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS

View File

@ -31,7 +31,7 @@
*/
#include "Qsi.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -31,7 +31,7 @@
*/
#include "Qsif.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -32,7 +32,7 @@
#pragma once
#include "BiffRecord.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/ColSpan.h"
#include "../Biff_structures/BIFF12/ColSpan.h"
namespace XLS
{

View File

@ -32,7 +32,7 @@
#pragma once
#include "BiffRecord.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/UncheckedSqRfX.h"
#include "../Biff_structures/BIFF12/UncheckedSqRfX.h"
#include "../Biff_structures/CellRangeRef.h"
#include "../Biff_structures/PaneType.h"

View File

@ -31,8 +31,8 @@
*/
#include "Setup.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/RelID.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
#include "../Biff_structures/BIFF12/RelID.h"
namespace XLS
{

View File

@ -34,7 +34,7 @@
#include "BiffRecord.h"
#include "../Biff_structures/CellRangeRef.h"
#include "../Biff_structures/SharedParsedFormula.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "../Biff_structures/BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -31,7 +31,7 @@
*/
#include "SortData.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "../Biff_structures/BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -31,7 +31,7 @@
*/
#include "TableStyle.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -31,7 +31,7 @@
*/
#include "TableStyles.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "BiffRecord.h"
#include "../Biff_structures/BiffString.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../Biff_structures/BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -0,0 +1,47 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../CellRangeRef.h"
namespace XLSB
{
DEFINE_NAME_CLASS(UncheckedRfX)
DEFINE_NAME_CLASS(RgceArea)
DEFINE_NAME_CLASS(RgceAreaRel)
typedef XLS::CellRangeRef_T<UncheckedRfX_name, int, int, XLS::rel_Absent> UncheckedRfX;
typedef XLS::CellRangeRef_T<RgceArea_name, int, unsigned short, XLS::rel_Present> RgceArea;
typedef XLS::CellRangeRef_T<RgceAreaRel_name, int, unsigned short, XLS::rel_Present> RgceAreaRel;
} // namespace XLSB

View File

@ -0,0 +1,48 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../CellRef.h"
namespace XLSB
{
DEFINE_NAME_CLASS(RgceLoc)
DEFINE_NAME_CLASS(RgceLocRel)
typedef XLS::CellRef_T<XLS::RgceLoc_name, int, unsigned short, XLS::rel_Present> RgceLoc;
typedef XLS::CellRef_T<XLS::RgceLocRel_name, int, unsigned short, XLS::rel_Present> RgceLocRel;
//typedef CellRef_T<RgceElfLocExtra_name, unsigned short, unsigned short, rel_Present> RgceElfLocExtra;
//typedef CellRef_T<RgceElfLoc_name, unsigned short, unsigned short, rel_PresentQuoted> RgceElfLoc;
} // namespace XLSB

View File

@ -0,0 +1,69 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "ColSpan.h"
using namespace XLS;
namespace XLSB
{
ColSpan::ColSpan()
{
}
ColSpan::ColSpan(XLS::CFRecord& record)
{
load(record);
}
ColSpan::~ColSpan()
{
}
BiffStructurePtr ColSpan::clone()
{
return BiffStructurePtr(new ColSpan(*this));
}
void ColSpan::load(XLS::CFRecord& record)
{
record >> colMic >> colLast;
}
void ColSpan::save(XLS::CFRecord& record)
{
record << colMic << colLast;
}
} // namespace XLSB

View File

@ -0,0 +1,58 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
namespace XLSB
{
class ColSpan : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(ColSpan)
public:
ColSpan();
ColSpan(XLS::CFRecord& record);
~ColSpan();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
XLS::UncheckedCol colMic;
XLS::UncheckedCol colLast;
};
} // namespace XLSB

View File

@ -0,0 +1,76 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "Color.h"
using namespace XLS;
namespace XLSB
{
Color::Color()
{
}
Color::~Color()
{
}
BaseObjectPtr Color::clone()
{
return BaseObjectPtr(new Color(*this));
}
void Color::readFields(XLS::CFRecord& record)
{
BYTE flags;
record >> flags;
fValidRGB = GETBIT(flags, 0);
xColorType = GETBITS(flags, 1, 7);
record >> index >> nTintAndShade >> bRed >> bGreen >> bBlue >> bAlpha;
}
void Color::writeFields(XLS::CFRecord& record)
{
BYTE flags = 0;
SETBIT(flags, 0, fValidRGB)
SETBITS(flags, 1, 7, xColorType)
record << flags;
record << index << nTintAndShade << bRed << bGreen << bBlue << bAlpha;
}
} // namespace XLSB

View File

@ -0,0 +1,64 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../../Biff_records/BiffRecord.h"
#include "../../../../../../OOXML/XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtColor record in BIFF12
class Color: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(Color)
BASE_OBJECT_DEFINE_CLASS_NAME(Color)
public:
Color();
~Color();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record) override;
void writeFields(XLS::CFRecord& record) override;
bool fValidRGB;
BYTE xColorType;
BYTE index;
_INT16 nTintAndShade;
BYTE bRed;
BYTE bGreen;
BYTE bBlue;
BYTE bAlpha;
};
} // namespace XLSB

View File

@ -0,0 +1,69 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "DValStrings.h"
using namespace XLS;
namespace XLSB
{
DValStrings::DValStrings()
{
}
DValStrings::DValStrings(XLS::CFRecord& record)
{
load(record);
}
DValStrings::~DValStrings()
{
}
BiffStructurePtr DValStrings::clone()
{
return BiffStructurePtr(new DValStrings(*this));
}
void DValStrings::load(XLS::CFRecord& record)
{
record >> strErrorTitle >> strError >> strPromptTitle >> strPrompt;
}
void DValStrings::save(XLS::CFRecord& record)
{
record << strErrorTitle << strError << strPromptTitle << strPrompt;
}
} // namespace XLSB

View File

@ -0,0 +1,62 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "XLWideString.h"
namespace XLSB
{
class DValStrings : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(DValStrings)
public:
DValStrings();
DValStrings(XLS::CFRecord& record);
~DValStrings();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
XLNullableWideString strErrorTitle;
XLNullableWideString strError;
XLNullableWideString strPromptTitle;
XLNullableWideString strPrompt;
};
} // namespace XLSB

View File

@ -0,0 +1,71 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTFormula.h"
using namespace XLS;
namespace XLSB
{
FRTFormula::FRTFormula()
{
}
FRTFormula::FRTFormula(XLS::CFRecord& record)
{
load(record);
}
FRTFormula::~FRTFormula()
{
}
BiffStructurePtr FRTFormula::clone()
{
return BiffStructurePtr(new FRTFormula(*this));
}
void FRTFormula::load(XLS::CFRecord& record)
{
record.skipNunBytes(4);
record >> formula;
}
void FRTFormula::save(XLS::CFRecord& record)
{
record.reserveNunBytes(4);
record << formula;
}
} // namespace XLSB

View File

@ -0,0 +1,59 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "FRTParsedFormula.h"
namespace XLSB
{
class FRTFormula : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTFormula)
public:
FRTFormula();
FRTFormula(XLS::CFRecord& record);
~FRTFormula();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
FRTParsedFormula formula;
};
} // namespace XLSB

View File

@ -0,0 +1,81 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTFormulas.h"
using namespace XLS;
namespace XLSB
{
FRTFormulas::FRTFormulas()
{
}
FRTFormulas::FRTFormulas(XLS::CFRecord& record)
{
load(record);
}
FRTFormulas::~FRTFormulas()
{
}
BiffStructurePtr FRTFormulas::clone()
{
return BiffStructurePtr(new FRTFormulas(*this));
}
void FRTFormulas::load(XLS::CFRecord& record)
{
record >> cformula;
FRTFormula formula;
for(size_t i = 0; i < cformula; ++i)
{
record >> formula;
array.push_back(formula);
}
}
void FRTFormulas::save(XLS::CFRecord& record)
{
cformula = array.size();
record << cformula;
for (auto& item : array)
{
record << item;
}
}
} // namespace XLSB

View File

@ -0,0 +1,60 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "FRTFormula.h"
namespace XLSB
{
class FRTFormulas : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTFormulas)
public:
FRTFormulas();
FRTFormulas(XLS::CFRecord& record);
~FRTFormulas();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
_UINT32 cformula;
std::vector<FRTFormula> array;
};
} // namespace XLSB

View File

@ -0,0 +1,106 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTHeader.h"
using namespace XLS;
namespace XLSB
{
FRTHeader::FRTHeader()
{
}
FRTHeader::FRTHeader(XLS::CFRecord& record)
{
load(record);
}
FRTHeader::~FRTHeader()
{
}
BiffStructurePtr FRTHeader::clone()
{
return BiffStructurePtr(new FRTHeader(*this));
}
void FRTHeader::load(XLS::CFRecord& record)
{
_UINT32 flags;
record >> flags;
fRef = GETBIT(flags, 0);
fSqref = GETBIT(flags, 1);
fFormula = GETBIT(flags, 2);
fRelID = GETBIT(flags, 3);
if(fRef)
record >> rgRefs;
if(fSqref)
record >> rgSqrefs;
if(fFormula)
record >> rgFormulas;
if(fRelID)
record >> relID;
}
void FRTHeader::save(XLS::CFRecord& record)
{
_UINT32 flags = 0;
SETBIT(flags, 0, fRef)
SETBIT(flags, 1, fSqref)
SETBIT(flags, 2, fFormula)
SETBIT(flags, 3, fRelID)
record << flags;
if (fRef)
record << rgRefs;
if (fSqref)
record << rgSqrefs;
if (fFormula)
record << rgFormulas;
if (fRelID)
record << relID;
}
} // namespace XLSB

View File

@ -0,0 +1,71 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "FRTRefs.h"
#include "FRTSqrefs.h"
#include "FRTFormulas.h"
#include "FRTRelID.h"
namespace XLSB
{
class FRTHeader : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTHeader)
public:
FRTHeader();
FRTHeader(XLS::CFRecord& record);
~FRTHeader();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
bool fRef;
bool fSqref;
bool fFormula;
bool fRelID;
FRTRefs rgRefs;
FRTSqrefs rgSqrefs;
FRTFormulas rgFormulas;
FRTRelID relID;
};
typedef boost::shared_ptr<FRTHeader> FRTHeaderPtr;
} // namespace XLSB

View File

@ -0,0 +1,88 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTParsedFormula.h"
using namespace XLS;
namespace XLSB
{
FRTParsedFormula::FRTParsedFormula() : ParsedFormula(CellRef())
{
}
FRTParsedFormula& FRTParsedFormula::operator=(const std::wstring& value)
{
ParsedFormula::operator = (value);
return *this;
}
BiffStructurePtr FRTParsedFormula::clone()
{
return BiffStructurePtr(new FRTParsedFormula(*this));
}
void FRTParsedFormula::load(XLS::CFRecord& record)
{
_UINT32 cce;
_UINT32 cb;
record >> cce;
record >> cb;
rgce.load(record, cce);
//rgcb.load(record, rgce.getPtgs(), true);
}
void FRTParsedFormula::save(XLS::CFRecord& record)
{
_UINT32 cce = 0;
_UINT32 cb = 0;
record << cce;
record << cb;
auto rdPtr = record.getRdPtr();
rgce.save(record);
cce = record.getRdPtr() - rdPtr;
record.RollRdPtrBack(cce + 8);
record << cce;
record.skipNunBytes(cce + 4);
}
} // namespace XLS

View File

@ -0,0 +1,52 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../ParsedFormula.h"
namespace XLSB
{
class FRTParsedFormula : public XLS::ParsedFormula
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTParsedFormula)
public:
FRTParsedFormula();
FRTParsedFormula& operator=(const std::wstring& value);
XLS::BiffStructurePtr clone();
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
};
} // namespace XLSB

View File

@ -0,0 +1,86 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTRef.h"
using namespace XLS;
namespace XLSB
{
FRTRef::FRTRef()
{
}
FRTRef::FRTRef(XLS::CFRecord& record)
{
load(record);
}
FRTRef::~FRTRef()
{
}
BiffStructurePtr FRTRef::clone()
{
return BiffStructurePtr(new FRTRef(*this));
}
void FRTRef::load(XLS::CFRecord& record)
{
_UINT32 flags;
record >> flags;
fAdjDelete = GETBIT(flags, 0);
fDoAdjust = GETBIT(flags, 1);
fAdjChange = GETBIT(flags, 2);
fEdit = GETBIT(flags, 3);
record >> rfx;
}
void FRTRef::save(XLS::CFRecord& record)
{
_UINT32 flags = 0;
SETBIT(flags, 0, fAdjDelete)
SETBIT(flags, 1, fDoAdjust)
SETBIT(flags, 2, fAdjChange)
SETBIT(flags, 3, fEdit)
record << flags;
record << rfx;
}
} // namespace XLSB

View File

@ -0,0 +1,65 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "CellRangeRef.h"
namespace XLSB
{
class FRTRef : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTRef)
public:
FRTRef();
FRTRef(XLS::CFRecord& record);
~FRTRef();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
bool fAdjDelete;
bool fDoAdjust;
bool fAdjChange;
bool fEdit;
UncheckedRfX rfx;
};
} // namespace XLSB

View File

@ -0,0 +1,81 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTRefs.h"
using namespace XLS;
namespace XLSB
{
FRTRefs::FRTRefs()
{
}
FRTRefs::FRTRefs(XLS::CFRecord& record)
{
load(record);
}
FRTRefs::~FRTRefs()
{
}
BiffStructurePtr FRTRefs::clone()
{
return BiffStructurePtr(new FRTRefs(*this));
}
void FRTRefs::load(XLS::CFRecord& record)
{
record >> cref;
FRTRef frtref;
for(size_t i = 0; i < cref; ++i)
{
record >> frtref;
array.push_back(frtref);
}
}
void FRTRefs::save(XLS::CFRecord& record)
{
cref = array.size();
record << cref;
for (auto& item : array)
{
record << item;
}
}
} // namespace XLSB

View File

@ -0,0 +1,60 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "FRTRef.h"
namespace XLSB
{
class FRTRefs : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTRefs)
public:
FRTRefs();
FRTRefs(XLS::CFRecord& record);
~FRTRefs();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
_UINT32 cref;
std::vector<FRTRef> array;
};
} // namespace XLSB

View File

@ -0,0 +1,69 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTRelID.h"
using namespace XLS;
namespace XLSB
{
FRTRelID::FRTRelID()
{
}
FRTRelID::FRTRelID(XLS::CFRecord& record)
{
load(record);
}
FRTRelID::~FRTRelID()
{
}
BiffStructurePtr FRTRelID::clone()
{
return BiffStructurePtr(new FRTRelID(*this));
}
void FRTRelID::load(XLS::CFRecord& record)
{
record >> relId;
}
void FRTRelID::save(XLS::CFRecord& record)
{
record << relId;
}
} // namespace XLSB

View File

@ -0,0 +1,58 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "XLWideString.h"
namespace XLSB
{
class FRTRelID : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTRelID)
public:
FRTRelID();
FRTRelID(XLS::CFRecord& record);
~FRTRelID();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
XLS::LPWideString relId;
};
} // namespace XLSB

View File

@ -0,0 +1,86 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTSqref.h"
using namespace XLS;
namespace XLSB
{
FRTSqref::FRTSqref()
{
}
FRTSqref::FRTSqref(XLS::CFRecord& record)
{
load(record);
}
FRTSqref::~FRTSqref()
{
}
BiffStructurePtr FRTSqref::clone()
{
return BiffStructurePtr(new FRTSqref(*this));
}
void FRTSqref::load(XLS::CFRecord& record)
{
_UINT32 flags;
record >> flags;
fAdjDelete = GETBIT(flags, 0);
fDoAdjust = GETBIT(flags, 1);
fAdjChange = GETBIT(flags, 2);
fEdit = GETBIT(flags, 3);
record >> sqrfx;
}
void FRTSqref::save(XLS::CFRecord& record)
{
_UINT32 flags = 0;
SETBIT(flags, 0, fAdjDelete)
SETBIT(flags, 1, fDoAdjust)
SETBIT(flags, 2, fAdjChange)
SETBIT(flags, 3, fEdit)
record << flags;
record << sqrfx;
}
} // namespace XLSB

View File

@ -0,0 +1,65 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "UncheckedSqRfX.h"
namespace XLSB
{
class FRTSqref : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTSqref)
public:
FRTSqref();
FRTSqref(XLS::CFRecord& record);
~FRTSqref();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
bool fAdjDelete;
bool fDoAdjust;
bool fAdjChange;
bool fEdit;
UncheckedSqRfX sqrfx;
};
} // namespace XLSB

View File

@ -0,0 +1,81 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "FRTSqrefs.h"
using namespace XLS;
namespace XLSB
{
FRTSqrefs::FRTSqrefs()
{
}
FRTSqrefs::FRTSqrefs(XLS::CFRecord& record)
{
load(record);
}
FRTSqrefs::~FRTSqrefs()
{
}
BiffStructurePtr FRTSqrefs::clone()
{
return BiffStructurePtr(new FRTSqrefs(*this));
}
void FRTSqrefs::load(XLS::CFRecord& record)
{
record >> csqref;
FRTSqref frtsqref;
for(size_t i = 0; i < csqref; ++i)
{
record >> frtsqref;
array.push_back(frtsqref);
}
}
void FRTSqrefs::save(XLS::CFRecord& record)
{
csqref = array.size();
record << csqref;
for (auto& item : array)
{
record << item;
}
}
} // namespace XLSB

View File

@ -0,0 +1,61 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "FRTSqref.h"
namespace XLSB
{
class FRTSqrefs : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(FRTSqrefs)
public:
FRTSqrefs();
FRTSqrefs(XLS::CFRecord& record);
~FRTSqrefs();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
_UINT32 csqref;
std::vector<FRTSqref> array;
};
} // namespace XLSB

View File

@ -0,0 +1,73 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "RelID.h"
using namespace XLS;
namespace XLSB
{
RelID::RelID()
{
}
RelID::RelID(XLS::CFRecord& record)
{
load(record);
}
RelID::RelID(const std::wstring & str)
{
value = str;
}
RelID::~RelID()
{
}
BiffStructurePtr RelID::clone()
{
return BiffStructurePtr(new RelID(*this));
}
void RelID::load(XLS::CFRecord& record)
{
record >> value;
}
void RelID::save(XLS::CFRecord& record)
{
record << value;
}
} // namespace XLSB

View File

@ -0,0 +1,60 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "XLWideString.h"
namespace XLSB
{
class RelID : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(RelID)
public:
RelID();
RelID(XLS::CFRecord& record);
RelID(const std::wstring & str);
~RelID();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
XLNullableWideString value;
};
} // namespace XLSB

View File

@ -0,0 +1,104 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#include "UncheckedSqRfX.h"
#include <boost/algorithm/string.hpp>
using namespace XLS;
namespace XLSB
{
UncheckedSqRfX::UncheckedSqRfX()
{
}
UncheckedSqRfX::UncheckedSqRfX(XLS::CFRecord& record)
{
load(record);
}
UncheckedSqRfX::~UncheckedSqRfX()
{
}
BiffStructurePtr UncheckedSqRfX::clone()
{
return BiffStructurePtr(new UncheckedSqRfX(*this));
}
void UncheckedSqRfX::load(XLS::CFRecord& record)
{
record >> crfx;
UncheckedRfX rfx;
for(size_t i = 0; i < crfx; i++)
{
record >> rfx;
rgrfx.push_back(rfx);
strValue += std::wstring (rfx.toString(false).c_str()) + ((i == crfx - 1) ? L"" : L" ");
}
}
void UncheckedSqRfX::save(XLS::CFRecord& record)
{
std::vector<std::wstring> results;
boost::algorithm::split(results, strValue, boost::is_any_of(L" "));
crfx = results.size();
record << crfx;
for (auto& item : results)
{
UncheckedRfX rfx(item);
record << rfx;
}
}
const CellRef UncheckedSqRfX::getLocationFirstCell() const
{
std::vector<CellRangeRef> refs;
AUX::str2refs(strValue, refs);
if(!refs.size())
{
return CellRef();
}
else
{
return refs[0].getTopLeftCell();
}
}
} // namespace XLSB

View File

@ -0,0 +1,63 @@
/*
* (c) Copyright Ascensio System SIA 2010-2021
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffStructure.h"
#include "../../Biff_records/BiffRecord.h"
#include "CellRangeRef.h"
namespace XLSB
{
class UncheckedSqRfX : public XLS::BiffStructure
{
BASE_STRUCTURE_DEFINE_CLASS_NAME(UncheckedSqRfX)
public:
UncheckedSqRfX();
UncheckedSqRfX(XLS::CFRecord& record);
~UncheckedSqRfX();
XLS::BiffStructurePtr clone();
static const XLS::ElementType type = XLS::typeBiffStructure;
void load(XLS::CFRecord& record) override;
void save(XLS::CFRecord& record) override;
_INT32 crfx;
std::vector<UncheckedRfX> rgrfx;
const XLS::CellRef getLocationFirstCell() const;
std::wstring strValue;
};
} // namespace XLSB

View File

@ -0,0 +1,43 @@
/*
* (c) Copyright Ascensio System SIA 2010-2023
*
* This program is a free software product. You can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License (AGPL)
* version 3 as published by the Free Software Foundation. In accordance with
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
* that Ascensio System SIA expressly excludes the warranty of non-infringement
* of any third-party rights.
*
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
*
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
* street, Riga, Latvia, EU, LV-1050.
*
* The interactive user interfaces in modified source and object code versions
* of the Program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU AGPL version 3.
*
* Pursuant to Section 7(b) of the License you must retain the original Product
* logo when distributing the program. Pursuant to Section 7(e) we decline to
* grant you any rights under trademark law for use of our trademarks.
*
* All the Product's GUI elements, including illustrations and icon sets, as
* well as technical writing content are licensed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
*
*/
#pragma once
#include "../BiffString.h"
namespace XLSB
{
typedef XLS::XLUnicodeString_T<unsigned int, XLS::aw_NAME_WIDE, XLS::cch_READ_FROM_RECORD> XLNameWideString;
typedef XLS::XLUnicodeString_T<unsigned int, XLS::aw_NULLABLE_WIDE, XLS::cch_READ_FROM_RECORD> XLNullableWideString;
typedef XLS::XLUnicodeString_T<unsigned int, XLS::aw_WIDE, XLS::cch_READ_FROM_RECORD> XLWideString;
} // namespace XLSB

View File

@ -34,7 +34,7 @@
#include "OperandPtg.h"
#include "CellRangeRef.h"
#include "BitMarkedStructs.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -34,7 +34,7 @@
#include "OperandPtg.h"
#include "CellRangeRef.h"
#include "../GlobalWorkbookInfo.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "OperandPtg.h"
#include "CellRangeRef.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "Ptg.h"
#include "CellRangeRef.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRangeRef.h"
#include "BIFF12/CellRangeRef.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "OperandPtg.h"
#include "BitMarkedStructs.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRef.h"
#include "BIFF12/CellRef.h"
namespace XLS
{

View File

@ -33,7 +33,7 @@
#include "OperandPtg.h"
#include "../GlobalWorkbookInfo.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRef.h"
#include "BIFF12/CellRef.h"
namespace XLS
{

View File

@ -32,7 +32,7 @@
#pragma once
#include "OperandPtg.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/CellRef.h"
#include "BIFF12/CellRef.h"
namespace XLS
{

View File

@ -32,7 +32,7 @@
#include "RevLblName.h"
#include "../../Binary/CFRecord.h"
#include "../../../../../OOXML/XlsbFormat/Biff12_structures/XLWideString.h"
#include "BIFF12/XLWideString.h"
namespace XLS
{

View File

@ -649,6 +649,20 @@
#include "../Biff_structures/Xnum.cpp"
#include "../Biff_structures/PBT.cpp"
#include "../Biff_structures/FontInfo.cpp"
#include "../Biff_structures/BIFF12/ColSpan.cpp"
#include "../Biff_structures/BIFF12/Color.cpp"
#include "../Biff_structures/BIFF12/DValStrings.cpp"
#include "../Biff_structures/BIFF12/FRTFormula.cpp"
#include "../Biff_structures/BIFF12/FRTFormulas.cpp"
#include "../Biff_structures/BIFF12/FRTHeader.cpp"
#include "../Biff_structures/BIFF12/FRTParsedFormula.cpp"
#include "../Biff_structures/BIFF12/FRTRef.cpp"
#include "../Biff_structures/BIFF12/FRTRefs.cpp"
#include "../Biff_structures/BIFF12/FRTRelID.cpp"
#include "../Biff_structures/BIFF12/FRTSqref.cpp"
#include "../Biff_structures/BIFF12/FRTSqrefs.cpp"
#include "../Biff_structures/BIFF12/RelID.cpp"
#include "../Biff_structures/BIFF12/UncheckedSqRfX.cpp"
#include "../Biff_unions/AI.cpp"
#include "../Biff_unions/ATTACHEDLABEL_bu.cpp"

View File

@ -628,7 +628,21 @@ SOURCES += \
$$LOGIC_DIR/Biff_structures/FontInfo.cpp \
$$LOGIC_DIR/Biff_structures/CFDatabar.cpp \
$$LOGIC_DIR/Biff_structures/CFGradient.cpp \
\
$$LOGIC_DIR/Biff_structures/BIFF12/ColSpan.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/Color.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/DValStrings.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTFormula.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTFormulas.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTHeader.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTParsedFormula.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRef.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRefs.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRelID.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTSqref.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTSqrefs.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/RelID.cpp \
$$LOGIC_DIR/Biff_structures/BIFF12/UncheckedSqRfX.cpp \
\
$$LOGIC_DIR/Biff_unions/AI.cpp \
$$LOGIC_DIR/Biff_unions/ATTACHEDLABEL_bu.cpp \
$$LOGIC_DIR/Biff_unions/AUTOFILTER_bu.cpp \
@ -1096,7 +1110,24 @@ HEADERS += \
$$LOGIC_DIR/Biff_records/YMult.h \
$$LOGIC_DIR/Biff_records/IMDATA.h \
$$LOGIC_DIR/Biff_records/FrtWrapper.h \
\
\
$$LOGIC_DIR/Biff_structures/BIFF12/CellRangeRef.h \
$$LOGIC_DIR/Biff_structures/BIFF12/CellRef.h \
$$LOGIC_DIR/Biff_structures/BIFF12/ColSpan.h \
$$LOGIC_DIR/Biff_structures/BIFF12/Color.h \
$$LOGIC_DIR/Biff_structures/BIFF12/DValStrings.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTFormula.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTFormulas.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTHeader.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTParsedFormula.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRef.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRefs.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTRelID.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTSqref.h \
$$LOGIC_DIR/Biff_structures/BIFF12/FRTSqrefs.h \
$$LOGIC_DIR/Biff_structures/BIFF12/RelID.h \
$$LOGIC_DIR/Biff_structures/BIFF12/UncheckedSqRfX.h \
$$LOGIC_DIR/Biff_structures/BIFF12/XLWideString.h \
$$LOGIC_DIR/Biff_structures/AddinUdf.h \
$$LOGIC_DIR/Biff_structures/AF12Criteria.h \
$$LOGIC_DIR/Biff_structures/AF12CellIcon.h \