53 struct TablePageBreakData;
57 namespace formula {
struct VectorRefArray; }
60 class StartListeningContext;
61 class EndListeningContext;
62 class CopyFromClipContext;
63 class CopyToClipContext;
64 class CopyToDocContext;
67 class RangeColumnSpanSet;
69 struct ColumnBlockPosition;
70 class TableColumnBlockPositionSet;
71 struct RefUpdateContext;
72 struct RefUpdateInsertTabContext;
73 struct RefUpdateDeleteTabContext;
74 struct RefUpdateMoveTabContext;
76 class DocumentStreamAccess;
79 class RowHeightContext;
80 class CompileFormulaContext;
81 struct SetFormulaDirtyContext;
148 std::reverse_iterator<Iterator>
rbegin() {
return std::reverse_iterator<Iterator>(
maEnd); }
149 std::reverse_iterator<Iterator>
rend() {
return std::reverse_iterator<Iterator>(
maBegin); }
183 std::unique_ptr<ScCompressedArray<SCCOL, sal_uInt16>>
mpColWidth;
186 std::unique_ptr<ScBitMaskCompressedArray<SCCOL, CRFlags>>
mpColFlags;
187 std::unique_ptr<ScBitMaskCompressedArray< SCROW, CRFlags>>
pRowFlags;
263 template< ScQueryCellIteratorAccess accessType, ScQueryCellIteratorType queryType >
265 template< ScQueryCellIteratorAccess accessType >
278 bool bColInfo =
true,
bool bRowInfo =
true );
291 if ( nScCol >= aCol.
size() )
324 return nScCol >=
static_cast< SCCOL >( 0 ) && nScCol < aCol.
size();
371 const OUString& rOpt,
const OUString& rTab,
sal_uLong nRefreshDelay );
376 void SetName(
const OUString& rNewName );
382 void SetCodeName(
const OUString& rNewName ) { aCodeName = rNewName; }
405 SCROW nRow2,
bool* pOnlyNotBecauseOfMatrix =
nullptr,
406 bool bNoMatrixAtAll =
false )
const;
408 bool* pOnlyNotBecauseOfMatrix =
nullptr )
const;
411 bool bNoMatrixAtAll =
false )
const;
469 return aCol[rPos.
Col()].GetCellType( rPos.
Row() );
507 bool* pUndoOutline, std::vector<ScAddress>* pGroupPos );
552 const ScMarkData* pMarkData,
bool bAsLink,
bool bColRowFlags,
553 bool bGlobalNamesToLocal,
bool bCopyCaptions );
572 bool bAsLink,
bool bIncludeFiltered);
577 bool bSkipEmpty,
const ScTable* pSrcTab );
603 SCCOL& rEndCol )
const;
605 SCROW& rEndRow,
bool bNotes )
const;
613 bool bIncludeOld,
bool bOnlyDown )
const;
618 SCCOL& rEndCol,
SCROW& rEndRow,
bool bColumnsOnly,
619 bool bStickyTopRow,
bool bStickyLeftCol,
631 bool bMarked,
bool bUnprotected,
const ScMarkData& rMark,
SCCOL nTabStartCol )
const;
634 const bool bUp,
const SCROW nUsedY,
const bool bMarked,
const bool bSheetProtected )
const;
648 aCol[rPos.
Col()].GetErrCode( rPos.
Row() ) :
676 bool bIncludeDraw =
true,
bool bUpdateNoteCaptionPos =
true );
696 double nStepValue,
double nMaxValue,
ScProgress* pProgress);
702 sal_uInt16 nFormatNo );
713 SCROW* nStartRow =
nullptr,
SCROW* nEndRow =
nullptr )
const;
723 return static_cast<const T*
>(
GetAttr(nCol, nRow, sal_uInt16(nWhich)));
728 return static_cast<const T*
>(
GetAttr(nCol, nRow, sal_uInt16(nWhich), nStartRow, nEndRow));
756 bool*
const pIsChanged =
nullptr );
773 const ::editeng::SvxBorderLine* pLine,
bool bColorOnly );
823 ScProgress* pOuterProgress =
nullptr, sal_uInt64 nProgressStart = 0 );
827 ScProgress* pOuterProgress =
nullptr, sal_uInt64 nProgressStart = 0 );
833 bool bWidth,
bool bTotalSize,
834 bool bInPrintTwips =
false);
839 double nPPTY,
bool bApi );
902 {
return pRowFlags.get(); }
913 void GetAllRowBreaks(::std::set<SCROW>& rBreaks,
bool bPage,
bool bManual)
const;
914 void GetAllColBreaks(::std::set<SCCOL>& rBreaks,
bool bPage,
bool bManual)
const;
980 const ScSortParam& rSortParam,
bool bKeepQuery,
bool bUpdateRefs,
1000 SCROW nRowStart,
SCROW nRowEnd, rtl_TextEncoding eCharSet )
const;
1008 void SetDrawPageSize(
bool bResetStreamValid =
true,
bool bUpdateNoteCaptionPos =
true,
1065 SCROW nRowStart,
SCROW nRowEnd,
unsigned nThisThread,
unsigned nThreadsTotal);
1111 #if DUMP_COLUMN_STORAGE
1149 ScProgress* pProgress, sal_uInt64& rProgress );
1158 sal_uInt64 nActFormCnt, sal_uInt64 nMaxFormCnt,
1159 bool bHasFiltered,
bool bVertical,
bool bPositive,
1160 ScProgress* pProgress, sal_uInt64& rProgress );
1165 double nStepValue,
double nMaxValue, sal_uInt16 nMinDigits,
1167 bool bSkipOverlappedCells =
false,
1168 std::vector<sal_Int32>* pNonOverlappedCellIdx =
nullptr);
1171 double& rInc, sal_uInt16& rMinDigits,
1173 bool bHasFiltered,
bool& rSkipOverlappedCells,
1174 std::vector<sal_Int32>& rNonOverlappedCellIdx );
1179 bool bMarked,
bool bUnprotected )
const;
1215 OUString& rUndoStr);
1232 bool bKeepQuery,
bool bUpdateRefs );
1240 ScProgress* pProgress,
bool bOnlyDataAreaExtras );
1282 bool bNumFormatChanged,
bool bBroadcast );
1307 SCROW nRow2,
SCROW nCombinedStartRow,
bool bIncludeFiltered,
1308 const std::vector<SCROW>& rFilteredRows,
SCROW nRowDestOffset);
1319 SCROW nCombinedStartRow,
bool bIncludeFiltered,
SCROW nRowDestOffset);
1329 std::vector<ScAddress>* pGroupPos );
OUString GetAutoFillPreview(const ScRange &rSource, SCCOL nEndX, SCROW nEndY)
formula::FormulaTokenRef ResolveStaticReference(SCCOL nCol, SCROW nRow)
SCROW GetLastDataRow(SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, ScDataAreaExtras *pDataAreaExtras=nullptr) const
void FindMaxRotCol(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2)
Matrix data type that can store values of mixed types.
void SetFormula(SCCOL nCol, SCROW nRow, const ScTokenArray &rArray, formula::FormulaGrammar::Grammar eGram)
void CheckIntegrity() const
void SetMergedCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
void PrepareQuery(ScQueryParam &rQueryParam)
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
void CopyUpdated(const ScTable *pPosTab, ScTable *pDestTab) const
svl::SharedString GetSharedString(SCCOL nCol, SCROW nRow) const
bool TestCopyScenarioTo(const ScTable *pDestTab) const
std::set< SCCOL > QueryColumnsWithFormulaCells() const
const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow) const
void UpdatePageBreaks(const ScRange *pUserArea)
sal_Int64 GetHashCode() const
bool SetRowHeightRange(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight, double nPPTY, bool bApi)
bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
void CopySparklinesToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab)
ScColumnsRange(SCCOL nBegin, SCCOL nEnd)
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
bool ColFiltered(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
bool operator==(const Iterator &rOther) const
ScFormulaCell * SetFormulaCell(SCCOL nCol, SCROW nRow, ScFormulaCell *pCell)
Takes ownership of pCell.
void ApplyStyleArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet &rStyle)
bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask) const
void FillAutoSimple(SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd, SCCOLROW &rInner, const SCCOLROW &rCol, const SCCOLROW &rRow, sal_uInt64 nActFormCnt, sal_uInt64 nMaxFormCnt, bool bHasFiltered, bool bVertical, bool bPositive, ScProgress *pProgress, sal_uInt64 &rProgress)
bool SearchCell(const SvxSearchItem &rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
void TransferCellValuesTo(const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues &rDest)
void SetActiveScenario(bool bSet)
ScColumnsRange GetAllocatedColumnsRange(SCCOL begin, SCCOL end) const
bool ReplaceStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, bool bIsUndo)
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
bool HasBlockMatrixFragment(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bNoMatrixAtAll=false) const
void CompileAll(sc::CompileFormulaContext &rCxt)
Store parameters used in the ScDocument::SetString() method.
~ScTable() COVERITY_NOEXCEPT_FALSE
bool HasRowManualBreak(SCROW nRow) const
void SetLink(ScLinkMode nMode, const OUString &rDoc, const OUString &rFlt, const OUString &rOpt, const OUString &rTab, sal_uLong nRefreshDelay)
std::optional< sc::ColumnIterator > GetColumnIterator(SCCOL nCol, SCROW nRow1, SCROW nRow2) const
bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi, ScProgress *pOuterProgress=nullptr, sal_uInt64 nProgressStart=0)
void ForgetNoteCaptions(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData)
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
void SetRowFlags(SCROW nRow, CRFlags nNewFlags)
void SetRowHeight(SCROW nRow, sal_uInt16 nNewHeight)
void DeleteConditionalFormat(sal_uLong nOldIndex)
void DestroySortCollator()
std::unique_ptr< ScFlatUInt16RowSegments > mpRowHeights
bool ReplaceAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
void CopyScenarioTo(ScTable *pDestTab) const
void SetPatternAreaCondFormat(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &rAttr, const ScCondFormatIndexes &rCondFormatIndexes)
void InvalidateTextWidth(const ScAddress *pAdrFrom, const ScAddress *pAdrTo, bool bNumFormatChanged, bool bBroadcast)
Simple container to keep track of sheet - column pair.
void SetValues(const SCCOL nCol, const SCROW nRow, const std::vector< double > &rVals)
void Fill(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, ScProgress *pProgress)
bool ShrinkToUsedDataArea(bool &o_bShrunk, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bColumnsOnly, bool bStickyTopRow, bool bStickyLeftCol, ScDataAreaExtras *pDataAreaExtras) const
const ScRange * GetPrintRange(sal_uInt16 nPos) const
SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
sc::Sparkline * CreateSparkline(SCCOL nCol, SCROW nRow, std::shared_ptr< sc::SparklineGroup > const &pSparklineGroup)
void SetName(const OUString &rNewName)
void TestTabRefAbs(SCTAB nTable) const
bool GetPrintArea(SCCOL &rEndCol, SCROW &rEndRow, bool bNotes, bool bCalcHiddens=false) const
bool GetNextSpellingCell(SCCOL &rCol, SCROW &rRow, bool bInSel, const ScMarkData &rMark) const
void InitSortCollator(const ScSortParam &rPar)
void UpdateScriptTypes(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2)
bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Provides methods to allow direct shifting of document content without broadcasting or shifting of bro...
SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight)
Set specified row height to specified ranges.
void PageStyleModified(const OUString &rNewName)
void SortReorderByColumn(const ScSortInfoArray *pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress *pProgress)
void SetScenario(bool bFlag)
void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow)
size_t GetNoteCount(SCCOL nCol) const
::std::set< SCROW > maRowPageBreaks
void ApplyPattern(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
ScColumn * FetchColumn(SCCOL nCol)
const ScSheetEvents * GetSheetEvents() const
sheet protection state container
void InterpretDirtyCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
void SetScenarioColor(const Color &rNew)
void FillSeriesSimple(const ScCellValue &rSrcCell, SCCOLROW &rInner, SCCOLROW nIMin, SCCOLROW nIMax, const SCCOLROW &rCol, const SCCOLROW &rRow, bool bVertical, ScProgress *pProgress, sal_uInt64 &rProgress)
bool HasFormulaCell(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2) const
bool IsPendingRowHeights() const
std::unique_ptr< ScPostIt > ReleaseNote(SCCOL nCol, SCROW nRow)
void SetScriptType(SCCOL nCol, SCROW nRow, SvtScriptType nType)
Think of this as a mini-ScColumn like storage that only stores cell values in a column.
void StartListening(const ScAddress &rAddress, SvtListener *pListener)
Tracks and gathers all created sparklines and sparkline groups.
sal_uInt16 GetPrintRangeCount() const
void SetPrintEntireSheet()
Marks the specified sheet to be printed completely.
void CopyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab)
SCROW GetRowForHeight(tools::Long nHeight) const
Get the last row such that the height of row 0 to the end row is as high as possible without exceedin...
bool TestInsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize) const
Context for reference update during shifting, moving or copying of cell ranges.
void CopyRowFiltered(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow) const
CellType GetCellType(const ScAddress &rPos) const
ScColumn & CreateColumnIfNotExists(const SCCOL nScCol)
SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const
void SetCalcNotification(bool bSet)
void SetPageSize(const Size &rSize)
bool GetPrintAreaVer(SCCOL nStartCol, SCCOL nEndCol, SCROW &rEndRow, bool bNotes) const
void DetachFormulaCells(sc::EndListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
std::unique_ptr< ScFlatBoolColSegments > mpFilteredCols
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
bool HasScenarioRange(const ScRange &rRange) const
CommentCaptionState GetAllNoteCaptionsState(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes)
ScRefCellValue reset(SCROW nRow)
Set the start row position.
SCROW getRow() const
Get the current row position.
std::unordered_map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap
void SetFormulaResults(SCCOL nCol, SCROW nRow, const double *pResults, size_t nLen)
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Store position data for column array storage.
void TransposeColPatterns(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered, const std::vector< SCROW > &rFilteredRows, SCROW nRowDestOffset)
Transpose clipboard patterns.
Stores cell values for multiple tables.
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const
void GetFirstDataPos(SCCOL &rCol, SCROW &rRow) const
SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const
void SetManualHeight(SCROW nStartRow, SCROW nEndRow, bool bManual)
SCSIZE Query(const ScQueryParam &rQueryParam, bool bKeepSub)
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden)
const OUString & GetLinkDoc() const
ScPostIt * GetNote(SCCOL nCol, SCROW nRow)
This is very similar to ScCellValue, except that it references the original value instead of copying ...
void UpdateReference(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc=nullptr, bool bIncludeDraw=true, bool bUpdateNoteCaptionPos=true)
static void DecoladeRow(ScSortInfoArray *, SCROW nRow1, SCROW nRow2)
void SetCodeName(const OUString &rNewName)
void SetLoadingRTL(bool bSet)
void UndoToTable(sc::CopyToDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScTable *pDestTab)
void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam &rParam, ScFilterEntries &rFilterEntries, bool bFiltering)
std::reverse_iterator< Iterator > rbegin()
Sparkline data, used for rendering the content of a cell.
void DeleteRow(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize, bool *pUndoOutline, std::vector< ScAddress > *pGroupPos)
sal_uInt16 GetOriginalHeight(SCROW nRow) const
Accessor class to ScDocument.
void RemoveEditTextCharAttribs(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
void SkipFilteredRows(SCROW &rRow, SCROW &rLastNonFilteredRow, bool bForward)
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow) const
void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCROW nCombinedStartRow, SCROW nRowDestOffset, ScTable *pTransClip, InsertDeleteFlags nFlags, bool bAsLink, bool bIncludeFiltered)
void MixData(sc::MixDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered)
bool HasData(SCCOL nCol, SCROW nRow) const
void RemoveSubTotals(ScSubTotalParam &rParam)
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
void CompileHybridFormula(sc::StartListeningContext &rStartListenCxt, sc::CompileFormulaContext &rCompileCxt)
void LimitChartArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow) const
void UpdateSelectionFunction(ScFunctionData &rData, const ScMarkData &rMark)
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
std::unique_ptr< ScRangeName > mpRangeName
void RestoreFromCache(SvStream &rStrm)
SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
bool bTableAreaVisibleValid
void MaybeAddExtraColumn(SCCOL &rCol, SCROW nRow, OutputDevice *pDev, double nPPTX, double nPPTY)
In case the cell text goes beyond the column width, move the max column position to the right...
void SetRepeatColRange(std::unique_ptr< ScRange > pNew)
void ApplyAttr(SCCOL nCol, SCROW nRow, const SfxPoolItem &rAttr)
bool HasRowHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
ScColumnData aDefaultColData
ScOutlineTable * GetOutlineTable()
exports com.sun.star. sheet
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
sc::SparklineList maSparklineList
const ScDocument & mrDocument
void MarkScenarioIn(ScMarkData &rMark, ScScenarioFlags nNeededBits) const
void FillFormula(const ScFormulaCell *pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast)
bool SearchAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges)
void FillPrintSaver(ScPrintSaverTab &rSaveTab) const
bool ValidRow(SCROW nRow) const
void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual)
void StartListeners(sc::StartListeningContext &rCxt, bool bAll)
Either start all formula cells as listeners unconditionally, or start those that are marked "needs li...
void SetStreamValid(bool bSet, bool bIgnoreLock=false)
void SetRowBreak(SCROW nRow, bool bPage, bool bManual)
OUString GetFormula(SCCOL nCol, SCROW nRow) const
void AttachFormulaCells(sc::StartListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Store arbitrary cell value of any kind.
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd) const
void CalculateInColumnInThread(ScInterpreterContext &rContext, SCCOL nColStart, SCCOL nColEnd, SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal)
void ResetChanged(const ScRange &rRange)
static constexpr SCROW ROW_NOT_FOUND
Stores individual user-defined sort list.
void SetNumberFormat(SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat)
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich, SCROW &nStartRow, SCROW &nEndRow) const
std::reverse_iterator< Iterator > rend()
void Reorder(const sc::ReorderParam &rParam)
void UpdateDrawRef(UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos=true)
bool IsBlockEditable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
tools::Long GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, double fScale, const tools::Long *pnMaxHeight=nullptr) const
void InsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize)
bool ValidNextPos(SCCOL nCol, SCROW nRow, const ScMarkData &rMark, bool bMarked, bool bUnprotected) const
size_t SCSIZE
size_t typedef to be able to find places where code was changed from USHORT to size_t and is used to ...
void SetTableOpDirty(const ScRange &)
void finalizeOutlineImport()
void SetAnonymousDBData(std::unique_ptr< ScDBData > pDBData)
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Additional class containing cell annotation data.
void FillMatrix(ScMatrix &rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool *pPool) const
void EndListening(const ScAddress &rAddress, SvtListener *pListener)
const ScTableProtection * GetProtection() const
const OUString & GetName() const
void TransposeColNotes(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered, SCROW nRowDestOffset)
Transpose clipboard notes.
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, bool bShow)
void SetPageStyle(const OUString &rName)
void ConvertFormulaToValue(sc::EndListeningContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, sc::TableValues *pUndo)
double * GetValueCell(SCCOL nCol, SCROW nRow)
std::shared_ptr< sc::Sparkline > GetSparkline(SCCOL nCol, SCROW nRow)
void ClearPrintRanges()
Removes all print ranges.
void SortReorderAreaExtrasByColumn(const ScSortInfoArray *pArray, SCROW nDataRow1, SCROW nDataRow2, const ScDataAreaExtras &rDataAreaExtras, ScProgress *pProgress)
void SetColWidthOnly(SCCOL nCol, sal_uInt16 nNewWidth)
void PreprocessRangeNameUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
void HandleStuffAfterParallelCalculation(SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter *pInterpreter)
Walk through all cells in an area.
sal_uInt64 GetCodeCount() const
bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set< ScTypedStrData > &rStrings)
void CopyToClip(sc::CopyToClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTable)
void StripHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
SCCOL GetLastChangedColFlagsWidth() const
void SetRowManualBreaks(::std::set< SCROW > &&rBreaks)
void CopyColHidden(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
short CompareCell(sal_uInt16 nSort, ScRefCellValue &rCell1, SCCOL nCell1Col, SCROW nCell1Row, ScRefCellValue &rCell2, SCCOL nCell2Col, SCROW nCell2Row) const
bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden)
ScRefCellValue next()
Find the next visible data cell position.
void SetColWidth(SCCOL nCol, sal_uInt16 nNewWidth)
bool HasValueData(SCCOL nCol, SCROW nRow) const
void CopyCellValuesFrom(const SCCOL nCol, SCROW nRow, const sc::CellValues &rSrc)
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, std::vector< ScAddress > *pGroupPos)
SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
bool HasUniformRowHeight(SCROW nRow1, SCROW nRow2) const
Optimized ColumnSpanSet version that operates on a single ScRange.
void SetValue(SCCOL nCol, SCROW nRow, const double &rVal)
void SetPendingRowHeights(bool bSet)
void FindAreaPos(SCCOL &rCol, SCROW &rRow, ScMoveDirection eDirection) const
std::unique_ptr< ScOutlineTable > pOutlineTable
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
std::atomic< bool > bStreamValid
this is touched from formula group threading context
void InterpretCellsIfNeeded(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
bool Search(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
void SetRangeName(std::unique_ptr< ScRangeName > pNew)
void SetPattern(const ScAddress &rPos, const ScPatternAttr &rAttr)
bool RemoveFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
sal_uInt16 GetOptimalColWidth(SCCOL nCol, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bFormula, const ScMarkData *pMarkData, const ScColWidthParam *pParam)
void SetNeedsListeningGroup(SCCOL nCol, SCROW nRow)
bool SkipRow(const SCCOL rCol, SCROW &rRow, const SCROW nMovY, const ScMarkData &rMark, const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected) const
tools::Long GetRowOffset(SCROW nRow, bool bHiddenAsZero=true) const
void SetAttrEntries(SCCOL nStartCol, SCCOL nEndCol, std::vector< ScAttrEntry > &&vNewData)
const OUString & GetLinkFlt() const
sal_uInt16 GetOriginalWidth(SCCOL nCol) const
bool HasSelectionMatrixFragment(const ScMarkData &rMark) const
std::unique_ptr< ScBitMaskCompressedArray< SCCOL, CRFlags > > mpColFlags
void SetRepeatRowRange(std::unique_ptr< ScRange > pNew)
VisibleDataCellIterator(const ScDocument &rDoc, ScFlatBoolRowSegments &rRowSegs, ScColumn &rColumn)
bool SearchAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
std::unique_ptr< utl::TextSearch > pSearchText
bool IsColValid(const SCCOL nScCol) const
void CopyOneCellFromClip(sc::CopyFromClipContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, const SCROW nSrcRow, const ScTable *pSrcTab)
bool SetOutlineTable(const ScOutlineTable *pNewOutline)
OString dumpColumnRowGroups(bool bColumns) const
Returns list-of-spans representation of the column/row groupings encoded as an OString.
std::unique_ptr< ScFlatBoolColSegments > mpHiddenCols
void IncDate(double &rVal, sal_uInt16 &nDayOfMonth, double nStep, FillDateCmd eCmd)
bool SetFormulaCells(SCCOL nCol, SCROW nRow, std::vector< ScFormulaCell * > &rCells)
sal_uLong GetLinkRefreshDelay() const
void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
void ApplyStyle(SCCOL nCol, SCROW nRow, const ScStyleSheet *rStyle)
SCSIZE GetEmptyLinesInBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScDirection eDir) const
void SetScenarioFlags(ScScenarioFlags nNew)
void SetDrawPageSize(bool bResetStreamValid=true, bool bUpdateNoteCaptionPos=true, const ScObjectHandling eObjectHandling=ScObjectHandling::RecalcPosMode)
sal_uInt64 GetWeightedCount() const
bool ColHidden(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
bool ValidCol(SCCOL nCol) const
bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
const ScFormulaCell * GetFormulaCell(SCCOL nCol, SCROW nRow) const
Keep track of all named expressions that have been updated during reference update.
bool IsColRowTabValid(const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab) const
void AssertNoInterpretNeeded(SCCOL nCol, SCROW nRow1, SCROW nRow2)
bool operator!=(const Iterator &rOther) const
void SetColManualBreaks(::std::set< SCCOL > &&rBreaks)
tools::Long GetColOffset(SCCOL nCol, bool bHiddenAsZero=true) const
CollatorWrapper * pSortCollator
void AddCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::UpdatedRangeNames &rIndexes) const
std::unique_ptr< ScRange > pRepeatColRange
const ScColumnData & ColumnData(SCCOL nCol) const
bool HasColManualBreak(SCCOL nCol) const
const ScRangeList * GetScenarioRanges() const
void CheckVectorizationState()
void RestorePrintRanges(const ScPrintSaverTab &rSaveTab)
void UpdateInsertTab(sc::RefUpdateInsertTabContext &rCxt)
std::bidirectional_iterator_tag iterator_category
void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData &rData)
sal_uInt16 GetColWidth(SCCOL nCol, bool bHiddenAsZero=true) const
bool ValidCol(SCCOL nCol) const
const ScRange * GetRepeatRowRange() const
void InvalidateScenarioRanges()
static void UpdateSearchItemAddressForReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow)
Replace behaves differently to the Search; adjust the rCol and rRow accordingly.
bool GetPrintAreaHor(SCROW nStartRow, SCROW nEndRow, SCCOL &rEndCol) const
void CopyCaptionsToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab, bool bCloneCaption)
std::unique_ptr< ScDBData > pDBDataNoName
void UnshareFormulaCells(SCCOL nCol, std::vector< SCROW > &rRows)
void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual)
bool TestRemoveSubTotals(const ScSubTotalParam &rParam)
void CopyRowHidden(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
ScFlatBoolRowSegments & mrRowSegs
CRFlags GetRowFlags(SCROW nRow) const
void SetEmptyCell(SCCOL nCol, SCROW nRow)
const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nWhich) const
SCROW GetLastChangedRowFlagsWidth() const
CAUTION! The following defines must be in the same namespace as the respective type.
ScScenarioFlags nScenarioFlags
void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, sal_uInt16 nFormatNo)
void GetUnprotectedCells(ScRangeList &rRangeList) const
void UpdateCompile(bool bForceIfNameInUse=false)
sc::MultiDataCellState HasMultipleDataCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
void ShowCol(SCCOL nCol, bool bShow)
SCCOL CountVisibleCols(SCCOL nStartCol, SCCOL nEndCol) const
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
void CopyFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, ScTable *pTable)
void AddPrintRange(const ScRange &rNew)
Adds a new print ranges.
bool IsActiveScenario() const
const EditTextObject * GetEditText(SCCOL nCol, SCROW nRow) const
const Color & GetScenarioColor() const
void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
ScAddress maLOKFreezeCell
void GetNotesInRange(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes) const
std::unique_ptr< ScTableProtection > pTabProtection
ScRefCellValue GetRefCellValue(SCCOL nCol, SCROW nRow)
void GetLastDataPos(SCCOL &rCol, SCROW &rRow) const
Structure that stores segments of boolean flags per column, and perform custom action on those segmen...
OString dumpHiddenFiltered(bool bColumns, bool bHidden)
Returns list-of-spans representation of hidden/filtered states of columns/rows encoded as an OString...
void AutoFormat(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_uInt16 nFormatNo)
void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
bool GetNextMarkedCell(SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark) const
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
void SetRawString(SCCOL nCol, SCROW nRow, const svl::SharedString &rStr)
bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
void CreateColumnIfNotExistsImpl(const SCCOL nScCol)
void GetAllRowBreaks(::std::set< SCROW > &rBreaks, bool bPage, bool bManual) const
void StartListeningFormulaCells(sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
bool GetTableArea(SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
bool DeleteSparkline(SCCOL nCol, SCROW nRow)
void DBShowRow(SCROW nRow, bool bShow)
const OUString & GetCodeName() const
::std::set< SCROW > maRowManualBreaks
std::unique_ptr< ScConditionalFormatList > mpCondFormatList
bool DoSubTotals(ScSubTotalParam &rParam)
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
SvtScriptType GetRangeScriptType(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
bool BroadcastBroadcasters(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SfxHintId nHint)
Broadcast single broadcasters in range, without explicitly setting anything dirty, not doing area broadcasts.
void BroadcastRecalcOnRefMove()
Broadcast dirty formula cells that contain functions such as CELL(), COLUMN() or ROW() which may chan...
void FillFormulaVertical(const ScFormulaCell &rSrcCell, SCCOLROW &rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2, ScProgress *pProgress, sal_uInt64 &rProgress)
void UpdateTranspose(const ScRange &rSource, const ScAddress &rDest, ScDocument *pUndoDoc)
sal_Int32 GetMaxStringLen(SCCOL nCol, SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
bool ReservePatternCount(SCCOL nCol, SCSIZE nReserve)
void SetTabNo(SCTAB nNewTab)
bool IsStreamValid() const
const ScBitMaskCompressedArray< SCROW, CRFlags > * GetRowFlagsArray() const
ScTable(ScDocument &rDoc, SCTAB nNewTab, const OUString &rNewName, bool bColInfo=true, bool bRowInfo=true)
bool HasRowPageBreak(SCROW nRow) const
bool ApplyFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
void SortReorderByRow(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress, bool bOnlyDataAreaExtras)
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const
bool ContainsNotesInRange(const ScRange &rRange) const
bool SetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const ScSetStringParam *pParam=nullptr)
void SetCondFormList(ScConditionalFormatList *pList)
Iterate through all edit text cells in a given sheet.
void GetScenarioComment(OUString &rComment) const
SheetGeomType
Represents the type of sheet geometry data.
bool RefVisible(const ScFormulaCell *pCell)
bool SearchAndReplaceEmptyCells(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
void UpdateMoveTab(sc::RefUpdateMoveTabContext &rCxt, SCTAB nTabNo, ScProgress *pProgress)
void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
void EndListeningGroup(sc::EndListeningContext &rCxt, const SCCOL nCol, SCROW nRow)
void MergePatternArea(ScMergePatternState &rState, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bDeep) const
tools::Long GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero=true) const
SCROW GetLOKFreezeRow() const
const OUString & GetLinkTab() const
void CopyToTable(sc::CopyToDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScTable *pDestTab, const ScMarkData *pMarkData, bool bAsLink, bool bColRowFlags, bool bGlobalNamesToLocal, bool bCopyCaptions)
bool GetDataAreaSubrange(ScRange &rRange) const
bool SetLOKFreezeCol(SCCOL nFreezeCol)
SCSIZE GetPatternCount(SCCOL nCol) const
::std::vector< ScRange > ScRangeVec
bool ReplaceAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, ScDocument *pUndoDoc)
OUString GetString(SCCOL nCol, SCROW nRow, const ScInterpreterContext *pContext=nullptr) const
void UpdateDeleteTab(sc::RefUpdateDeleteTabContext &rCxt)
bool ValidColRow(SCCOL nCol, SCROW nRow) const
void InvalidatePageBreaks()
bool HasManualBreaks() const
SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const
void GetAllColBreaks(::std::set< SCCOL > &rBreaks, bool bPage, bool bManual) const
::std::set< SCCOL > maColPageBreaks
void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData &rData)
bool RowHidden(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
tools::Long GetNeededSize(SCCOL nCol, SCROW nRow, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bWidth, bool bTotalSize, bool bInPrintTwips=false)
To calculate a single subtotal function.
void SetProtection(const ScTableProtection *pProtect)
void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries &rFilterEntries, bool bFiltering=false)
void UpdateInsertTabAbs(SCTAB nNewPos)
void SetScenarioComment(const OUString &rComment)
void SetTabBgColor(const Color &rColor)
bool IsColRowValid(const SCCOL nScCol, const SCROW nScRow) const
bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
const OUString & GetPageStyle() const
bool IsPrintEntireSheet() const
Returns true, if the sheet is always printed.
bool SearchStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark)
bool ValidRow(SCROW nRow) const
void TopTenQuery(ScQueryParam &)
std::unique_ptr< ScFlatBoolRowSegments > mpFilteredRows
void FillAnalyse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, FillCmd &rCmd, FillDateCmd &rDateCmd, double &rInc, sal_uInt16 &rMinDigits, ScUserListData *&rListData, sal_uInt16 &rListIndex, bool bHasFiltered, bool &rSkipOverlappedCells, std::vector< sal_Int32 > &rNonOverlappedCellIdx)
void CopyScenarioFrom(const ScTable *pSrcTab)
sal_uInt64 GetCellCount() const
ScRangeName * GetRangeName() const
void GetDataArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bIncludeOld, bool bOnlyDown) const
void DeleteCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool *pUndoOutline)
std::unique_ptr< ScSortInfoArray > CreateSortInfoArray(const sc::ReorderParam &rParam)
bool IsLoadingRTL() const
sc::SparklineList & GetSparklineList()
bool ValidColRow(SCCOL nCol, SCROW nRow) const
void SetOptimalHeightOnly(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, ScProgress *pOuterProgress=nullptr, sal_uInt64 nProgressStart=0)
const ScDocument & GetDoc() const
void SetLayoutRTL(bool bSet)
sal_uInt16 GetCommonWidth(SCCOL nEndCol) const
void CopyConditionalFormat(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, const ScTable *pTable)
void MergeSelectionPattern(ScMergePatternState &rState, const ScMarkData &rMark, bool bDeep) const
short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const
ScLinkMode GetLinkMode() const
void DumpColumnStorage(SCCOL nCol) const
ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const
::std::set< SCCOL > maColManualBreaks
void SetRepeatArea(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow)
bool GetCellArea(SCCOL &rEndCol, SCROW &rEndRow) const
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
void CopyRowHeight(const ScTable &rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset)
bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const
void SetVisible(bool bVis)
formula::VectorRefArray FetchVectorRefArray(SCCOL nCol, SCROW nRow1, SCROW nRow2)
void SortReorderAreaExtrasByRow(ScSortInfoArray *pArray, SCCOL nDataCol1, SCCOL nDataCol2, const ScDataAreaExtras &rDataAreaExtras, ScProgress *pProgress)
void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
std::unique_ptr< ScCompressedArray< SCCOL, sal_uInt16 > > mpColWidth
void InvalidateTableArea()
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
void SortReorderByRowRefUpdate(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
OUString GetUpperCellString(SCCOL nCol, SCROW nRow)
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow, SCSIZE nSize) const
bool HandleRefArrayForParallelism(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
SvtBroadcaster * GetBroadcaster(SCCOL nCol, SCROW nRow)
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
void Sort(const ScSortParam &rSortParam, bool bKeepQuery, bool bUpdateRefs, ScProgress *pProgress, sc::ReorderParam *pUndo)
Sort a range of data.
void SetDirty(const ScRange &, ScColumn::BroadcastMode)
void FillSeries(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, sal_uInt16 nMinDigits, bool bAttribs, ScProgress *pProgress, bool bSkipOverlappedCells=false, std::vector< sal_Int32 > *pNonOverlappedCellIdx=nullptr)
ScScenarioFlags GetScenarioFlags() const
const OUString & GetLinkOpt() const
void SetColBreak(SCCOL nCol, bool bPage, bool bManual)
SCROW GetNotePosition(SCCOL nCol, size_t nIndex) const
bool SetLOKFreezeRow(SCROW nFreezeRow)
void CopyPrintRange(const ScTable &rTable)
Compressed array of row (or column) entries, e.g.
SCSIZE FillMaxRot(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2, SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY, const ScPatternAttr *pPattern, const SfxItemSet *pCondSet)
FormulaError GetErrCode(const ScAddress &rPos) const
void SetDirtyIfPostponed()
Mark formula cells dirty that have the mbPostponedDirty flag set or contain named ranges with relativ...
std::unique_ptr< ScRange > pRepeatRowRange
bool EnsureFormulaCellResults(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning=false)
bool IsEmptyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
bool IsBlockEmpty(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
void CopyStaticToDocument(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap &rMap, ScTable *pDestTab)
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich) const
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
SCROW GetFirstEditTextRow(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
bool RowFiltered(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
OUString GetInputString(SCCOL nCol, SCROW nRow, const svl::SharedString **pShared=nullptr, bool bForceSystemLocale=false) const
void RegroupFormulaCells(SCCOL nCol)
void SetLoadingMedium(bool bLoading)
bool HasStringCells(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
bool IsManualRowHeight(SCROW nRow) const
SCROW GetNextManualBreak(SCROW nRow) const
Get the row position of the next manual break that occurs at or below specified row.
bool HasStringData(SCCOL nCol, SCROW nRow) const
bool SetEditText(SCCOL nCol, SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bRefresh)
std::unique_ptr< ScRangeList > pScenarioRanges
void StyleSheetChanged(const SfxStyleSheetBase *pStyleSheet, bool bRemoved, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY)
The data type represents bits, manageable by bitwise operations.
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
void FillAuto(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, ScProgress *pProgress)
bool Replace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
SCCOL ClampToAllocatedColumns(SCCOL nCol) const
void QuickSort(ScSortInfoArray *, SCCOLROW nLo, SCCOLROW nHi)
void SetSheetEvents(std::unique_ptr< ScSheetEvents > pNew)
sal_uLong AddCondFormat(std::unique_ptr< ScConditionalFormat > pNew)
void GetNextPos(SCCOL &rCol, SCROW &rRow, SCCOL nMovX, SCROW nMovY, bool bMarked, bool bUnprotected, const ScMarkData &rMark, SCCOL nTabStartCol) const
void DeleteBeforeCopyFromClip(sc::CopyFromClipContext &rCxt, const ScTable &rClipTab, sc::ColumnSpanSet &rBroadcastSpans)
const ScStyleSheet * GetAreaStyle(bool &rFound, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
bool GetCalcNotification() const
void CopyCellToDocument(SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable &rDestTab)
sal_uInt32 GetNumberFormat(const ScInterpreterContext &rContext, const ScAddress &rPos) const
void FillSparkline(bool bVertical, SCCOLROW nFixed, SCCOLROW nIteratingStart, SCCOLROW nIteratingEnd, SCCOLROW nFillStart, SCCOLROW nFillEnd)
void ApplyBlockFrame(const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol)
bool HasColPageBreak(SCCOL nCol) const
void CreateAllNoteCaptions()
bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCCOL nCol, SCROW nRow, std::vector< ScAddress > *pGroupPos)
std::unique_ptr< ScBitMaskCompressedArray< SCROW, CRFlags > > pRowFlags
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
void DeleteEmptyBroadcasters()
void SetNote(SCCOL nCol, SCROW nRow, std::unique_ptr< ScPostIt > pNote)
bool RowHiddenLeaf(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
void StoreToCache(SvStream &rStrm) const
std::unique_ptr< ScFlatBoolRowSegments > mpHiddenRows
const Color & GetTabBgColor() const
bool SearchAndReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
const ScRange * GetRepeatColRange() const
SCCOL GetAllocatedColumnsCount() const
sal_uInt16 GetRowHeight(SCROW nRow, SCROW *pStartRow, SCROW *pEndRow, bool bHiddenAsZero=true) const
void RemoveManualBreaks()
void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
CRFlags GetColFlags(SCCOL nCol) const
ScDBData * GetAnonymousDBData()
bool SearchRangeForAllEmptyCells(const ScRange &rRange, const SvxSearchItem &rSearchItem, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
void CompileDBFormula(sc::CompileFormulaContext &rCxt)
SCCOL GetLOKFreezeCol() const
const OUString & GetUpperName() const
std::unique_ptr< ScSheetEvents > pSheetEvents
void ExtendPrintArea(OutputDevice *pDev, SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW nEndRow)
double GetValue(SCCOL nCol, SCROW nRow) const
void SetError(SCCOL nCol, SCROW nRow, FormulaError nError)
bool ValidTab(SCTAB nTab)
sal_uLong nLinkRefreshDelay
bool IsMerged(SCCOL nCol, SCROW nRow) const
SCROW GetLastFlaggedRow() const
SCROW GetHiddenRowCount(SCROW nRow) const
void CopyColFiltered(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
void InsertCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize)
bool IsSortCollatorGlobal() const
Use this to iterate through non-empty visible cells in a single column.
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
void SplitFormulaGroups(SCCOL nCol, std::vector< SCROW > &rRows)
void ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, bool bShow)
bool SearchRangeForEmptyCell(const ScRange &rRange, const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, OUString &rUndoStr)
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
ScRefCellValue GetCellValue(SCCOL nCol, sc::ColumnBlockPosition &rBlockPos, SCROW nRow)
css::uno::Sequence< css::sheet::TablePageBreakData > GetRowBreakData() const
SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const
OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType)
Serializes the sheet's geometry data.
bool GetDataStart(SCCOL &rStartCol, SCROW &rStartRow) const
ScColumnsRange GetWritableColumnsRange(SCCOL begin, SCCOL end)
OString dumpColumnRowSizes(bool bColumns)
Returns list-of-spans representation of the column-widths/row-heights in twips encoded as an OString...
void RemoveCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
void ShowRow(SCROW nRow, bool bShow)
ScConditionalFormatList * GetCondFormList()
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered)