Merge pull request #1624 from ONLYOFFICE/fix/bug66675

Fix bug #66675
This commit is contained in:
Elena Subbotina
2024-08-22 10:35:03 +03:00
committed by GitHub
6 changed files with 85 additions and 12 deletions

View File

@ -652,6 +652,10 @@ XLS::BaseObjectPtr CSlicerRef::toBin()
XLS::BaseObjectPtr objectPtr(ptr);
auto ptr1(new XLSB::BeginSlicerEx);
ptr1->FRTheader.relID.relId = m_oRId->GetValue();
ptr1->FRTheader.fRelID = true;
ptr1->FRTheader.fRef = false;
ptr1->FRTheader.fSqref = false;
ptr1->FRTheader.fFormula = false;
ptr->m_BrtBeginSlicerEx = XLS::BaseObjectPtr{ptr1};
return objectPtr;
@ -662,6 +666,10 @@ XLS::BaseObjectPtr CSlicerRef::toBinTable()
XLS::BaseObjectPtr objectPtr(ptr);
auto ptr1(new XLSB::BeginSlicerEx);
ptr1->FRTheader.relID.relId = m_oRId->GetValue();
ptr1->FRTheader.fRelID = true;
ptr1->FRTheader.fRef = false;
ptr1->FRTheader.fSqref = false;
ptr1->FRTheader.fFormula = false;
ptr->m_BrtBeginSlicerEx = XLS::BaseObjectPtr{ptr1};
return objectPtr;

View File

@ -473,6 +473,7 @@ namespace OOX
ptr.bGreen = 0;
ptr.bRed = 0;
ptr.fValidRGB = false;
ptr.index = 0;
if(m_oAuto.IsInit())
{
@ -517,9 +518,10 @@ namespace OOX
XLS::BaseObjectPtr objectPtr(ptr);
ptr->bAlpha = 0;
ptr->bAlpha = 0;
ptr->bAlpha = 0;
ptr->bAlpha = 0;
ptr->bRed = 0;
ptr->bGreen = 0;
ptr->bBlue = 0;
ptr->index = 0;
ptr->fValidRGB = false;
if(m_oAuto.IsInit())

View File

@ -47,6 +47,7 @@
#include "../../XlsbFormat/Biff12_records/BeginConditionalFormatting.h"
#include "../../XlsbFormat/Biff12_records/BeginConditionalFormatting14.h"
#include "../../XlsbFormat/Biff12_records/FRTBegin.h"
#include "../../XlsbFormat/Biff12_records/BeginCFRule.h"
#include "../../XlsbFormat/Biff12_records/BeginCFRule14.h"
#include "../../XlsbFormat/Biff12_records/BeginDatabar.h"
@ -1823,6 +1824,10 @@ XLS::BaseObjectPtr CConditionalFormattingRule::toBin(const XLS::CellRef &cellRe
ptr->m_FRTCFRULE = XLS::BaseObjectPtr{extPtr};
beginExt->guid = m_oExtId.get();
auto ruleBegin(new XLSB::FRTBegin);
ruleBegin->productVersion.product = 0;
ruleBegin->productVersion.version = 0;
extPtr->m_BrtFRTBegin = XLS::BaseObjectPtr{ruleBegin};
}
return objPtr;
}
@ -1841,6 +1846,8 @@ XLS::BaseObjectPtr CConditionalFormattingRule::WriteAttributes(const XLS::CellR
ptr->dxfId = 0;
if(m_oPriority.IsInit())
ptr->iPri = m_oPriority->GetValue();
else
ptr->iPri = 1;
if(m_oStopIfTrue.IsInit())
ptr->fStopTrue = m_oStopIfTrue->GetValue();
else

View File

@ -1998,7 +1998,10 @@ namespace OOX
else
{
auto pCellRk = new(XLSB::FmlaNum);
if(m_oFormula->m_oAca.IsInit())
pCellRk->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
pCellRk->grbitFlags.fAlwaysCalc = false;
pCellRk->value.data.value = intCache;
oCell = &pCellRk->cell;
pSource = pCellRk;
@ -2025,6 +2028,10 @@ namespace OOX
pCellRk->value.data.value = realCache;
oCell = &pCellRk->cell;
pSource = pCellRk;
if(m_oFormula->m_oAca.IsInit())
pCellRk->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
pCellRk->grbitFlags.fAlwaysCalc = false;
}
}
}
@ -2225,6 +2232,10 @@ namespace OOX
str->value = L"";
oCell = &str->cell;
pSource = str;
if(m_oFormula->m_oAca.IsInit())
str->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
str->grbitFlags.fAlwaysCalc = false;
}
else
@ -2247,7 +2258,10 @@ namespace OOX
if(m_oValue.IsInit())
str->value = m_oValue->m_sText;
oCell = &str->cell;
if(m_oFormula->m_oAca.IsInit())
str->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
str->grbitFlags.fAlwaysCalc = false;
pSource = str;
}
@ -2268,7 +2282,10 @@ namespace OOX
if(m_oValue.IsInit())
str->value = m_oRichText->ToString();
oCell = &str->cell;
if(m_oFormula->m_oAca.IsInit())
str->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
str->grbitFlags.fAlwaysCalc = false;
pSource = str;
}
@ -2285,6 +2302,10 @@ namespace OOX
auto str(new XLSB::FmlaString);
str->value = L"";
oCell = &str->cell;
if(m_oFormula->m_oAca.IsInit())
str->grbitFlags.fAlwaysCalc = m_oFormula->m_oAca->GetValue();
else
str->grbitFlags.fAlwaysCalc = false;
pSource = str;
}
else
@ -3088,6 +3109,7 @@ namespace OOX
if(m_oThickTop.IsInit())
hdrPtr->fExAsc = m_oThickTop->GetValue();
hdrPtr->ccolspan = 0;
}
//if(m_oDyDescent.IsInit())

View File

@ -39,6 +39,7 @@
#include "../../XlsbFormat/Biff12_unions/SPARKLINEGROUP.h"
#include "../../XlsbFormat/Biff12_records/BeginSparklineGroup.h"
#include "../../XlsbFormat/Biff12_records/Sparkline.h"
#include "../../XlsbFormat/Biff12_records/FRTBegin.h"
namespace OOX
{
@ -111,6 +112,10 @@ namespace OOX
if(m_oSqRef.IsInit())
{
XLSB::FRTSqref sqref;
sqref.fAdjDelete = false;
sqref.fDoAdjust = false;
sqref.fAdjChange = false;
sqref.fEdit = false;
sqref.sqrfx.strValue = m_oSqRef.get();
ptr->FRTheader.rgSqrefs.array.push_back(sqref);
ptr->FRTheader.fSqref = true;
@ -773,6 +778,10 @@ namespace OOX
{
auto ptr(new XLSB::SPARKLINEGROUPS);
XLS::BaseObjectPtr objectPtr(ptr);
auto sparklineVersion(new XLSB::FRTBegin);
sparklineVersion->productVersion.product = 0;
sparklineVersion->productVersion.version = 0;
ptr->m_BrtFRTBegin = XLS::BaseObjectPtr{sparklineVersion};
for(auto i:m_arrItems)
ptr->m_arSPARKLINEGROUP.push_back(i->toBin());
return objectPtr;

View File

@ -562,6 +562,8 @@ namespace OOX
XLS::BaseObjectPtr objectPtr(ptr);
if(m_oBlackAndWhite.IsInit())
ptr->fNoColor = m_oBlackAndWhite->m_eValue;
else
ptr->fNoColor = false;
if (ptr->fNoColor && m_oCellComments.IsInit())
{
if (m_oCellComments == SimpleTypes::Spreadsheet::ECellComments::cellcommentsAtEnd)
@ -577,9 +579,13 @@ namespace OOX
if (m_oDraft.IsInit())
ptr->fDraft = m_oDraft->m_eValue;
else
ptr->fDraft = false;
if (m_oErrors.IsInit())
ptr->iErrors = m_oErrors->m_eValue;
else
ptr->iErrors = 0;
if (m_oFirstPageNumber.IsInit())
ptr->iPageStart = m_oFirstPageNumber->m_eValue;
@ -643,7 +649,9 @@ namespace OOX
if (m_oVerticalDpi.IsInit())
ptr->iVRes = m_oVerticalDpi->m_eValue;
else
ptr->iVRes = 0;
ptr->fEndNotes = false;
return objectPtr;
}
XLS::BaseObjectPtr CPageSetup::toBinCs()
@ -653,6 +661,8 @@ namespace OOX
if(m_oBlackAndWhite.IsInit())
ptr->fNoColor = m_oBlackAndWhite->m_eValue;
else
ptr->fNoColor = false;
if (ptr->fNoColor)
{
if (m_oCellComments == SimpleTypes::Spreadsheet::ECellComments::cellcommentsAtEnd)
@ -660,19 +670,24 @@ namespace OOX
else if(m_oCellComments == SimpleTypes::Spreadsheet::ECellComments::cellcommentsAsDisplayed)
ptr->fNotes = false;
}
ptr->fEndNotes = false;
if (m_oCopies.IsInit())
ptr->iCopies = m_oCopies->m_eValue;
else
ptr->iCopies = 0;
if (m_oDraft.IsInit())
ptr->fDraft = m_oDraft->m_eValue;
else
ptr->fDraft = 0;
if (m_oFirstPageNumber.IsInit())
ptr->iPageStart = m_oFirstPageNumber->m_eValue;
else
ptr->iPageStart = 0;
if (m_oHorizontalDpi.IsInit())
ptr->iRes = m_oHorizontalDpi->m_eValue;
else
ptr->iRes = 0;
if (m_oRId.IsInit())
ptr->szRelID = m_oRId->GetValue();
@ -686,12 +701,22 @@ namespace OOX
if (m_oPaperSize.IsInit())
ptr->iPaperSize = m_oPaperSize->m_eValue;
else
ptr->iPaperSize = 9;
if (m_oScale.IsInit())
ptr->iScale = m_oScale->m_eValue;
else
ptr->iScale = 100;
if (m_oUseFirstPageNumber.IsInit())
ptr->fUsePage = m_oUseFirstPageNumber->m_eValue;
else
ptr->fUsePage = false;
if (m_oVerticalDpi.IsInit())
ptr->iVRes = m_oVerticalDpi->m_eValue;
else
ptr->iVRes = 0;
return objectPtr;
}