[xlsb] fix bugs and add chart sheet (records, unions, fill inside objects)

This commit is contained in:
Vladimir Gorshenkov
2021-12-20 20:02:19 +03:00
parent 53fcb5e639
commit 2fdcd75eab
61 changed files with 3567 additions and 259 deletions

View File

@ -72,7 +72,7 @@ public:
void readFields(CFRecord& record);
static const ElementType type = typeDv;
static const ElementType type = typeDv;
int serialize(std::wostream & stream);

View File

@ -32,13 +32,14 @@
#include "Setup.h"
#include "../../../../../Common/DocxFormat/Source/XlsbFormat/Biff12_structures/XLWideString.h"
#include "../../../../../Common/DocxFormat/Source/XlsbFormat/Biff12_structures/RelID.h"
namespace XLS
{
Setup::Setup()
Setup::Setup(bool isChart)
// the following may appear uninitialized but we have to store them
: iPaperSize(0), iScale(255), iRes(0), iVRes(0), iCopies(0), fNoOrient(false), fPortrait(false), iPageStart(1), iErrors(0)
: _isChart(isChart), iPaperSize(0), iScale(255), iRes(0), iVRes(0), iCopies(0), fNoOrient(false), fPortrait(false), iPageStart(1), iErrors(0)
{
}
@ -94,21 +95,41 @@ void Setup::readFields(CFRecord& record)
}
else
{
record >> iPaperSize >> iScale >> iRes >> iVRes >> iCopies >> iPageStart >> iFitWidth >> iFitHeight >> flags;
if(_isChart)
{
_INT16 iPageStart_2b;
record >> iPaperSize >> iRes >> iVRes >> iCopies >> iPageStart_2b >> flags;
fLeftToRight = GETBIT(flags, 0);
fLandscape = GETBIT(flags, 1);
fNoColor = GETBIT(flags, 3);
fDraft = GETBIT(flags, 4);
fNotes = GETBIT(flags, 5);
fNoOrient = GETBIT(flags, 6);
fUsePage = GETBIT(flags, 7);
fEndNotes = GETBIT(flags, 8);
iErrors = GETBITS(flags, 9, 10);
iPageStart = iPageStart_2b;
XLSB::XLNullableWideString str;
record >> str;
szRelID = str.value();
fLandscape = GETBIT(flags, 0);
fNoColor = GETBIT(flags, 2);
fNoOrient = GETBIT(flags, 3);
fUsePage = GETBIT(flags, 4);
fDraft = GETBIT(flags, 5);
XLSB::RelID str;
record >> str;
szRelID = str.value.value();
}
else
{
record >> iPaperSize >> iScale >> iRes >> iVRes >> iCopies >> iPageStart >> iFitWidth >> iFitHeight >> flags;
fLeftToRight = GETBIT(flags, 0);
fLandscape = GETBIT(flags, 1);
fNoColor = GETBIT(flags, 3);
fDraft = GETBIT(flags, 4);
fNotes = GETBIT(flags, 5);
fNoOrient = GETBIT(flags, 6);
fUsePage = GETBIT(flags, 7);
fEndNotes = GETBIT(flags, 8);
iErrors = GETBITS(flags, 9, 10);
XLSB::XLNullableWideString str;
record >> str;
szRelID = str.value();
}
}
}

View File

@ -42,14 +42,14 @@ class Setup: public BiffRecord
BIFF_RECORD_DEFINE_TYPE_INFO(Setup)
BASE_OBJECT_DEFINE_CLASS_NAME(Setup)
public:
Setup();
Setup(bool isChart = false);
~Setup();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeSetup;
static const ElementType type = typeSetup;
//-----------------------------
_UINT32 iPaperSize;
@ -78,6 +78,8 @@ public:
std::wstring szRelID; // biff12
bool fLandscape; // biff12
bool _isChart;
};
} // namespace XLS

View File

@ -35,7 +35,7 @@
namespace XLS
{
Window2::Window2()
Window2::Window2(bool isChart)
{
is_contained_in_chart_substream = false;
@ -53,6 +53,8 @@ Window2::Window2()
fSLV = false;
wScaleSLV = wScaleNormal = 0;
_isChart = isChart;
}
@ -119,33 +121,47 @@ void Window2::readFields(CFRecord& record)
else
{
if(_isChart)
{
_UINT16 flags;
_UINT32 wScale_4b;
unsigned short flags;
record >> flags;
record >> flags;
fWnProt = GETBIT(flags, 0);
fDspFmlaRt = GETBIT(flags, 1);
fDspGridRt = GETBIT(flags, 2);
fDspRwColRt = GETBIT(flags, 3);
fDspZerosRt = GETBIT(flags, 4);
fRightToLeft = GETBIT(flags, 5);
fSelected = GETBIT(flags, 6);
fDspRuler = GETBIT(flags, 7);
fDspGuts = GETBIT(flags, 8);
fDefaultHdr = GETBIT(flags, 9);
fWhitespaceHidden = GETBIT(flags, 10);
fSelected = GETBIT(flags, 0);
record >> xlView >> rwTop >> colLeft;
record >> wScale_4b >> iWbkView;
wScale = wScale_4b;
}
else
{
unsigned short flags;
record >> flags;
topLeftCell = static_cast<std::wstring >(CellRef(rwTop, colLeft, true, true));
fWnProt = GETBIT(flags, 0);
fDspFmlaRt = GETBIT(flags, 1);
fDspGridRt = GETBIT(flags, 2);
fDspRwColRt = GETBIT(flags, 3);
fDspZerosRt = GETBIT(flags, 4);
fRightToLeft = GETBIT(flags, 5);
fSelected = GETBIT(flags, 6);
fDspRuler = GETBIT(flags, 7);
fDspGuts = GETBIT(flags, 8);
fDefaultHdr = GETBIT(flags, 9);
fWhitespaceHidden = GETBIT(flags, 10);
BYTE icvHdr_1b;
record >> icvHdr_1b;
icvHdr = icvHdr_1b;
record >> xlView >> rwTop >> colLeft;
record.skipNunBytes(3); // reserved
topLeftCell = static_cast<std::wstring >(CellRef(rwTop, colLeft, true, true));
record >> wScale >> wScaleNormal >> wScaleSLV >> wScalePLV >> iWbkView;
BYTE icvHdr_1b;
record >> icvHdr_1b;
icvHdr = icvHdr_1b;
record.skipNunBytes(3); // reserved
record >> wScale >> wScaleNormal >> wScaleSLV >> wScalePLV >> iWbkView;
}
}
}

View File

@ -43,14 +43,14 @@ class Window2: public BiffRecord
BIFF_RECORD_DEFINE_TYPE_INFO(Window2)
BASE_OBJECT_DEFINE_CLASS_NAME(Window2)
public:
Window2();
Window2(bool isChart = false);
~Window2();
BaseObjectPtr clone();
void readFields(CFRecord& record);
static const ElementType type = typeWindow2;
static const ElementType type = typeWindow2;
bool fDspFmlaRt; //fDspFmla in biff12
bool fDspGridRt; //fDspGrid in biff12
@ -89,6 +89,8 @@ public:
_UINT16 wScalePLV;
_UINT32 iWbkView;
bool _isChart;
};
} // namespace XLS

View File

@ -739,7 +739,7 @@ enum ElementType
typeOfficeArtSplitMenuColorContainer,
typeOfficeArtTertiaryFOPT,
typeOfficeArtClientData,
typeOfficeArtClientTextbox,
typeOfficeArtClientTextbox,
//xlsb static const XLS::ElementType type = XLS::typeSLICERCACHEOLAPIMPL;
typeCONDITIONALFORMATTING = 4000,
@ -817,6 +817,21 @@ enum ElementType
typeBeginColBrk,
typeRangeProtection,
typeRangeProtectionIso,
typeCsProtection,
typeCsProtectionIso,
typeSheetProtection,
typeSheetProtectionIso,
typeCSVIEWS,
typeCSVIEW,
typeBeginCsView,
typeWSVIEWS2,
typeWSVIEW2,
typeBeginWsView,
typeCsPageSetup,
typePageSetup,
typeCsProp,
typeWsProp,
};

View File

@ -1,6 +1,6 @@
#-------------------------------------------------
#
# Project created by QtCreator 2014-07-03T15:22:54
# Project created by QtCreator 2ChartSheetStream014-07-03T15:22:54
#
#-------------------------------------------------
@ -40,6 +40,7 @@ SOURCES += \
../Source/XlsbFormat/ConnectionsStream.cpp \
../Source/XlsbFormat/SlicersStream.cpp \
../Source/XlsbFormat/SlicerCachesStream.cpp \
../Source/XlsbFormat/ChartSheetStream.cpp \
### Biff12_records
../Source/XlsbFormat/Biff12_records/BeginBook.cpp \
../Source/XlsbFormat/Biff12_records/FRTBegin.cpp \
@ -394,6 +395,20 @@ SOURCES += \
../Source/XlsbFormat/Biff12_records/BeginDRefs.cpp \
../Source/XlsbFormat/Biff12_records/DRef.cpp \
../Source/XlsbFormat/Biff12_records/EndDRefs.cpp \
../Source/XlsbFormat/Biff12_records/CsProp.cpp \
../Source/XlsbFormat/Biff12_records/CsProtection.cpp \
../Source/XlsbFormat/Biff12_records/CsProtectionIso.cpp \
../Source/XlsbFormat/Biff12_records/BeginCsViews.cpp \
../Source/XlsbFormat/Biff12_records/EndCsViews.cpp \
../Source/XlsbFormat/Biff12_records/EndCsView.cpp \
../Source/XlsbFormat/Biff12_records/BeginUserCsViews.cpp \
../Source/XlsbFormat/Biff12_records/EndUserCsViews.cpp \
../Source/XlsbFormat/Biff12_records/BeginUserCsView.cpp \
../Source/XlsbFormat/Biff12_records/EndUserCsView.cpp \
../Source/XlsbFormat/Biff12_records/BeginWebPubItems.cpp \
../Source/XlsbFormat/Biff12_records/EndWebPubItems.cpp \
../Source/XlsbFormat/Biff12_records/BeginWebPubItem.cpp \
../Source/XlsbFormat/Biff12_records/EndWebPubItem.cpp \
### Biff12_structures
../Source/XlsbFormat/Biff12_structures/LPByteBuf.cpp \
../Source/XlsbFormat/Biff12_structures/IsoPasswordData.cpp \
@ -447,6 +462,7 @@ SOURCES += \
../Source/XlsbFormat/Biff12_structures/SlicerCacheNativeItemStruct.cpp \
../Source/XlsbFormat/Biff12_structures/SlicerCacheLevelData.cpp \
../Source/XlsbFormat/Biff12_structures/RangeProtectionTitleSDRel.cpp \
../Source/XlsbFormat/Biff12_structures/Tws.cpp \
### Biff12_unions
../Source/XlsbFormat/Biff12_unions/FRT.cpp \
../Source/XlsbFormat/Biff12_unions/ACUID.cpp \
@ -612,6 +628,12 @@ SOURCES += \
../Source/XlsbFormat/Biff12_unions/COLBRK.cpp \
../Source/XlsbFormat/Biff12_unions/DCON.cpp \
../Source/XlsbFormat/Biff12_unions/DREFS.cpp \
../Source/XlsbFormat/Biff12_unions/CSVIEWS.cpp \
../Source/XlsbFormat/Biff12_unions/CSVIEW.cpp \
../Source/XlsbFormat/Biff12_unions/USERCSVIEWS.cpp \
../Source/XlsbFormat/Biff12_unions/USERCSVIEW.cpp \
../Source/XlsbFormat/Biff12_unions/WEBPUBITEMS.cpp \
../Source/XlsbFormat/Biff12_unions/WEBPUBITEM.cpp \
}
HEADERS += \
../Source/XlsbFormat/CommentsStream.h \
@ -624,6 +646,7 @@ HEADERS += \
../Source/XlsbFormat/ConnectionsStream.h \
../Source/XlsbFormat/SlicersStream.h \
../Source/XlsbFormat/SlicerCachesStream.h \
../Source/XlsbFormat/ChartSheetStream.h \
../Source/XlsbFormat/Xlsb.h \
../Source/XlsbFormat/XlsbElementsType.h \
### Biff12_records
@ -984,6 +1007,20 @@ HEADERS += \
../Source/XlsbFormat/Biff12_records/BeginDRefs.h \
../Source/XlsbFormat/Biff12_records/DRef.h \
../Source/XlsbFormat/Biff12_records/EndDRefs.h \
../Source/XlsbFormat/Biff12_records/CsProp.h \
../Source/XlsbFormat/Biff12_records/CsProtection.h \
../Source/XlsbFormat/Biff12_records/CsProtectionIso.h \
../Source/XlsbFormat/Biff12_records/BeginCsViews.h \
../Source/XlsbFormat/Biff12_records/EndCsViews.h \
../Source/XlsbFormat/Biff12_records/EndCsView.h \
../Source/XlsbFormat/Biff12_records/BeginUserCsViews.h \
../Source/XlsbFormat/Biff12_records/EndUserCsViews.h \
../Source/XlsbFormat/Biff12_records/BeginUserCsView.h \
../Source/XlsbFormat/Biff12_records/EndUserCsView.h \
../Source/XlsbFormat/Biff12_records/BeginWebPubItems.h \
../Source/XlsbFormat/Biff12_records/EndWebPubItems.h \
../Source/XlsbFormat/Biff12_records/BeginWebPubItem.h \
../Source/XlsbFormat/Biff12_records/EndWebPubItem.h \
### Biff12_structures
../Source/XlsbFormat/Biff12_structures/ACProductVersion.h \
../Source/XlsbFormat/Biff12_structures/Blxf.h \
@ -1040,6 +1077,7 @@ HEADERS += \
../Source/XlsbFormat/Biff12_structures/SlicerCacheNativeItemStruct.h \
../Source/XlsbFormat/Biff12_structures/SlicerCacheLevelData.h \
../Source/XlsbFormat/Biff12_structures/RangeProtectionTitleSDRel.h \
../Source/XlsbFormat/Biff12_structures/Tws.h \
### Biff12_unions
../Source/XlsbFormat/Biff12_unions/ACABSPATH.h \
../Source/XlsbFormat/Biff12_unions/ACCELLTABLE.h \
@ -1205,3 +1243,9 @@ HEADERS += \
../Source/XlsbFormat/Biff12_unions/COLBRK.h \
../Source/XlsbFormat/Biff12_unions/DCON.h \
../Source/XlsbFormat/Biff12_unions/DREFS.h \
../Source/XlsbFormat/Biff12_unions/CSVIEWS.h \
../Source/XlsbFormat/Biff12_unions/CSVIEW.h \
../Source/XlsbFormat/Biff12_unions/USERCSVIEWS.h \
../Source/XlsbFormat/Biff12_unions/USERCSVIEW.h \
../Source/XlsbFormat/Biff12_unions/WEBPUBITEMS.h \
../Source/XlsbFormat/Biff12_unions/WEBPUBITEM.h \

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-12 Ernesta Birznieka-Upisha
* 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 "BeginCsViews.h"
using namespace XLS;
namespace XLSB
{
BeginCsViews::BeginCsViews()
{
}
BeginCsViews::~BeginCsViews()
{
}
BaseObjectPtr BeginCsViews::clone()
{
return BaseObjectPtr(new BeginCsViews(*this));
}
void BeginCsViews::readFields(XLS::CFRecord& record)
{
}
} // namespace XLSB

View File

@ -0,0 +1,54 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtBeginCsViews record in BIFF12
class BeginCsViews: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginCsViews)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginCsViews)
public:
BeginCsViews();
virtual ~BeginCsViews();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // namespace XLSB

View File

@ -0,0 +1,67 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "BeginUserCsView.h"
using namespace XLS;
namespace XLSB
{
BeginUserCsView::BeginUserCsView()
{
}
BeginUserCsView::~BeginUserCsView()
{
}
BaseObjectPtr BeginUserCsView::clone()
{
return BaseObjectPtr(new BeginUserCsView(*this));
}
void BeginUserCsView::readFields(XLS::CFRecord& record)
{
_GUID_ guid_;
_UINT32 flags;
record >> guid_ >> iTabId >> dwScale >> flags;
guid = STR::guid2bstr(guid_);
hsState = GETBITS(flags, 0, 1);
fZoomToFit = GETBIT(flags, 2);
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtBeginUserCsView record in BIFF12
class BeginUserCsView: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginUserCsView)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginUserCsView)
public:
BeginUserCsView();
virtual ~BeginUserCsView();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
std::wstring guid;
_UINT32 iTabId;
_UINT32 dwScale;
BYTE hsState;
bool fZoomToFit;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "BeginUserCsViews.h"
using namespace XLS;
namespace XLSB
{
BeginUserCsViews::BeginUserCsViews()
{
}
BeginUserCsViews::~BeginUserCsViews()
{
}
BaseObjectPtr BeginUserCsViews::clone()
{
return BaseObjectPtr(new BeginUserCsViews(*this));
}
void BeginUserCsViews::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,55 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtBeginUserCsViews record in BIFF12
class BeginUserCsViews: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginUserCsViews)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginUserCsViews)
public:
BeginUserCsViews();
virtual ~BeginUserCsViews();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // namespace XLSB

View File

@ -0,0 +1,84 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "BeginWebPubItem.h"
using namespace XLS;
namespace XLSB
{
BeginWebPubItem::BeginWebPubItem()
{
}
BeginWebPubItem::~BeginWebPubItem()
{
}
BaseObjectPtr BeginWebPubItem::clone()
{
return BaseObjectPtr(new BeginWebPubItem(*this));
}
void BeginWebPubItem::readFields(XLS::CFRecord& record)
{
_UINT32 flags1;
BYTE flags2;
record >> tws;
fAutoRepublish = GETBIT(flags1, 1);
fMhtml = GETBIT(flags1, 3);
record >> nStyleId;
if(tws.value().get() == Tws::TWSREF)
record >> rfx;
else
record.skipNunBytes(16);
fName = GETBIT(flags2, 1);
fTitle = GETBIT(flags2, 3);
record >> stBkmk;
if(fName)
record >> stBkmk;
record >> stFile;
if(fTitle)
record >> stTitle;
}
} // namespace XLSB

View File

@ -0,0 +1,70 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
#include "../Biff12_structures/Tws.h"
#include "../Biff12_structures/CellRangeRef.h"
#include "../Biff12_structures/XLWideString.h"
namespace XLSB
{
// Logical representation of BrtBeginWebPubItem record in BIFF12
class BeginWebPubItem: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginWebPubItem)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginWebPubItem)
public:
BeginWebPubItem();
virtual ~BeginWebPubItem();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
Tws tws;
bool fAutoRepublish;
bool fMhtml;
_UINT32 nStyleId;
UncheckedRfX rfx;
bool fName;
bool fTitle;
XLWideString stBkmk;
XLNameWideString stName;
XLWideString stFile;
XLWideString stTitle;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "BeginWebPubItems.h"
using namespace XLS;
namespace XLSB
{
BeginWebPubItems::BeginWebPubItems()
{
}
BeginWebPubItems::~BeginWebPubItems()
{
}
BaseObjectPtr BeginWebPubItems::clone()
{
return BaseObjectPtr(new BeginWebPubItems(*this));
}
void BeginWebPubItems::readFields(XLS::CFRecord& record)
{
record >> cItems;
}
} // namespace XLSB

View File

@ -0,0 +1,57 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtBeginWebPubItems record in BIFF12
class BeginWebPubItems: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginWebPubItems)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginWebPubItems)
public:
BeginWebPubItems();
virtual ~BeginWebPubItems();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
_UINT32 cItems;
};
} // namespace XLSB

View File

@ -69,6 +69,7 @@ namespace XLSB
class FileSharing: public XLS::FileSharing
{
BIFF_RECORD_DEFINE_TYPE_INFO(FileSharing)
BASE_OBJECT_DEFINE_CLASS_NAME(FileSharing)
XLS::BaseObjectPtr clone() override
{
@ -80,6 +81,7 @@ namespace XLSB
class ExternSheet: public XLS::ExternSheet
{
BIFF_RECORD_DEFINE_TYPE_INFO(ExternSheet)
BASE_OBJECT_DEFINE_CLASS_NAME(ExternSheet)
XLS::BaseObjectPtr clone() override
{
@ -91,6 +93,7 @@ namespace XLSB
class BookView: public XLS::Window1
{
BIFF_RECORD_DEFINE_TYPE_INFO(BookView)
BASE_OBJECT_DEFINE_CLASS_NAME(BookView)
XLS::BaseObjectPtr clone() override
{
@ -101,6 +104,7 @@ namespace XLSB
class Name: public XLS::Lbl
{
BIFF_RECORD_DEFINE_TYPE_INFO(Name)
BASE_OBJECT_DEFINE_CLASS_NAME(Name)
XLS::BaseObjectPtr clone() override
{
@ -111,6 +115,7 @@ namespace XLSB
class UserBookView: public XLS::UserBView
{
BIFF_RECORD_DEFINE_TYPE_INFO(UserBookView)
BASE_OBJECT_DEFINE_CLASS_NAME(UserBookView)
XLS::BaseObjectPtr clone() override
{
@ -121,6 +126,7 @@ namespace XLSB
class WebOpt: public XLS::WOpt
{
BIFF_RECORD_DEFINE_TYPE_INFO(WebOpt)
BASE_OBJECT_DEFINE_CLASS_NAME(WebOpt)
XLS::BaseObjectPtr clone() override
{
@ -131,6 +137,7 @@ namespace XLSB
class FileRecover: public XLS::BookExt
{
BIFF_RECORD_DEFINE_TYPE_INFO(FileRecover)
BASE_OBJECT_DEFINE_CLASS_NAME(FileRecover)
XLS::BaseObjectPtr clone() override
{
@ -141,6 +148,7 @@ namespace XLSB
class ColInfo: public XLS::ColInfo
{
BIFF_RECORD_DEFINE_TYPE_INFO(ColInfo)
BASE_OBJECT_DEFINE_CLASS_NAME(ColInfo)
XLS::BaseObjectPtr clone() override
{
@ -151,6 +159,7 @@ namespace XLSB
class RowHdr: public XLS::Row
{
BIFF_RECORD_DEFINE_TYPE_INFO(RowHdr)
BASE_OBJECT_DEFINE_CLASS_NAME(RowHdr)
XLS::BaseObjectPtr clone() override
{
@ -161,6 +170,7 @@ namespace XLSB
class Table: public XLS::Table
{
BIFF_RECORD_DEFINE_TYPE_INFO(Table)
BASE_OBJECT_DEFINE_CLASS_NAME(Table)
XLS::BaseObjectPtr clone() override
{
@ -171,6 +181,7 @@ namespace XLSB
class ShrFmla: public XLS::ShrFmla
{
BIFF_RECORD_DEFINE_TYPE_INFO(ShrFmla)
BASE_OBJECT_DEFINE_CLASS_NAME(ShrFmla)
ShrFmla(const XLS::CellRef& cell_base_ref_init) : XLS::ShrFmla(cell_base_ref_init) {}
XLS::BaseObjectPtr clone() override
@ -182,6 +193,7 @@ namespace XLSB
class ArrFmla: public XLS::Array
{
BIFF_RECORD_DEFINE_TYPE_INFO(ArrFmla)
BASE_OBJECT_DEFINE_CLASS_NAME(ArrFmla)
ArrFmla(const XLS::CellRef& cell_base_ref_init) : XLS::Array(cell_base_ref_init) {}
XLS::BaseObjectPtr clone() override
@ -193,6 +205,9 @@ namespace XLSB
class BeginWsView: public XLS::Window2
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginWsView)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginWsView)
static const XLS::ElementType type = XLS::typeBeginWsView;
XLS::BaseObjectPtr clone() override
{
@ -203,6 +218,7 @@ namespace XLSB
class Pane: public XLS::Pane
{
BIFF_RECORD_DEFINE_TYPE_INFO(Pane)
BASE_OBJECT_DEFINE_CLASS_NAME(Pane)
XLS::BaseObjectPtr clone() override
{
@ -213,6 +229,7 @@ namespace XLSB
class Sel: public XLS::Selection
{
BIFF_RECORD_DEFINE_TYPE_INFO(Sel)
BASE_OBJECT_DEFINE_CLASS_NAME(Sel)
XLS::BaseObjectPtr clone() override
{
@ -223,6 +240,7 @@ namespace XLSB
class BeginSortState: public XLS::SortData
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginSortState)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginSortState)
XLS::BaseObjectPtr clone() override
{
@ -233,6 +251,7 @@ namespace XLSB
class Font: public XLS::Font
{
BIFF_RECORD_DEFINE_TYPE_INFO(Font)
BASE_OBJECT_DEFINE_CLASS_NAME(Font)
XLS::BaseObjectPtr clone() override
{
@ -243,6 +262,7 @@ namespace XLSB
class XF: public XLS::XF
{
BIFF_RECORD_DEFINE_TYPE_INFO(XF)
BASE_OBJECT_DEFINE_CLASS_NAME(XF)
XF(size_t& cell_xf_current_id, size_t& style_xf_current_id) :
XLS::XF(cell_xf_current_id, style_xf_current_id) {}
@ -256,6 +276,7 @@ namespace XLSB
class DXF: public XLS::DXF
{
BIFF_RECORD_DEFINE_TYPE_INFO(DXF)
BASE_OBJECT_DEFINE_CLASS_NAME(DXF)
XLS::BaseObjectPtr clone() override
{
@ -266,6 +287,7 @@ namespace XLSB
class BeginTableStyles: public XLS::TableStyles
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginTableStyles)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginTableStyles)
XLS::BaseObjectPtr clone() override
{
@ -276,6 +298,7 @@ namespace XLSB
class BeginTableStyle: public XLS::TableStyle
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginTableStyle)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginTableStyle)
XLS::BaseObjectPtr clone() override
{
@ -286,6 +309,7 @@ namespace XLSB
class TableStyleElement: public XLS::TableStyleElement
{
BIFF_RECORD_DEFINE_TYPE_INFO(TableStyleElement)
BASE_OBJECT_DEFINE_CLASS_NAME(TableStyleElement)
XLS::BaseObjectPtr clone() override
{
@ -296,6 +320,7 @@ namespace XLSB
class DXF14: public XLS::DXF
{
BIFF_RECORD_DEFINE_TYPE_INFO(DXF14)
BASE_OBJECT_DEFINE_CLASS_NAME(DXF14)
XLS::BaseObjectPtr clone() override
{
@ -314,6 +339,7 @@ namespace XLSB
class DXF15: public DXF14
{
BIFF_RECORD_DEFINE_TYPE_INFO(DXF15)
BASE_OBJECT_DEFINE_CLASS_NAME(DXF15)
XLS::BaseObjectPtr clone() override
{
@ -324,6 +350,9 @@ namespace XLSB
class PageSetup : public XLS::Setup
{
BIFF_RECORD_DEFINE_TYPE_INFO(PageSetup)
BASE_OBJECT_DEFINE_CLASS_NAME(PageSetup)
static const XLS::ElementType type = XLS::typePageSetup;
XLS::BaseObjectPtr clone() override
{
@ -334,18 +363,20 @@ namespace XLSB
class DVal : public XLS::Dv
{
BIFF_RECORD_DEFINE_TYPE_INFO(DVal)
BASE_OBJECT_DEFINE_CLASS_NAME(DVal)
XLS::BaseObjectPtr clone() override
{
return XLS::BaseObjectPtr(new DVal(*this));
}
//static const XLS::ElementType type = XLS::typeDVal;
static const XLS::ElementType type = XLS::typeDVal;
};
class DVal14 : public XLS::Dv
{
BIFF_RECORD_DEFINE_TYPE_INFO(DVal14)
BASE_OBJECT_DEFINE_CLASS_NAME(DVal14)
DVal14(bool ext14 = true) : XLS::Dv(ext14) {}
@ -360,6 +391,7 @@ namespace XLSB
class BeginQSI: public XLS::Qsi
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginQSI)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginQSI)
XLS::BaseObjectPtr clone() override
{
@ -370,6 +402,7 @@ namespace XLSB
class BeginQSIR: public XLS::Qsir
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginQSIR)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginQSIR)
XLS::BaseObjectPtr clone() override
{
@ -380,6 +413,7 @@ namespace XLSB
class BeginQSIF: public XLS::Qsif
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginQSIF)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginQSIF)
XLS::BaseObjectPtr clone() override
{
@ -387,4 +421,35 @@ namespace XLSB
}
};
class CsPageSetup : public XLS::Setup
{
BIFF_RECORD_DEFINE_TYPE_INFO(CsPageSetup)
BASE_OBJECT_DEFINE_CLASS_NAME(CsPageSetup)
static const XLS::ElementType type = XLS::typeCsPageSetup;
CsPageSetup(bool isChart = true) : XLS::Setup(isChart) {}
XLS::BaseObjectPtr clone() override
{
return XLS::BaseObjectPtr(new CsPageSetup(*this));
}
};
class BeginCsView: public XLS::Window2
{
BIFF_RECORD_DEFINE_TYPE_INFO(BeginCsView)
BASE_OBJECT_DEFINE_CLASS_NAME(BeginCsView)
static const XLS::ElementType type = XLS::typeBeginCsView;
BeginCsView(bool isChart = true) : XLS::Window2(isChart) {}
XLS::BaseObjectPtr clone() override
{
return XLS::BaseObjectPtr(new BeginCsView(*this));
}
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "CsProp.h"
using namespace XLS;
namespace XLSB
{
CsProp::CsProp()
{
}
CsProp::~CsProp()
{
}
BaseObjectPtr CsProp::clone()
{
return BaseObjectPtr(new CsProp(*this));
}
void CsProp::readFields(XLS::CFRecord& record)
{
_UINT16 flags;
record >> flags;
fPublish = GETBIT(flags, 0);
brtcolorTab.readFields(record);
record >> strName;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
#include "../Biff12_records/Color.h"
#include "../Biff12_structures/CodeName.h"
namespace XLSB
{
// Logical representation of BrtCsProp record in BIFF12
class CsProp: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(CsProp)
BASE_OBJECT_DEFINE_CLASS_NAME(CsProp)
public:
CsProp();
virtual ~CsProp();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeCsProp;
bool fPublish;
Color brtcolorTab;
CodeName strName;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "CsProtection.h"
using namespace XLS;
namespace XLSB
{
CsProtection::CsProtection()
{
}
CsProtection::~CsProtection()
{
}
BaseObjectPtr CsProtection::clone()
{
return BaseObjectPtr(new CsProtection(*this));
}
void CsProtection::readFields(XLS::CFRecord& record)
{
record >> protpwd;
record >> fLocked >> fObjects;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtCsProtection record in BIFF12
class CsProtection: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(CsProtection)
BASE_OBJECT_DEFINE_CLASS_NAME(CsProtection)
public:
CsProtection();
virtual ~CsProtection();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeCsProtection;
_UINT16 protpwd;
XLS::Boolean<unsigned int> fLocked;
XLS::Boolean<unsigned int> fObjects;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "CsProtectionIso.h"
using namespace XLS;
namespace XLSB
{
CsProtectionIso::CsProtectionIso()
{
}
CsProtectionIso::~CsProtectionIso()
{
}
BaseObjectPtr CsProtectionIso::clone()
{
return BaseObjectPtr(new CsProtectionIso(*this));
}
void CsProtectionIso::readFields(XLS::CFRecord& record)
{
record >> dwSpinCount;
record >> fLocked >> fObjects;
record >> ipdPasswordData;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
#include "../Biff12_structures/IsoPasswordData.h"
namespace XLSB
{
// Logical representation of BrtCsProtectionIso record in BIFF12
class CsProtectionIso: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(CsProtectionIso)
BASE_OBJECT_DEFINE_CLASS_NAME(CsProtectionIso)
public:
CsProtectionIso();
virtual ~CsProtectionIso();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeCsProtectionIso;
_UINT32 dwSpinCount;
XLS::Boolean<unsigned int> fLocked;
XLS::Boolean<unsigned int> fObjects;
IsoPasswordData ipdPasswordData;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndCsView.h"
using namespace XLS;
namespace XLSB
{
EndCsView::EndCsView()
{
}
EndCsView::~EndCsView()
{
}
BaseObjectPtr EndCsView::clone()
{
return BaseObjectPtr(new EndCsView(*this));
}
void EndCsView::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,56 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndCsView record in BIFF12
class EndCsView: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndCsView)
BASE_OBJECT_DEFINE_CLASS_NAME(EndCsView)
public:
EndCsView();
virtual ~EndCsView();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
//static const XLS::ElementType type = XLS::typeEndCsView;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndCsViews.h"
using namespace XLS;
namespace XLSB
{
EndCsViews::EndCsViews()
{
}
EndCsViews::~EndCsViews()
{
}
BaseObjectPtr EndCsViews::clone()
{
return BaseObjectPtr(new EndCsViews(*this));
}
void EndCsViews::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,56 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndCsViews record in BIFF12
class EndCsViews: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndCsViews)
BASE_OBJECT_DEFINE_CLASS_NAME(EndCsViews)
public:
EndCsViews();
virtual ~EndCsViews();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
//static const XLS::ElementType type = XLS::typeEndCsViews;
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndUserCsView.h"
using namespace XLS;
namespace XLSB
{
EndUserCsView::EndUserCsView()
{
}
EndUserCsView::~EndUserCsView()
{
}
BaseObjectPtr EndUserCsView::clone()
{
return BaseObjectPtr(new EndUserCsView(*this));
}
void EndUserCsView::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,55 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndUserCsView record in BIFF12
class EndUserCsView: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndUserCsView)
BASE_OBJECT_DEFINE_CLASS_NAME(EndUserCsView)
public:
EndUserCsView();
virtual ~EndUserCsView();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndUserCsViews.h"
using namespace XLS;
namespace XLSB
{
EndUserCsViews::EndUserCsViews()
{
}
EndUserCsViews::~EndUserCsViews()
{
}
BaseObjectPtr EndUserCsViews::clone()
{
return BaseObjectPtr(new EndUserCsViews(*this));
}
void EndUserCsViews::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,55 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndUserCsViews record in BIFF12
class EndUserCsViews: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndUserCsViews)
BASE_OBJECT_DEFINE_CLASS_NAME(EndUserCsViews)
public:
EndUserCsViews();
virtual ~EndUserCsViews();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndWebPubItem.h"
using namespace XLS;
namespace XLSB
{
EndWebPubItem::EndWebPubItem()
{
}
EndWebPubItem::~EndWebPubItem()
{
}
BaseObjectPtr EndWebPubItem::clone()
{
return BaseObjectPtr(new EndWebPubItem(*this));
}
void EndWebPubItem::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,55 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndWebPubItem record in BIFF12
class EndWebPubItem: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndWebPubItem)
BASE_OBJECT_DEFINE_CLASS_NAME(EndWebPubItem)
public:
EndWebPubItem();
virtual ~EndWebPubItem();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // 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-12 Ernesta Birznieka-Upisha
* 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 "EndWebPubItems.h"
using namespace XLS;
namespace XLSB
{
EndWebPubItems::EndWebPubItems()
{
}
EndWebPubItems::~EndWebPubItems()
{
}
BaseObjectPtr EndWebPubItems::clone()
{
return BaseObjectPtr(new EndWebPubItems(*this));
}
void EndWebPubItems::readFields(XLS::CFRecord& record)
{
// No data in this record
}
} // namespace XLSB

View File

@ -0,0 +1,55 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_records/BiffRecord.h"
#include "../../XlsxFormat/WritingElement.h"
namespace XLSB
{
// Logical representation of BrtEndWebPubItems record in BIFF12
class EndWebPubItems: public XLS::BiffRecord
{
BIFF_RECORD_DEFINE_TYPE_INFO(EndWebPubItems)
BASE_OBJECT_DEFINE_CLASS_NAME(EndWebPubItems)
public:
EndWebPubItems();
virtual ~EndWebPubItems();
XLS::BaseObjectPtr clone();
void readFields(XLS::CFRecord& record);
};
} // namespace XLSB

View File

@ -51,6 +51,8 @@ namespace XLSB
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeSheetProtection;
_UINT16 protpwd;
XLS::Boolean<unsigned int> fLocked;
XLS::Boolean<unsigned int> fObjects;

View File

@ -52,6 +52,8 @@ namespace XLSB
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeSheetProtectionIso;
_UINT32 dwSpinCount;
XLS::Boolean<unsigned int> fLocked;
XLS::Boolean<unsigned int> fObjects;

View File

@ -51,6 +51,8 @@ namespace XLSB
void readFields(XLS::CFRecord& record);
static const XLS::ElementType type = XLS::typeWsProp;
bool fShowAutoBreaks;
bool fPublish;
bool fDialog;

View File

@ -0,0 +1,46 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* 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-12 Ernesta Birznieka-Upisha
* 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 "Tws.h"
using namespace XLS;
namespace XLSB
{
BiffStructurePtr Tws::clone()
{
return BiffStructurePtr(new Tws(*this));
}
} // namespace XLSB

View File

@ -0,0 +1,59 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/Biff_structures/BiffAttribute.h"
namespace XLSB
{
class Tws : public XLS::BiffAttributeSimple<unsigned char>
{
public:
XLS::BiffStructurePtr clone();
enum
{
TWSWORKBOOK = 0x00,
TWSSHEET = 0x01,
TWSPRINTAREA = 0x02,
TWSAUTOFILTER = 0x03,
TWSREF = 0x04,
TWSCHART = 0x05,
TWSPIVOTTABLE = 0x06,
TWSQUERY = 0x07,
TWSLABEL = 0x08
};
};
} // namespace XLSB

View File

@ -0,0 +1,91 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "CSVIEW.h"
#include "../Biff12_records/CommonRecords.h"
#include "../Biff12_records/EndCsView.h"
#include "../Biff12_unions/ACUID.h"
#include "../Biff12_unions/FRT.h"
using namespace XLS;
namespace XLSB
{
CSVIEW::CSVIEW()
{
}
CSVIEW::~CSVIEW()
{
}
BaseObjectPtr CSVIEW::clone()
{
return BaseObjectPtr(new CSVIEW(*this));
}
// CSVIEW = [ACUID] BrtBeginCsView *FRT BrtEndCsView
const bool CSVIEW::loadContent(BinProcessor& proc)
{
if (proc.optional<ACUID>())
{
m_ACUID = elements_.back();
elements_.pop_back();
}
if (proc.optional<BeginCsView>())
{
m_BrtBeginCsView = elements_.back();
elements_.pop_back();
}
int count = proc.repeated<FRT>(0, 0);
while(count > 0)
{
m_arFRT.insert(m_arFRT.begin(), elements_.back());
elements_.pop_back();
count--;
}
if (proc.optional<EndCsView>())
{
m_BrtEndCsView = elements_.back();
elements_.pop_back();
}
return m_BrtBeginCsView && m_BrtEndCsView;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class CSVIEW: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(CSVIEW)
public:
CSVIEW();
virtual ~CSVIEW();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
static const XLS::ElementType type = XLS::typeCSVIEW;
XLS::BaseObjectPtr m_ACUID;
XLS::BaseObjectPtr m_BrtBeginCsView;
std::vector<XLS::BaseObjectPtr> m_arFRT;
XLS::BaseObjectPtr m_BrtEndCsView;
};
} // namespace XLSB

View File

@ -0,0 +1,94 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "CSVIEWS.h"
#include "../Biff12_records/BeginCsViews.h"
#include "../Biff12_unions/CSVIEW.h"
#include "../Biff12_unions/FRT.h"
#include "../Biff12_records/EndCsViews.h"
using namespace XLS;
namespace XLSB
{
CSVIEWS::CSVIEWS()
{
}
CSVIEWS::~CSVIEWS()
{
}
BaseObjectPtr CSVIEWS::clone()
{
return BaseObjectPtr(new CSVIEWS(*this));
}
// CSVIEWS = BrtBeginCsViews 1*CSVIEW *FRT BrtEndCsViews
const bool CSVIEWS::loadContent(BinProcessor& proc)
{
if (proc.optional<BeginCsViews>())
{
m_BrtBeginCsViews = elements_.back();
elements_.pop_back();
}
int countCSVIEW = proc.repeated<CSVIEW>(0, 0);
while(countCSVIEW > 0)
{
m_arCSVIEW.insert(m_arCSVIEW.begin(), elements_.back());
elements_.pop_back();
countCSVIEW--;
}
int count = proc.repeated<FRT>(0, 0);
while(count > 0)
{
m_arFRT.insert(m_arFRT.begin(), elements_.back());
elements_.pop_back();
count--;
}
if (proc.optional<EndCsViews>())
{
m_BrtEndCsViews = elements_.back();
elements_.pop_back();
}
return m_BrtBeginCsViews && !m_arCSVIEW.empty() && m_BrtEndCsViews;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class CSVIEWS: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(CSVIEWS)
public:
CSVIEWS();
virtual ~CSVIEWS();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
static const XLS::ElementType type = XLS::typeCSVIEWS;
XLS::BaseObjectPtr m_BrtBeginCsViews;
std::vector<XLS::BaseObjectPtr> m_arCSVIEW;
std::vector<XLS::BaseObjectPtr> m_arFRT;
XLS::BaseObjectPtr m_BrtEndCsViews;
};
} // namespace XLSB

View File

@ -0,0 +1,95 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "USERCSVIEW.h"
#include "../Biff12_records/BeginUserCsView.h"
#include "../Biff12_records/Margins.h"
#include "../Biff12_records/CommonRecords.h"
#include "../Biff12_unions/HEADERFOOTER.h"
#include "../Biff12_records/EndUserCsView.h"
using namespace XLS;
namespace XLSB
{
USERCSVIEW::USERCSVIEW()
{
}
USERCSVIEW::~USERCSVIEW()
{
}
BaseObjectPtr USERCSVIEW::clone()
{
return BaseObjectPtr(new USERCSVIEW(*this));
}
// USERCSVIEW = BrtBeginUserCsView [BrtMargins] [BrtCsPageSetup] [HEADERFOOTER] BrtEndUserCsView
const bool USERCSVIEW::loadContent(BinProcessor& proc)
{
if (proc.optional<BeginUserCsView>())
{
m_BrtBeginUserCsView = elements_.back();
elements_.pop_back();
}
if (proc.optional<Margins>())
{
m_BrtMargins = elements_.back();
elements_.pop_back();
}
if (proc.optional<CsPageSetup>())
{
m_BrtCsPageSetup = elements_.back();
elements_.pop_back();
}
if (proc.optional<HEADERFOOTER>())
{
m_HEADERFOOTER = elements_.back();
elements_.pop_back();
}
if (proc.optional<EndUserCsView>())
{
m_BrtEndUserCsView = elements_.back();
elements_.pop_back();
}
return m_BrtBeginUserCsView && m_BrtEndUserCsView;
}
} // 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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class USERCSVIEW: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(USERCSVIEW)
public:
USERCSVIEW();
virtual ~USERCSVIEW();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
XLS::BaseObjectPtr m_BrtBeginUserCsView;
XLS::BaseObjectPtr m_BrtMargins;
XLS::BaseObjectPtr m_BrtCsPageSetup;
XLS::BaseObjectPtr m_HEADERFOOTER;
XLS::BaseObjectPtr m_BrtEndUserCsView;
};
} // namespace XLSB

View File

@ -0,0 +1,83 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "USERCSVIEWS.h"
#include "../Biff12_records/BeginUserCsViews.h"
#include "../Biff12_unions/USERCSVIEW.h"
#include "../Biff12_records/EndUserCsViews.h"
using namespace XLS;
namespace XLSB
{
USERCSVIEWS::USERCSVIEWS()
{
}
USERCSVIEWS::~USERCSVIEWS()
{
}
BaseObjectPtr USERCSVIEWS::clone()
{
return BaseObjectPtr(new USERCSVIEWS(*this));
}
//USERCSVIEWS = BrtBeginUserCsViews *USERCSVIEW BrtEndUserCsViews
const bool USERCSVIEWS::loadContent(BinProcessor& proc)
{
if (proc.optional<BeginUserCsViews>())
{
m_BrtBeginUserCsViews = elements_.back();
elements_.pop_back();
}
auto count = proc.repeated<USERCSVIEW>(0, 0);
while(count > 0)
{
m_arUSERCSVIEW.insert(m_arUSERCSVIEW.begin(), elements_.back());
elements_.pop_back();
count--;
}
if (proc.optional<EndUserCsViews>())
{
m_BrtEndUserCsViews = elements_.back();
elements_.pop_back();
}
return m_BrtBeginUserCsViews && !m_arUSERCSVIEW.empty() && m_BrtEndUserCsViews;
}
} // namespace XLSB

View File

@ -0,0 +1,57 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class USERCSVIEWS: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(USERCSVIEWS)
public:
USERCSVIEWS();
virtual ~USERCSVIEWS();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
XLS::BaseObjectPtr m_BrtBeginUserCsViews;
std::vector<XLS::BaseObjectPtr> m_arUSERCSVIEW;
XLS::BaseObjectPtr m_BrtEndUserCsViews;
};
} // namespace XLSB

View File

@ -0,0 +1,74 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "WEBPUBITEM.h"
#include "../Biff12_records/BeginWebPubItem.h"
#include "../Biff12_records/EndWebPubItem.h"
using namespace XLS;
namespace XLSB
{
WEBPUBITEM::WEBPUBITEM()
{
}
WEBPUBITEM::~WEBPUBITEM()
{
}
BaseObjectPtr WEBPUBITEM::clone()
{
return BaseObjectPtr(new WEBPUBITEM(*this));
}
//WEBPUBITEM = BrtBeginWebPubItem BrtEndWebPubItem
const bool WEBPUBITEM::loadContent(BinProcessor& proc)
{
if (proc.optional<BeginWebPubItem>())
{
m_BrtBeginWebPubItem = elements_.back();
elements_.pop_back();
}
if (proc.optional<EndWebPubItem>())
{
m_BrtEndWebPubItem = elements_.back();
elements_.pop_back();
}
return m_BrtBeginWebPubItem && m_BrtEndWebPubItem;
}
} // namespace XLSB

View File

@ -0,0 +1,56 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class WEBPUBITEM: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(WEBPUBITEM)
public:
WEBPUBITEM();
virtual ~WEBPUBITEM();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
XLS::BaseObjectPtr m_BrtBeginWebPubItem;
XLS::BaseObjectPtr m_BrtEndWebPubItem;
};
} // namespace XLSB

View File

@ -0,0 +1,83 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "WEBPUBITEMS.h"
#include "../Biff12_records/BeginWebPubItems.h"
#include "../Biff12_unions/WEBPUBITEM.h"
#include "../Biff12_records/EndWebPubItems.h"
using namespace XLS;
namespace XLSB
{
WEBPUBITEMS::WEBPUBITEMS()
{
}
WEBPUBITEMS::~WEBPUBITEMS()
{
}
BaseObjectPtr WEBPUBITEMS::clone()
{
return BaseObjectPtr(new WEBPUBITEMS(*this));
}
//WEBPUBITEMS = BrtBeginWebPubItems 1*WEBPUBITEM BrtEndWebPubItems
const bool WEBPUBITEMS::loadContent(BinProcessor& proc)
{
if (proc.optional<BeginWebPubItems>())
{
m_BrtBeginWebPubItems = elements_.back();
elements_.pop_back();
}
auto count = proc.repeated<WEBPUBITEM>(0, 0);
while(count > 0)
{
m_arWEBPUBITEM.insert(m_arWEBPUBITEM.begin(), elements_.back());
elements_.pop_back();
count--;
}
if (proc.optional<EndWebPubItems>())
{
m_BrtEndWebPubItems = elements_.back();
elements_.pop_back();
}
return m_BrtBeginWebPubItems && !m_arWEBPUBITEM.empty() && m_BrtEndWebPubItems;
}
} // namespace XLSB

View File

@ -0,0 +1,57 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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 "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
class WEBPUBITEMS: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(WEBPUBITEMS)
public:
WEBPUBITEMS();
virtual ~WEBPUBITEMS();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
XLS::BaseObjectPtr m_BrtBeginWebPubItems;
std::vector<XLS::BaseObjectPtr> m_arWEBPUBITEM;
XLS::BaseObjectPtr m_BrtEndWebPubItems;
};
} // namespace XLSB

View File

@ -33,8 +33,6 @@
#include "../../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
namespace XLSB
{
@ -49,6 +47,8 @@ namespace XLSB
virtual const bool loadContent(XLS::BinProcessor& proc);
static const XLS::ElementType type = XLS::typeWSVIEW2;
XLS::BaseObjectPtr m_ACUID;
XLS::BaseObjectPtr m_BrtBeginWsView;
XLS::BaseObjectPtr m_BrtPane;

View File

@ -47,6 +47,8 @@ namespace XLSB
virtual const bool loadContent(XLS::BinProcessor& proc);
static const XLS::ElementType type = XLS::typeWSVIEWS2;
XLS::BaseObjectPtr m_BrtBeginWsViews;
std::vector<XLS::BaseObjectPtr> m_arWSVIEW2;
std::vector<XLS::BaseObjectPtr> m_arFRT;

View File

@ -0,0 +1,227 @@
/*
* (c) Copyright Ascensio System SIA 2010-2019
*
* 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-12 Ernesta Birznieka-Upisha
* 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 "ChartSheetStream.h"
#include "Biff12_records/CommonRecords.h"
#include "Biff12_records/BeginSheet.h"
#include "Biff12_records/Drawing.h"
#include "Biff12_records/LegacyDrawing.h"
#include "Biff12_records/LegacyDrawingHF.h"
#include "Biff12_unions/CSVIEWS.h"
#include "Biff12_records/Margins.h"
#include "Biff12_unions/HEADERFOOTER.h"
#include "Biff12_records/CsProp.h"
#include "Biff12_records/CsProtectionIso.h"
#include "Biff12_records/CsProtection.h"
#include "Biff12_unions/USERCSVIEWS.h"
#include "Biff12_records/BkHim.h"
#include "Biff12_unions/WEBPUBITEMS.h"
#include "Biff12_records/EndSheet.h"
using namespace XLS;
namespace XLSB
{;
ChartSheetStream::ChartSheetStream()
{
}
ChartSheetStream::~ChartSheetStream()
{
}
BaseObjectPtr ChartSheetStream::clone()
{
return BaseObjectPtr(new ChartSheetStream(*this));
}
const bool ChartSheetStream::loadContent(BinProcessor& proc)
{
int count = 0;
std::vector<CellRangeRef> shared_formulas_locations;
while (true)
{
CFRecordType::TypeId type = proc.getNextRecordType();
if (type == rt_NONE) break;
switch(type)
{
case rt_BeginSheet:
{
if (proc.optional<BeginSheet>())
{
m_BrtBeginSheet = elements_.back();
elements_.pop_back();
}
}break;
case rt_Drawing:
{
if (proc.optional<Drawing>())
{
m_BrtDrawing = elements_.back();
elements_.pop_back();
}
}break;
case rt_LegacyDrawing:
{
if (proc.optional<LegacyDrawing>())
{
m_BrtLegacyDrawing = elements_.back();
elements_.pop_back();
}
}break;
case rt_LegacyDrawingHF:
{
if (proc.optional<LegacyDrawingHF>())
{
m_BrtLegacyDrawingHF = elements_.back();
elements_.pop_back();
}
}break;
case rt_BeginCsViews:
{
if (proc.optional<CSVIEWS>())
{
m_CSVIEWS = elements_.back();
elements_.pop_back();
}
}break;
case rt_Margins:
{
if (proc.optional<Margins>())
{
m_BrtMargins = elements_.back();
elements_.pop_back();
}
}break;
case rt_CsPageSetup:
{
if (proc.optional<CsPageSetup>())
{
m_BrtCsPageSetup = elements_.back();
elements_.pop_back();
}
}break;
case rt_CsProp:
{
if (proc.optional<CsProp>())
{
m_BrtCsProp = elements_.back();
elements_.pop_back();
}
}break;
case rt_BeginHeaderFooter:
{
if (proc.optional<HEADERFOOTER>())
{
m_HEADERFOOTER = elements_.back();
elements_.pop_back();
}
}break;
case rt_CsProtectionIso:
{
if (proc.optional<CsProtectionIso>())
{
m_BrtCsProtectionIso = elements_.back();
elements_.pop_back();
}
}break;
case rt_CsProtection:
{
if (proc.optional<CsProtection>())
{
m_BrtCsProtection = elements_.back();
elements_.pop_back();
}
}break;
case rt_BkHim:
{
if (proc.optional<BkHim>())
{
m_BrtBkHim = elements_.back();
elements_.pop_back();
}
}break;
case rt_BeginUserCsViews:
{
if (proc.optional<USERCSVIEWS>())
{
m_USERCSVIEWS = elements_.back();
elements_.pop_back();
}
}break;
case rt_BeginWebPubItems:
{
if (proc.optional<WEBPUBITEMS>())
{
m_WEBPUBITEMS = elements_.back();
elements_.pop_back();
}
}break;
case rt_EndSheet:
{
if (proc.optional<EndSheet>())
{
m_BrtEndSheet = elements_.back();
elements_.pop_back();
}
}break;
default://skip
{
proc.SkipRecord();
}break;
}
}
return true;
}
} // namespace XLSB

View File

@ -0,0 +1,87 @@
/*
* (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-12 Ernesta Birznieka-Upisha
* 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
*
*/
#ifndef CHARTSHEETSTREAM_H
#define CHARTSHEETSTREAM_H
#include "../../../../DesktopEditor/common/Types.h"
#include "../Base/Types_32.h"
#include "../XlsxFormat/WritingElement.h"
#include <string>
#include <memory.h>
#include <iostream>
#include "../../../../ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h"
typedef BYTE *LPBYTE;
namespace XLSB
{
class StreamCacheReader;
class ChartSheetStream;
typedef std::shared_ptr<ChartSheetStream> ChartSheetStreamPtr;
class ChartSheetStream: public XLS::CompositeObject
{
BASE_OBJECT_DEFINE_CLASS_NAME(WorkBookStream)
public:
ChartSheetStream();
virtual ~ChartSheetStream();
XLS::BaseObjectPtr clone();
virtual const bool loadContent(XLS::BinProcessor& proc);
//static const XLS::ElementType type = XLS::typeWorksheetSubstream;
XLS::BaseObjectPtr m_BrtBeginSheet;
XLS::BaseObjectPtr m_BrtCsProp;
XLS::BaseObjectPtr m_CSVIEWS;
XLS::BaseObjectPtr m_BrtCsProtectionIso;
XLS::BaseObjectPtr m_BrtCsProtection;
XLS::BaseObjectPtr m_USERCSVIEWS;
XLS::BaseObjectPtr m_BrtMargins;
XLS::BaseObjectPtr m_BrtCsPageSetup;
XLS::BaseObjectPtr m_HEADERFOOTER;
XLS::BaseObjectPtr m_BrtDrawing;
XLS::BaseObjectPtr m_BrtLegacyDrawing;
XLS::BaseObjectPtr m_BrtLegacyDrawingHF;
XLS::BaseObjectPtr m_BrtBkHim;
XLS::BaseObjectPtr m_WEBPUBITEMS;
XLS::BaseObjectPtr m_BrtEndSheet;
};
}
#endif // CHARTSHEETSTREAM_H

View File

@ -101,7 +101,7 @@ namespace OOX
else if ( oRelation.Type() == FileTypes::CalcChain )
return smart_ptr<OOX::File>(new CCalcChain( pMain, oRootPath, oFileName ));
else if ( oRelation.Type() == FileTypes::Chartsheets )
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, oRelation.rId().ToString() ));
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, oRelation.rId().ToString(), true ));
else if ( oRelation.Type() == FileTypes::Table )
return smart_ptr<OOX::File>(new CTableFile( pMain, oRootPath, oFileName ));
else if ( oRelation.Type() == FileTypes::QueryTable )
@ -200,7 +200,7 @@ namespace OOX
else if ( pRelation->Type() == FileTypes::Styles )
return smart_ptr<OOX::File>(new CStyles( pMain, oRootPath, oFileName ));
else if ( pRelation->Type() == FileTypes::Worksheet )
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, pRelation->rId().ToString() ));
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, pRelation->rId().ToString() ));
else if ( pRelation->Type() == OOX::FileTypes::Theme )
{
smart_ptr<OOX::File> pFile;
@ -228,7 +228,7 @@ namespace OOX
else if ( pRelation->Type() == OOX::FileTypes::Image )
return smart_ptr<OOX::File>(new Image( pMain, oFileName ));
else if ( pRelation->Type() == FileTypes::Chartsheets )
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, pRelation->rId().ToString() ));
return smart_ptr<OOX::File>(new CWorksheet( pMain, oRootPath, oFileName, pRelation->rId().ToString(), true ));
else if ( pRelation->Type() == FileTypes::Table )
return smart_ptr<OOX::File>(new CTableFile( pMain, oRootPath, oFileName ));
else if ( pRelation->Type() == FileTypes::QueryTable )

View File

@ -43,6 +43,7 @@
#include "../../XlsbFormat/Xlsb.h"
#include "../../XlsbFormat/WorkSheetStream.h"
#include "../../XlsbFormat/ChartSheetStream.h"
#include "../../XlsbFormat/Biff12_unions/HLINKS.h"
#include "../../XlsbFormat/Biff12_unions/MERGECELLS.h"
@ -57,6 +58,7 @@ namespace OOX
m_bWriteDirectlyToFile = false;
m_pComments = NULL;
m_pThreadedComments = NULL;
m_bIsChartSheet = false;
CXlsx* xlsx = dynamic_cast<CXlsx*>(pMain);
if (xlsx)
@ -69,12 +71,13 @@ namespace OOX
else
m_bPrepareForBinaryWriter = false;
}
CWorksheet::CWorksheet(OOX::Document* pMain, const CPath& oRootPath, const CPath& oPath, const std::wstring & rId) : OOX::File(pMain), OOX::IFileContainer(pMain), WritingElement(pMain)
CWorksheet::CWorksheet(OOX::Document* pMain, const CPath& oRootPath, const CPath& oPath, const std::wstring & rId, bool isChartSheet) : OOX::File(pMain), OOX::IFileContainer(pMain), WritingElement(pMain)
{
m_bSpreadsheets = true;
m_bWriteDirectlyToFile = false;
m_pComments = NULL;
m_pThreadedComments = NULL;
m_bIsChartSheet = isChartSheet;
CXlsx* xlsx = dynamic_cast<CXlsx*>(pMain);
if (xlsx)
@ -99,80 +102,118 @@ namespace OOX
CXlsb* xlsb = dynamic_cast<CXlsb*>(File::m_pMainDocument);
if (xlsb)
{
XLSB::WorkSheetStreamPtr workSheetStream = std::make_shared<XLSB::WorkSheetStream>();
xlsb->ReadBin(oPath, workSheetStream.get());
if (workSheetStream != nullptr)
if(m_bIsChartSheet)
{
if (!workSheetStream->m_arCOLINFOS.empty())
m_oCols = workSheetStream->m_arCOLINFOS;
if (workSheetStream->m_BrtWsDim != nullptr)
m_oDimension = workSheetStream->m_BrtWsDim;
if (workSheetStream->m_BrtDrawing != nullptr)
m_oDrawing = workSheetStream->m_BrtDrawing;
if (workSheetStream->m_BrtLegacyDrawing != nullptr)
m_oLegacyDrawing = workSheetStream->m_BrtLegacyDrawing;
if (workSheetStream->m_BrtLegacyDrawingHF != nullptr)
m_oLegacyDrawingHF = workSheetStream->m_BrtLegacyDrawingHF;
if (workSheetStream->m_HLINKS != nullptr)
m_oHyperlinks = static_cast<XLSB::HLINKS*>(workSheetStream->m_HLINKS.get())->m_arHlinks;
if (workSheetStream->m_MERGECELLS != nullptr)
m_oMergeCells = static_cast<XLSB::MERGECELLS*>(workSheetStream->m_MERGECELLS.get())->m_arBrtMergeCell;
if (workSheetStream->m_CELLTABLE != nullptr)
m_oSheetData = workSheetStream->m_CELLTABLE;
if (workSheetStream->m_BrtWsFmtInfo != nullptr)
m_oSheetFormatPr = workSheetStream->m_BrtWsFmtInfo;
if (workSheetStream->m_WSVIEWS2 != nullptr)
m_oSheetViews = workSheetStream->m_WSVIEWS2;
if (workSheetStream->m_BrtMargins != nullptr)
m_oPageMargins = workSheetStream->m_BrtMargins;
if (workSheetStream->m_BrtPageSetup != nullptr)
m_oPageSetup = workSheetStream->m_BrtPageSetup;
if (workSheetStream->m_BrtPrintOptions != nullptr)
m_oPrintOptions = workSheetStream->m_BrtPrintOptions;
if (workSheetStream->m_HEADERFOOTER != nullptr)
m_oHeaderFooter = workSheetStream->m_HEADERFOOTER;
XLSB::ChartSheetStreamPtr chartSheetStream = std::make_shared<XLSB::ChartSheetStream>();
if (workSheetStream->m_BrtSheetProtectionIso != nullptr)
m_oSheetProtection = workSheetStream->m_BrtSheetProtectionIso;
else if(workSheetStream->m_BrtSheetProtection != nullptr)
m_oSheetProtection = workSheetStream->m_BrtSheetProtection;
xlsb->ReadBin(oPath, chartSheetStream.get());
if (workSheetStream->m_LISTPARTS != nullptr)
m_oTableParts = workSheetStream->m_LISTPARTS;
if (workSheetStream->m_SORTSTATE != nullptr)
m_oSortState = workSheetStream->m_SORTSTATE;
if (!workSheetStream->m_arCONDITIONALFORMATTING.empty())
for(auto &item : workSheetStream->m_arCONDITIONALFORMATTING)
m_arrConditionalFormatting.push_back(new OOX::Spreadsheet::CConditionalFormatting(item));
if(chartSheetStream != nullptr)
{
if (chartSheetStream->m_BrtMargins != nullptr)
m_oPageMargins = chartSheetStream->m_BrtMargins;
if (chartSheetStream->m_HEADERFOOTER != nullptr)
m_oHeaderFooter = chartSheetStream->m_HEADERFOOTER;
if (chartSheetStream->m_BrtDrawing != nullptr)
m_oDrawing = chartSheetStream->m_BrtDrawing;
if (chartSheetStream->m_BrtLegacyDrawing != nullptr)
m_oLegacyDrawing = chartSheetStream->m_BrtLegacyDrawing;
if (chartSheetStream->m_BrtLegacyDrawingHF != nullptr)
m_oLegacyDrawingHF = chartSheetStream->m_BrtLegacyDrawingHF;
if (chartSheetStream->m_BrtBkHim != nullptr)
m_oPicture = chartSheetStream->m_BrtBkHim;
if (chartSheetStream->m_CSVIEWS != nullptr)
m_oSheetViews = chartSheetStream->m_CSVIEWS;
if (chartSheetStream->m_BrtCsProp != nullptr)
m_oSheetPr = chartSheetStream->m_BrtCsProp;
if (chartSheetStream->m_BrtCsPageSetup != nullptr)
m_oPageSetup = chartSheetStream->m_BrtCsPageSetup;
if (workSheetStream->m_AUTOFILTER != nullptr)
m_oAutofilter = workSheetStream->m_AUTOFILTER;
if (workSheetStream->m_DVALS != nullptr)
m_oDataValidations = workSheetStream->m_DVALS;
if (workSheetStream->m_OLEOBJECTS != nullptr)
m_oOleObjects = workSheetStream->m_OLEOBJECTS;
if (workSheetStream->m_ACTIVEXCONTROLS != nullptr)
m_oControls = workSheetStream->m_ACTIVEXCONTROLS;
if (workSheetStream->m_BrtWsProp != nullptr)
m_oSheetPr = workSheetStream->m_BrtWsProp;
if (workSheetStream->m_BrtBkHim != nullptr)
m_oPicture = workSheetStream->m_BrtBkHim;
if (workSheetStream->m_RWBRK != nullptr)
m_oRowBreaks = workSheetStream->m_RWBRK;
if (workSheetStream->m_COLBRK != nullptr)
m_oColBreaks = workSheetStream->m_COLBRK;
if (workSheetStream->m_DCON != nullptr)
m_oDataConsolidate = workSheetStream->m_DCON;
if (chartSheetStream->m_BrtCsProtectionIso != nullptr)
m_oSheetProtection = chartSheetStream->m_BrtCsProtectionIso;
else if(chartSheetStream->m_BrtCsProtection != nullptr)
m_oSheetProtection = chartSheetStream->m_BrtCsProtection;
if (!workSheetStream->m_arBrtRangeProtectionIso.empty())
m_oProtectedRanges = workSheetStream->m_arBrtRangeProtectionIso;
else if(!workSheetStream->m_arBrtRangeProtection.empty())
m_oProtectedRanges = workSheetStream->m_arBrtRangeProtection;
}
}
else
{
XLSB::WorkSheetStreamPtr workSheetStream = std::make_shared<XLSB::WorkSheetStream>();
xlsb->ReadBin(oPath, workSheetStream.get());
if (workSheetStream != nullptr)
{
if (!workSheetStream->m_arCOLINFOS.empty())
m_oCols = workSheetStream->m_arCOLINFOS;
if (workSheetStream->m_BrtWsDim != nullptr)
m_oDimension = workSheetStream->m_BrtWsDim;
if (workSheetStream->m_BrtDrawing != nullptr)
m_oDrawing = workSheetStream->m_BrtDrawing;
if (workSheetStream->m_BrtLegacyDrawing != nullptr)
m_oLegacyDrawing = workSheetStream->m_BrtLegacyDrawing;
if (workSheetStream->m_BrtLegacyDrawingHF != nullptr)
m_oLegacyDrawingHF = workSheetStream->m_BrtLegacyDrawingHF;
if (workSheetStream->m_HLINKS != nullptr)
m_oHyperlinks = static_cast<XLSB::HLINKS*>(workSheetStream->m_HLINKS.get())->m_arHlinks;
if (workSheetStream->m_MERGECELLS != nullptr)
m_oMergeCells = static_cast<XLSB::MERGECELLS*>(workSheetStream->m_MERGECELLS.get())->m_arBrtMergeCell;
if (workSheetStream->m_CELLTABLE != nullptr)
m_oSheetData = workSheetStream->m_CELLTABLE;
if (workSheetStream->m_BrtWsFmtInfo != nullptr)
m_oSheetFormatPr = workSheetStream->m_BrtWsFmtInfo;
if (workSheetStream->m_WSVIEWS2 != nullptr)
m_oSheetViews = workSheetStream->m_WSVIEWS2;
if (workSheetStream->m_BrtMargins != nullptr)
m_oPageMargins = workSheetStream->m_BrtMargins;
if (workSheetStream->m_BrtPageSetup != nullptr)
m_oPageSetup = workSheetStream->m_BrtPageSetup;
if (workSheetStream->m_BrtPrintOptions != nullptr)
m_oPrintOptions = workSheetStream->m_BrtPrintOptions;
if (workSheetStream->m_HEADERFOOTER != nullptr)
m_oHeaderFooter = workSheetStream->m_HEADERFOOTER;
if (workSheetStream->m_BrtSheetProtectionIso != nullptr)
m_oSheetProtection = workSheetStream->m_BrtSheetProtectionIso;
else if(workSheetStream->m_BrtSheetProtection != nullptr)
m_oSheetProtection = workSheetStream->m_BrtSheetProtection;
if (workSheetStream->m_LISTPARTS != nullptr)
m_oTableParts = workSheetStream->m_LISTPARTS;
if (workSheetStream->m_SORTSTATE != nullptr)
m_oSortState = workSheetStream->m_SORTSTATE;
if (!workSheetStream->m_arCONDITIONALFORMATTING.empty())
for(auto &item : workSheetStream->m_arCONDITIONALFORMATTING)
m_arrConditionalFormatting.push_back(new OOX::Spreadsheet::CConditionalFormatting(item));
if (workSheetStream->m_AUTOFILTER != nullptr)
m_oAutofilter = workSheetStream->m_AUTOFILTER;
if (workSheetStream->m_DVALS != nullptr)
m_oDataValidations = workSheetStream->m_DVALS;
if (workSheetStream->m_OLEOBJECTS != nullptr)
m_oOleObjects = workSheetStream->m_OLEOBJECTS;
if (workSheetStream->m_ACTIVEXCONTROLS != nullptr)
m_oControls = workSheetStream->m_ACTIVEXCONTROLS;
if (workSheetStream->m_BrtWsProp != nullptr)
m_oSheetPr = workSheetStream->m_BrtWsProp;
if (workSheetStream->m_BrtBkHim != nullptr)
m_oPicture = workSheetStream->m_BrtBkHim;
if (workSheetStream->m_RWBRK != nullptr)
m_oRowBreaks = workSheetStream->m_RWBRK;
if (workSheetStream->m_COLBRK != nullptr)
m_oColBreaks = workSheetStream->m_COLBRK;
if (workSheetStream->m_DCON != nullptr)
m_oDataConsolidate = workSheetStream->m_DCON;
if (!workSheetStream->m_arBrtRangeProtectionIso.empty())
m_oProtectedRanges = workSheetStream->m_arBrtRangeProtectionIso;
else if(!workSheetStream->m_arBrtRangeProtection.empty())
m_oProtectedRanges = workSheetStream->m_arBrtRangeProtection;
if (workSheetStream->m_FRTWORKSHEET != nullptr)
m_oExtLst = workSheetStream->m_FRTWORKSHEET;
}
if (workSheetStream->m_FRTWORKSHEET != nullptr)
m_oExtLst = workSheetStream->m_FRTWORKSHEET;
}
}

View File

@ -72,7 +72,7 @@ namespace OOX
{
public:
CWorksheet(OOX::Document* pMain);
CWorksheet(OOX::Document* pMain, const CPath& oRootPath, const CPath& oPath, const std::wstring & rId);
CWorksheet(OOX::Document* pMain, const CPath& oRootPath, const CPath& oPath, const std::wstring & rId, bool isChartSheet = false);
virtual ~CWorksheet();
void readBin(const CPath& oPath);
@ -102,7 +102,7 @@ namespace OOX
void toXMLEnd(NSStringUtils::CStringBuilder& writer) const;
virtual const OOX::FileType type() const
{
return OOX::Spreadsheet::FileTypes::Worksheet;
return m_bIsChartSheet?OOX::Spreadsheet::FileTypes::Chartsheets:OOX::Spreadsheet::FileTypes::Worksheet;
}
virtual const CPath DefaultDirectory() const
{
@ -132,6 +132,7 @@ namespace OOX
bool m_bPrepareForBinaryWriter;
bool m_bWriteDirectlyToFile;
bool m_bIsChartSheet;
nullable<OOX::Spreadsheet::CCols> m_oCols;
nullable<OOX::Spreadsheet::CDimension> m_oDimension;

View File

@ -56,6 +56,11 @@
#include "../../XlsbFormat/Biff12_records/BeginDCon.h"
#include "../../XlsbFormat/Biff12_unions/DREFS.h"
#include "../../XlsbFormat/Biff12_records/DRef.h"
#include "../../XlsbFormat/Biff12_unions/CSVIEWS.h"
#include "../../XlsbFormat/Biff12_unions/CSVIEW.h"
#include "../../XlsbFormat/Biff12_records/CsProp.h"
#include "../../XlsbFormat/Biff12_records/CsProtectionIso.h"
#include "../../XlsbFormat/Biff12_records/CsProtection.h"
namespace OOX
{
@ -436,44 +441,79 @@ namespace OOX
}
void ReadAttributes(XLS::BaseObjectPtr& obj)
{
auto ptr = static_cast<XLSB::PageSetup*>(obj.get());
if(ptr != nullptr)
if(obj->get_type() == XLS::typePageSetup)
{
m_oBlackAndWhite = ptr->fNoColor;
if(ptr->fNoColor)
auto ptr = static_cast<XLSB::PageSetup*>(obj.get());
if(ptr != nullptr)
{
if(ptr->fNotes)
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAtEnd;
m_oBlackAndWhite = ptr->fNoColor;
if(ptr->fNoColor)
{
if(ptr->fNotes)
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAtEnd;
else
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAsDisplayed;
}
else
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAsDisplayed;
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsNone;
m_oCopies = ptr->iCopies;
m_oDraft = ptr->fDraft;
m_oErrors = (SimpleTypes::Spreadsheet::EPrintError)ptr->iErrors;
m_oFirstPageNumber = ptr->iPageStart;
m_oFitToHeight = ptr->iFitHeight;
m_oFitToWidth = ptr->iFitWidth;
m_oHorizontalDpi = ptr->iRes;
m_oRId = ptr->szRelID;
if(ptr->fLandscape)
m_oOrientation = SimpleTypes::EPageOrientation::pageorientLandscape;
else
m_oOrientation = SimpleTypes::EPageOrientation::pageorientPortrait;
if(ptr->fLeftToRight)
m_oPageOrder = SimpleTypes::Spreadsheet::EPageOrder::pageorderOverThenDown;
else
m_oPageOrder = SimpleTypes::Spreadsheet::EPageOrder::pageorderDownThenOver;
m_oPaperSize = (SimpleTypes::Spreadsheet::EPageSize)ptr->iPaperSize;
m_oScale = ptr->iScale;
m_oUseFirstPageNumber = ptr->fUsePage;
m_oVerticalDpi = ptr->iVRes;
}
else
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsNone;
}
else if(obj->get_type() == XLS::typeCsPageSetup)
{
auto ptr = static_cast<XLSB::CsPageSetup*>(obj.get());
if(ptr != nullptr)
{
m_oBlackAndWhite = ptr->fNoColor;
if(ptr->fNoColor)
{
if(ptr->fNotes)
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAtEnd;
else
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsAsDisplayed;
}
else
m_oCellComments = SimpleTypes::Spreadsheet::ECellComments::cellcommentsNone;
m_oCopies = ptr->iCopies;
m_oDraft = ptr->fDraft;
m_oErrors = (SimpleTypes::Spreadsheet::EPrintError)ptr->iErrors;
m_oFirstPageNumber = ptr->iPageStart;
m_oFitToHeight = ptr->iFitHeight;
m_oFitToWidth = ptr->iFitWidth;
m_oHorizontalDpi = ptr->iRes;
m_oRId = ptr->szRelID;
m_oCopies = ptr->iCopies;
m_oDraft = ptr->fDraft;
m_oFirstPageNumber = ptr->iPageStart;
m_oHorizontalDpi = ptr->iRes;
m_oRId = ptr->szRelID;
if(ptr->fLandscape)
m_oOrientation = SimpleTypes::EPageOrientation::pageorientLandscape;
else
m_oOrientation = SimpleTypes::EPageOrientation::pageorientPortrait;
if(ptr->fLeftToRight)
m_oPageOrder = SimpleTypes::Spreadsheet::EPageOrder::pageorderOverThenDown;
else
m_oPageOrder = SimpleTypes::Spreadsheet::EPageOrder::pageorderDownThenOver;
m_oPaperSize = (SimpleTypes::Spreadsheet::EPageSize)ptr->iPaperSize;
m_oScale = ptr->iScale;
m_oUseFirstPageNumber = ptr->fUsePage;
m_oVerticalDpi = ptr->iVRes;
if(ptr->fLandscape)
m_oOrientation = SimpleTypes::EPageOrientation::pageorientLandscape;
else
m_oOrientation = SimpleTypes::EPageOrientation::pageorientPortrait;
m_oPaperSize = (SimpleTypes::Spreadsheet::EPageSize)ptr->iPaperSize;
m_oUseFirstPageNumber = ptr->fUsePage;
m_oVerticalDpi = ptr->iVRes;
}
}
}
nullable<SimpleTypes::COnOff<>> m_oBlackAndWhite;
@ -975,21 +1015,31 @@ namespace OOX
}
void fromBin(XLS::BaseObjectPtr& obj)
{
auto pWSVIEW2 = static_cast<XLSB::WSVIEW2*>(obj.get());
if (pWSVIEW2 == nullptr)
return;
ReadAttributes(pWSVIEW2->m_BrtBeginWsView);
m_oPane = pWSVIEW2->m_BrtPane;
if (pWSVIEW2->m_arBrtSel.empty())
return;
for(auto &pSel : pWSVIEW2->m_arBrtSel)
if(obj->get_type() == XLS::typeWSVIEW2)
{
m_arrItems.push_back(new CSelection(pSel));
auto pWSVIEW2 = static_cast<XLSB::WSVIEW2*>(obj.get());
if (pWSVIEW2 == nullptr)
return;
ReadAttributes(pWSVIEW2->m_BrtBeginWsView);
m_oPane = pWSVIEW2->m_BrtPane;
if (pWSVIEW2->m_arBrtSel.empty())
return;
for(auto &pSel : pWSVIEW2->m_arBrtSel)
{
m_arrItems.push_back(new CSelection(pSel));
}
}
else if(obj->get_type() == XLS::typeCSVIEW)
{
auto pCSVIEW = static_cast<XLSB::CSVIEW*>(obj.get());
if (pCSVIEW == nullptr)
return;
ReadAttributes(pCSVIEW->m_BrtBeginCsView);
}
}
virtual EElementType getType () const
@ -1026,30 +1076,42 @@ namespace OOX
void ReadAttributes(XLS::BaseObjectPtr& obj)
{
auto pWsView = static_cast<XLSB::BeginWsView*>(obj.get());
if(pWsView != nullptr)
if(obj->get_type() == XLS::typeBeginWsView)
{
m_oColorId = pWsView->icvHdr;
m_oDefaultGridColor = pWsView->fDefaultHdr;
m_oRightToLeft = pWsView->fRightToLeft;
m_oShowFormulas = pWsView->fDspFmlaRt;
m_oShowGridLines = pWsView->fDspGridRt;
m_oShowOutlineSymbols = pWsView->fDspGuts;
m_oShowRowColHeaders = pWsView->fDspRwColRt;
m_oShowRuler = pWsView->fDspRuler;
m_oShowWhiteSpace = pWsView->fWhitespaceHidden;
m_oShowZeros = pWsView->fDspZerosRt;
m_oTabSelected = pWsView->fSelected;
m_oTopLeftCell = pWsView->topLeftCell;
m_oView = (SimpleTypes::Spreadsheet::ESheetViewType)pWsView->xlView;
m_oWindowProtection = pWsView->fWnProt;
m_oWorkbookViewId = pWsView->iWbkView;
m_oZoomScale = pWsView->wScale;
m_oZoomScaleNormal = pWsView->wScaleNormal;
m_oZoomScalePageLayoutView = pWsView->wScalePLV;
m_oZoomScaleSheetLayoutView = pWsView->wScaleSLV;
auto pWsView = static_cast<XLSB::BeginWsView*>(obj.get());
if(pWsView != nullptr)
{
m_oColorId = pWsView->icvHdr;
m_oDefaultGridColor = pWsView->fDefaultHdr;
m_oRightToLeft = pWsView->fRightToLeft;
m_oShowFormulas = pWsView->fDspFmlaRt;
m_oShowGridLines = pWsView->fDspGridRt;
m_oShowOutlineSymbols = pWsView->fDspGuts;
m_oShowRowColHeaders = pWsView->fDspRwColRt;
m_oShowRuler = pWsView->fDspRuler;
m_oShowWhiteSpace = pWsView->fWhitespaceHidden;
m_oShowZeros = pWsView->fDspZerosRt;
m_oTabSelected = pWsView->fSelected;
m_oTopLeftCell = pWsView->topLeftCell;
m_oView = (SimpleTypes::Spreadsheet::ESheetViewType)pWsView->xlView;
m_oWindowProtection = pWsView->fWnProt;
m_oWorkbookViewId = pWsView->iWbkView;
m_oZoomScale = pWsView->wScale;
m_oZoomScaleNormal = pWsView->wScaleNormal;
m_oZoomScalePageLayoutView = pWsView->wScalePLV;
m_oZoomScaleSheetLayoutView = pWsView->wScaleSLV;
}
}
else if(obj->get_type() == XLS::typeBeginCsView)
{
auto pWsView = static_cast<XLSB::BeginCsView*>(obj.get());
if(pWsView != nullptr)
{
m_oTabSelected = pWsView->fSelected;
m_oWorkbookViewId = pWsView->iWbkView;
m_oZoomScale = pWsView->wScale;
}
}
}
public:
@ -1125,15 +1187,31 @@ namespace OOX
}
void fromBin(XLS::BaseObjectPtr& obj)
{
auto arView = static_cast<XLSB::WSVIEWS2*>(obj.get())->m_arWSVIEW2;
if (arView.empty())
return;
for(auto &pView : arView)
if(obj->get_type() == XLS::typeWSVIEWS2)
{
CSheetView *pSheetView = new CSheetView(pView);
m_arrItems.push_back(pSheetView);
auto arView = static_cast<XLSB::WSVIEWS2*>(obj.get())->m_arWSVIEW2;
if (arView.empty())
return;
for(auto &pView : arView)
{
CSheetView *pSheetView = new CSheetView(pView);
m_arrItems.push_back(pSheetView);
}
}
else if(obj->get_type() == XLS::typeCSVIEWS)
{
auto arView = static_cast<XLSB::CSVIEWS*>(obj.get())->m_arCSVIEW;
if (arView.empty())
return;
for(auto &pView : arView)
{
CSheetView *pSheetView = new CSheetView(pView);
m_arrItems.push_back(pSheetView);
}
}
}
virtual EElementType getType () const
@ -1345,8 +1423,11 @@ namespace OOX
}
void fromBin(XLS::BaseObjectPtr& obj)
{
m_oPageSetUpPr = obj;
m_oOutlinePr = obj;
if(obj->get_type() == XLS::typeWsProp)
{
m_oPageSetUpPr = obj;
m_oOutlinePr = obj;
}
ReadAttributes(obj);
}
@ -1358,26 +1439,44 @@ namespace OOX
private:
void ReadAttributes(XLS::BaseObjectPtr& obj)
{
auto ptr = static_cast<XLSB::WsProp*>(obj.get());
if(ptr != nullptr)
if(obj->get_type() == XLS::typeWsProp)
{
if(!ptr->strName.value.value().empty())
m_oCodeName = ptr->strName.value.value();
auto ptr = static_cast<XLSB::WsProp*>(obj.get());
if(ptr != nullptr)
{
if(!ptr->strName.value.value().empty())
m_oCodeName = ptr->strName.value.value();
m_oEnableFormatConditionsCalculation = ptr->fCondFmtCalc;
m_oFilterMode = ptr->fFilterMode;
m_oPublished = ptr->fPublish;
m_oSyncHorizontal = ptr->fSyncHoriz;
m_oSyncVertical = ptr->fSyncVert;
m_oTransitionEntry = ptr->fAltFormulaEntry;
m_oTransitionEvaluation = ptr->fAltExprEval;
m_oEnableFormatConditionsCalculation = ptr->fCondFmtCalc;
m_oFilterMode = ptr->fFilterMode;
m_oPublished = ptr->fPublish;
m_oSyncHorizontal = ptr->fSyncHoriz;
m_oSyncVertical = ptr->fSyncVert;
m_oTransitionEntry = ptr->fAltFormulaEntry;
m_oTransitionEvaluation = ptr->fAltExprEval;
if(!ptr->syncRef.empty())
m_oSyncRef = ptr->syncRef;
if(!ptr->syncRef.empty())
m_oSyncRef = ptr->syncRef;
m_oTabColor.Init();
m_oTabColor->fromBin(dynamic_cast<XLS::BaseObject*>(&ptr->brtcolorTab));
m_oTabColor.Init();
m_oTabColor->fromBin(dynamic_cast<XLS::BaseObject*>(&ptr->brtcolorTab));
}
}
else if(obj->get_type() == XLS::typeCsProp)
{
auto ptr = static_cast<XLSB::CsProp*>(obj.get());
if(ptr != nullptr)
{
if(!ptr->strName.value.value().empty())
m_oCodeName = ptr->strName.value.value();
m_oPublished = ptr->fPublish;
m_oTabColor.Init();
m_oTabColor->fromBin(dynamic_cast<XLS::BaseObject*>(&ptr->brtcolorTab));
}
}
}
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
{
@ -2101,61 +2200,86 @@ namespace OOX
void ReadAttributes(XLS::BaseObjectPtr& obj)
{
auto ptrRecord = static_cast<XLS::BiffRecord*>(obj.get());
if(ptrRecord != nullptr && ptrRecord->getTypeId() == XLSB::rt_SheetProtection)
if(obj->get_type() == XLS::typeSheetProtection)
{
auto ptr = static_cast<XLSB::SheetProtection*>(obj.get());
m_oPassword = std::to_wstring(ptr->protpwd);
m_oAutoFilter = (bool)ptr->fAutoFilter;
m_oContent = true;
m_oDeleteColumns = (bool)ptr->fDeleteColumns;
m_oDeleteRows = (bool)ptr->fDeleteRows;
m_oFormatCells = (bool)ptr->fFormatCells;
m_oFormatColumns = (bool)ptr->fFormatColumns;
m_oFormatRows = (bool)ptr->fFormatRows;
m_oInsertColumns = (bool)ptr->fInsertColumns;
m_oInsertHyperlinks = (bool)ptr->fInsertHyperlinks;
m_oInsertRows = (bool)ptr->fInsertRows;
m_oObjects = (bool)ptr->fObjects;
m_oPivotTables = (bool)ptr->fPivotTables;
m_oScenarios = (bool)ptr->fScenarios;
m_oSelectLockedCells = (bool)ptr->fSelLockedCells;
m_oSelectUnlockedCells = (bool)ptr->fSelUnlockedCells;
m_oSheet = (bool)ptr->fLocked;
m_oSort = (bool)ptr->fSort;
if(ptr != nullptr)
{
m_oPassword = std::to_wstring(ptr->protpwd);
m_oAutoFilter = (bool)ptr->fAutoFilter;
m_oContent = true;
m_oDeleteColumns = (bool)ptr->fDeleteColumns;
m_oDeleteRows = (bool)ptr->fDeleteRows;
m_oFormatCells = (bool)ptr->fFormatCells;
m_oFormatColumns = (bool)ptr->fFormatColumns;
m_oFormatRows = (bool)ptr->fFormatRows;
m_oInsertColumns = (bool)ptr->fInsertColumns;
m_oInsertHyperlinks = (bool)ptr->fInsertHyperlinks;
m_oInsertRows = (bool)ptr->fInsertRows;
m_oObjects = (bool)ptr->fObjects;
m_oPivotTables = (bool)ptr->fPivotTables;
m_oScenarios = (bool)ptr->fScenarios;
m_oSelectLockedCells = (bool)ptr->fSelLockedCells;
m_oSelectUnlockedCells = (bool)ptr->fSelUnlockedCells;
m_oSheet = (bool)ptr->fLocked;
m_oSort = (bool)ptr->fSort;
}
}
else if(ptrRecord != nullptr && ptrRecord->getTypeId() == XLSB::rt_SheetProtectionIso)
else if(obj->get_type() == XLS::typeSheetProtectionIso)
{
auto ptr = static_cast<XLSB::SheetProtectionIso*>(obj.get());
m_oAlgorithmName = ptr->ipdPasswordData.szAlgName.value();
m_oSpinCount = ptr->dwSpinCount;
m_oHashValue = std::wstring(ptr->ipdPasswordData.rgbHash.rgbData.begin(),
ptr->ipdPasswordData.rgbHash.rgbData.end());
m_oSaltValue = std::wstring(ptr->ipdPasswordData.rgbSalt.rgbData.begin(),
ptr->ipdPasswordData.rgbSalt.rgbData.end());
m_oAutoFilter = (bool)ptr->fAutoFilter;
m_oContent = true;
m_oDeleteColumns = (bool)ptr->fDeleteColumns;
m_oDeleteRows = (bool)ptr->fDeleteRows;
m_oFormatCells = (bool)ptr->fFormatCells;
m_oFormatColumns = (bool)ptr->fFormatColumns;
m_oFormatRows = (bool)ptr->fFormatRows;
m_oInsertColumns = (bool)ptr->fInsertColumns;
m_oInsertHyperlinks = (bool)ptr->fInsertHyperlinks;
m_oInsertRows = (bool)ptr->fInsertRows;
m_oObjects = (bool)ptr->fObjects;
m_oPivotTables = (bool)ptr->fPivotTables;
m_oScenarios = (bool)ptr->fScenarios;
m_oSelectLockedCells = (bool)ptr->fSelLockedCells;
m_oSelectUnlockedCells = (bool)ptr->fSelUnlockedCells;
m_oSheet = (bool)ptr->fLocked;
m_oSort = (bool)ptr->fSort;
if(ptr != nullptr)
{
m_oAlgorithmName = ptr->ipdPasswordData.szAlgName.value();
m_oSpinCount = ptr->dwSpinCount;
m_oHashValue = std::wstring(ptr->ipdPasswordData.rgbHash.rgbData.begin(),
ptr->ipdPasswordData.rgbHash.rgbData.end());
m_oSaltValue = std::wstring(ptr->ipdPasswordData.rgbSalt.rgbData.begin(),
ptr->ipdPasswordData.rgbSalt.rgbData.end());
m_oAutoFilter = (bool)ptr->fAutoFilter;
m_oContent = true;
m_oDeleteColumns = (bool)ptr->fDeleteColumns;
m_oDeleteRows = (bool)ptr->fDeleteRows;
m_oFormatCells = (bool)ptr->fFormatCells;
m_oFormatColumns = (bool)ptr->fFormatColumns;
m_oFormatRows = (bool)ptr->fFormatRows;
m_oInsertColumns = (bool)ptr->fInsertColumns;
m_oInsertHyperlinks = (bool)ptr->fInsertHyperlinks;
m_oInsertRows = (bool)ptr->fInsertRows;
m_oObjects = (bool)ptr->fObjects;
m_oPivotTables = (bool)ptr->fPivotTables;
m_oScenarios = (bool)ptr->fScenarios;
m_oSelectLockedCells = (bool)ptr->fSelLockedCells;
m_oSelectUnlockedCells = (bool)ptr->fSelUnlockedCells;
m_oSheet = (bool)ptr->fLocked;
m_oSort = (bool)ptr->fSort;
}
}
else if(obj->get_type() == XLS::typeCsProtection)
{
auto ptr = static_cast<XLSB::CsProtection*>(obj.get());
if(ptr != nullptr)
{
m_oPassword = std::to_wstring(ptr->protpwd);
m_oObjects = (bool)ptr->fObjects;
m_oSheet = (bool)ptr->fLocked;
}
}
else if(obj->get_type() == XLS::typeCsProtectionIso)
{
auto ptr = static_cast<XLSB::CsProtectionIso*>(obj.get());
if(ptr != nullptr)
{
m_oAlgorithmName = ptr->ipdPasswordData.szAlgName.value();
m_oSpinCount = ptr->dwSpinCount;
m_oHashValue = std::wstring(ptr->ipdPasswordData.rgbHash.rgbData.begin(),
ptr->ipdPasswordData.rgbHash.rgbData.end());
m_oSaltValue = std::wstring(ptr->ipdPasswordData.rgbSalt.rgbData.begin(),
ptr->ipdPasswordData.rgbSalt.rgbData.end());
m_oObjects = (bool)ptr->fObjects;
m_oSheet = (bool)ptr->fLocked;
}
}
}