LibreOffice Module sc (master)  1
table.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  * Licensed to the Apache Software Foundation (ASF) under one or more
12  * contributor license agreements. See the NOTICE file distributed
13  * with this work for additional information regarding copyright
14  * ownership. The ASF licenses this file to you under the Apache
15  * License, Version 2.0 (the "License"); you may not use this file
16  * except in compliance with the License. You may obtain a copy of
17  * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #pragma once
21 
22 #include <algorithm>
23 #include <vector>
24 #include <tools/gen.hxx>
25 #include <tools/color.hxx>
26 #include "attarray.hxx"
27 #include "column.hxx"
28 #include "colcontainer.hxx"
29 #include "sortparam.hxx"
30 #include "types.hxx"
31 #include "cellvalue.hxx"
32 #include <formula/types.hxx>
33 #include "calcmacros.hxx"
34 #include <formula/errorcodes.hxx>
35 #include "document.hxx"
36 #include "drwlayer.hxx"
37 
38 #include <set>
39 #include <memory>
40 
41 template <typename A, typename D> class ScBitMaskCompressedArray;
42 template <typename A, typename D> class ScCompressedArray;
43 
44 namespace utl {
45  class TextSearch;
46 }
47 
48 namespace com::sun::star {
49  namespace sheet {
50  struct TablePageBreakData;
51  }
52 }
53 
54 namespace formula { struct VectorRefArray; }
55 namespace sc {
56 
57 class StartListeningContext;
58 class EndListeningContext;
59 class CopyFromClipContext;
60 class CopyToClipContext;
61 class CopyToDocContext;
62 class MixDocContext;
63 class ColumnSpanSet;
64 class RangeColumnSpanSet;
65 class ColumnSet;
66 struct ColumnBlockPosition;
67 class TableColumnBlockPositionSet;
68 struct RefUpdateContext;
69 struct RefUpdateInsertTabContext;
70 struct RefUpdateDeleteTabContext;
71 struct RefUpdateMoveTabContext;
72 struct NoteEntry;
73 class DocumentStreamAccess;
74 class CellValues;
75 class TableValues;
76 class RowHeightContext;
77 class CompileFormulaContext;
78 struct SetFormulaDirtyContext;
79 class ColumnIterator;
80 class ScDrawObjData;
81 }
82 
83 class SfxItemSet;
84 class SfxStyleSheetBase;
85 class SvxBoxInfoItem;
86 class SvxBoxItem;
87 class SvxSearchItem;
88 
89 class ScAutoFormatData;
90 class ScEditDataArray;
91 class ScFormulaCell;
92 class ScOutlineTable;
93 class ScPrintSaverTab;
94 class ScProgress;
95 class ScRangeList;
96 class ScSheetEvents;
97 class ScSortInfoArray;
100 class ScStyleSheet;
101 class ScTableProtection;
102 class ScUserListData;
103 struct RowInfo;
104 class ScFunctionData;
105 class CollatorWrapper;
109 struct ScSetStringParam;
110 struct ScColWidthParam;
111 class ScRangeName;
112 class ScDBData;
113 class ScHint;
114 class ScPostIt;
115 struct ScInterpreterContext;
116 
117 
118 class ScColumnsRange final
119 {
120  public:
121  class Iterator final
122  {
123  std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator maColIter;
124  public:
125  typedef std::input_iterator_tag iterator_category;
126  typedef SCCOL value_type;
128  typedef const SCCOL* pointer;
129  typedef SCCOL reference;
130 
131  explicit Iterator(const std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator& colIter) : maColIter(colIter) {}
132 
133  Iterator& operator++() { ++maColIter; return *this;}
134  Iterator& operator--() { --maColIter; return *this;}
135 
136  bool operator==(const Iterator & rOther) const {return maColIter == rOther.maColIter;}
137  bool operator!=(const Iterator & rOther) const {return !(*this == rOther);}
138  SCCOL operator*() const {return (*maColIter)->GetCol();}
139  };
140 
141  ScColumnsRange(const Iterator & rBegin, const Iterator & rEnd) : maBegin(rBegin), maEnd(rEnd) {}
142  const Iterator & begin() { return maBegin; }
143  const Iterator & end() { return maEnd; }
144  std::reverse_iterator<Iterator> rbegin() { return std::reverse_iterator<Iterator>(maEnd); }
145  std::reverse_iterator<Iterator> rend() { return std::reverse_iterator<Iterator>(maBegin); }
146 private:
149 };
150 
151 class ScTable
152 {
153 private:
154  typedef ::std::vector< ScRange > ScRangeVec;
155 
157 
158  OUString aName;
159  OUString aCodeName;
160  OUString aComment;
161 
162  OUString aLinkDoc;
163  OUString aLinkFlt;
164  OUString aLinkOpt;
165  OUString aLinkTab;
168 
169  // page style template
170  OUString aPageStyle;
171  Size aPageSizeTwips; // size of the print-page
172  SCCOL nRepeatStartX; // repeating rows/columns
173  SCCOL nRepeatEndX; // REPEAT_NONE, if not used
176 
177  std::unique_ptr<ScTableProtection> pTabProtection;
178 
179  std::unique_ptr<ScCompressedArray<SCCOL, sal_uInt16>> mpColWidth;
180  std::unique_ptr<ScFlatUInt16RowSegments> mpRowHeights;
181 
182  std::unique_ptr<ScBitMaskCompressedArray<SCCOL, CRFlags>> mpColFlags;
183  std::unique_ptr<ScBitMaskCompressedArray< SCROW, CRFlags>> pRowFlags;
184  std::unique_ptr<ScFlatBoolColSegments> mpHiddenCols;
185  std::unique_ptr<ScFlatBoolRowSegments> mpHiddenRows;
186  std::unique_ptr<ScFlatBoolColSegments> mpFilteredCols;
187  std::unique_ptr<ScFlatBoolRowSegments> mpFilteredRows;
188 
189  ::std::set<SCROW> maRowPageBreaks;
190  ::std::set<SCROW> maRowManualBreaks;
191  ::std::set<SCCOL> maColPageBreaks;
192  ::std::set<SCCOL> maColManualBreaks;
193 
194  std::unique_ptr<ScOutlineTable> pOutlineTable;
195 
196  std::unique_ptr<ScSheetEvents> pSheetEvents;
197 
202 
205  std::unique_ptr<utl::TextSearch> pSearchText;
206 
207  mutable OUString aUpperName; // #i62977# filled only on demand, reset in SetName
208 
209  // sort parameter to minimize stack size of quicksort
212 
213  ScRangeVec aPrintRanges;
214 
215  std::unique_ptr<ScRange> pRepeatColRange;
216  std::unique_ptr<ScRange> pRepeatRowRange;
217 
218  sal_uInt16 nLockCount;
219 
220  std::unique_ptr<ScRangeList> pScenarioRanges;
224  std::unique_ptr<ScDBData> pDBDataNoName;
225  mutable std::unique_ptr<ScRangeName> mpRangeName;
226 
227  std::unique_ptr<ScConditionalFormatList> mpCondFormatList;
228 
230 
231  bool bScenario:1;
232  bool bLayoutRTL:1;
233  bool bLoadingRTL:1;
235  mutable bool bTableAreaValid:1;
236  mutable bool bTableAreaVisibleValid:1;
237  bool bVisible:1;
238  bool bStreamValid:1;
246 
247  // Default attributes for the unallocated columns.
249 
250 friend class ScDocument; // for FillInfo
251 friend class ScColumn;
252 friend class ScValueIterator;
256 friend class ScCellIterator;
257 friend class ScQueryCellIterator;
261 friend class ScDocAttrIterator;
262 friend class ScAttrRectIterator;
264 friend class ScDocumentImport;
266 friend class sc::ColumnSpanSet;
268 friend class sc::EditTextIterator;
270 
271 public:
272  ScTable( ScDocument& rDoc, SCTAB nNewTab, const OUString& rNewName,
273  bool bColInfo = true, bool bRowInfo = true );
274  ~ScTable() COVERITY_NOEXCEPT_FALSE;
275  ScTable(const ScTable&) = delete;
276  ScTable& operator=(const ScTable&) = delete;
277 
279  const ScDocument& GetDoc() const { return rDocument;}
280  SCTAB GetTab() const { return nTab; }
281 
282  ScOutlineTable* GetOutlineTable() { return pOutlineTable.get(); }
283 
284  ScColumn& CreateColumnIfNotExists( const SCCOL nScCol ) const
285  {
286  if ( nScCol >= aCol.size() )
288  return aCol[nScCol];
289  }
290  // out-of-line the cold part of the function
291  void CreateColumnIfNotExistsImpl( const SCCOL nScCol ) const;
292  sal_uLong GetCellCount() const;
293  sal_uLong GetWeightedCount() const;
294  sal_uLong GetWeightedCount(SCROW nStartRow, SCROW nEndRow) const;
295  sal_uLong GetCodeCount() const; // RPN code in formula
296 
297  sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const;
298 
299  bool SetOutlineTable( const ScOutlineTable* pNewOutline );
300  void StartOutlineTable();
301 
302  void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
303 
304  bool TestRemoveSubTotals( const ScSubTotalParam& rParam );
305  void RemoveSubTotals( ScSubTotalParam& rParam );
306  bool DoSubTotals( ScSubTotalParam& rParam );
307 
308  const ScSheetEvents* GetSheetEvents() const { return pSheetEvents.get(); }
309  void SetSheetEvents( std::unique_ptr<ScSheetEvents> pNew );
310 
311  bool IsVisible() const { return bVisible; }
312  void SetVisible( bool bVis );
313 
314  bool IsStreamValid() const { return bStreamValid; }
315  void SetStreamValid( bool bSet, bool bIgnoreLock = false );
316 
317  [[nodiscard]] bool IsColValid( const SCCOL nScCol ) const
318  {
319  return nScCol >= static_cast< SCCOL >( 0 ) && nScCol < aCol.size();
320  }
321  [[nodiscard]] bool IsColRowValid( const SCCOL nScCol, const SCROW nScRow ) const
322  {
323  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow );
324  }
325  [[nodiscard]] bool IsColRowTabValid( const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab ) const
326  {
327  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow ) && ValidTab( nScTab );
328  }
329  [[nodiscard]] bool ValidCol(SCCOL nCol) const { return GetDoc().ValidCol(nCol); }
330  [[nodiscard]] bool ValidRow(SCROW nRow) const { return GetDoc().ValidRow(nRow); }
331  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const { return GetDoc().ValidColRow(nCol, nRow); }
332 
333  bool IsPendingRowHeights() const { return bPendingRowHeights; }
334  void SetPendingRowHeights( bool bSet );
335 
336  bool GetCalcNotification() const { return bCalcNotification; }
337  void SetCalcNotification( bool bSet );
338 
339  bool IsLayoutRTL() const { return bLayoutRTL; }
340  bool IsLoadingRTL() const { return bLoadingRTL; }
341  void SetLayoutRTL( bool bSet );
342  void SetLoadingRTL( bool bSet );
343 
344  bool IsScenario() const { return bScenario; }
345  void SetScenario( bool bFlag );
346  void GetScenarioComment( OUString& rComment) const { rComment = aComment; }
347  void SetScenarioComment( const OUString& rComment ) { aComment = rComment; }
348  const Color& GetScenarioColor() const { return aScenarioColor; }
349  void SetScenarioColor(const Color& rNew) { aScenarioColor = rNew; }
350  const Color& GetTabBgColor() const { return aTabBgColor; }
351  void SetTabBgColor(const Color& rColor);
353  void SetScenarioFlags(ScScenarioFlags nNew) { nScenarioFlags = nNew; }
354  void SetActiveScenario(bool bSet) { bActiveScenario = bSet; }
355  bool IsActiveScenario() const { return bActiveScenario; }
356 
357  ScLinkMode GetLinkMode() const { return nLinkMode; }
358  bool IsLinked() const { return nLinkMode != ScLinkMode::NONE; }
359  const OUString& GetLinkDoc() const { return aLinkDoc; }
360  const OUString& GetLinkFlt() const { return aLinkFlt; }
361  const OUString& GetLinkOpt() const { return aLinkOpt; }
362  const OUString& GetLinkTab() const { return aLinkTab; }
364 
365  void SetLink( ScLinkMode nMode, const OUString& rDoc, const OUString& rFlt,
366  const OUString& rOpt, const OUString& rTab, sal_uLong nRefreshDelay );
367 
368  sal_Int64 GetHashCode () const;
369 
370  const OUString& GetName() const { return aName; }
371  void SetName( const OUString& rNewName );
372 
373  void SetAnonymousDBData(std::unique_ptr<ScDBData> pDBData);
374  ScDBData* GetAnonymousDBData() { return pDBDataNoName.get();}
375 
376  const OUString& GetCodeName() const { return aCodeName; }
377  void SetCodeName( const OUString& rNewName ) { aCodeName = rNewName; }
378 
379  const OUString& GetUpperName() const;
380 
381  const OUString& GetPageStyle() const { return aPageStyle; }
382  void SetPageStyle( const OUString& rName );
383  void PageStyleModified( const OUString& rNewName );
384 
385  bool IsProtected() const;
386  void SetProtection(const ScTableProtection* pProtect);
387  const ScTableProtection* GetProtection() const;
388  void GetUnprotectedCells( ScRangeList& rRangeList ) const;
389 
390  bool IsEditActionAllowed( sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd ) const;
391 
392  Size GetPageSize() const;
393  void SetPageSize( const Size& rSize );
394  void SetRepeatArea( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
395 
396  void LockTable();
397  void UnlockTable();
398 
399  bool IsBlockEditable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2,
400  SCROW nRow2, bool* pOnlyNotBecauseOfMatrix = nullptr,
401  bool bNoMatrixAtAll = false ) const;
402  bool IsSelectionEditable( const ScMarkData& rMark,
403  bool* pOnlyNotBecauseOfMatrix = nullptr ) const;
404 
405  bool HasBlockMatrixFragment( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
406  bool bNoMatrixAtAll = false ) const;
407  bool HasSelectionMatrixFragment( const ScMarkData& rMark ) const;
408 
409  bool IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes ) const;
410 
411  bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString& rString,
412  const ScSetStringParam * pParam = nullptr );
413 
414  bool SetEditText( SCCOL nCol, SCROW nRow, std::unique_ptr<EditTextObject> pEditText );
415  void SetEditText( SCCOL nCol, SCROW nRow, const EditTextObject& rEditText, const SfxItemPool* pEditPool );
416  SCROW GetFirstEditTextRow( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
417 
418  void SetEmptyCell( SCCOL nCol, SCROW nRow );
419  void SetFormula(
420  SCCOL nCol, SCROW nRow, const ScTokenArray& rArray, formula::FormulaGrammar::Grammar eGram );
421  void SetFormula(
422  SCCOL nCol, SCROW nRow, const OUString& rFormula, formula::FormulaGrammar::Grammar eGram );
423 
430  ScFormulaCell* SetFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
431 
432  bool SetFormulaCells( SCCOL nCol, SCROW nRow, std::vector<ScFormulaCell*>& rCells );
433 
434  bool HasFormulaCell( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 ) const;
435 
436  svl::SharedString GetSharedString( SCCOL nCol, SCROW nRow ) const;
437 
438  void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
439  void SetValues( const SCCOL nCol, const SCROW nRow, const std::vector<double>& rVals );
440  void SetError( SCCOL nCol, SCROW nRow, FormulaError nError);
441  SCSIZE GetPatternCount( SCCOL nCol ) const;
442  SCSIZE GetPatternCount( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
443  bool ReservePatternCount( SCCOL nCol, SCSIZE nReserve );
444 
445  void SetRawString( SCCOL nCol, SCROW nRow, const svl::SharedString& rStr );
446  void GetString( SCCOL nCol, SCROW nRow, OUString& rString,
447  const ScInterpreterContext* pContext = nullptr ) const;
448  double* GetValueCell( SCCOL nCol, SCROW nRow );
449  void GetInputString( SCCOL nCol, SCROW nRow, OUString& rString ) const;
450  double GetValue( SCCOL nCol, SCROW nRow ) const;
451  const EditTextObject* GetEditText( SCCOL nCol, SCROW nRow ) const;
452  void RemoveEditTextCharAttribs( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
453  void GetFormula( SCCOL nCol, SCROW nRow, OUString& rFormula ) const;
454  const ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow ) const;
455  ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow );
456 
457  CellType GetCellType( const ScAddress& rPos ) const
458  {
459  if (!GetDoc().ValidColRow(rPos.Col(),rPos.Row()))
460  return CELLTYPE_NONE;
461  if (rPos.Col() >= aCol.size())
462  return CELLTYPE_NONE;
463  return aCol[rPos.Col()].GetCellType( rPos.Row() );
464  }
465  CellType GetCellType( SCCOL nCol, SCROW nRow ) const;
466  ScRefCellValue GetCellValue( SCCOL nCol, SCROW nRow ) const;
467 
468  void GetFirstDataPos(SCCOL& rCol, SCROW& rRow) const;
469  void GetLastDataPos(SCCOL& rCol, SCROW& rRow) const;
470 
471  std::unique_ptr<ScPostIt> ReleaseNote( SCCOL nCol, SCROW nRow );
472 
473  size_t GetNoteCount( SCCOL nCol ) const;
474  SCROW GetNotePosition( SCCOL nCol, size_t nIndex ) const;
475  void CreateAllNoteCaptions();
476  void ForgetNoteCaptions( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData );
477 
478  void GetAllNoteEntries( std::vector<sc::NoteEntry>& rNotes ) const;
479  void GetNotesInRange( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes ) const;
480  CommentCaptionState GetAllNoteCaptionsState( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes );
481  bool ContainsNotesInRange( const ScRange& rRange ) const;
482 
483  bool TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize ) const;
484  void InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize );
485  void DeleteRow(
486  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
487  bool* pUndoOutline, std::vector<ScAddress>* pGroupPos );
488 
489  bool TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize ) const;
490  void InsertCol(
491  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
492  void DeleteCol(
493  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool* pUndoOutline );
494 
495  void DeleteArea(
496  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag,
497  bool bBroadcast = true, sc::ColumnSpanSet* pBroadcastSpans = nullptr );
498 
499  void CopyToClip( sc::CopyToClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pTable );
500  void CopyToClip( sc::CopyToClipContext& rCxt, const ScRangeList& rRanges, ScTable* pTable );
501 
503  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap& rMap,
504  ScTable* pDestTab );
505 
506  void CopyCellToDocument( SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable& rDestTab );
507 
508  bool InitColumnBlockPosition( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol );
509 
511  sc::CopyFromClipContext& rCxt, const ScTable& rClipTab, sc::ColumnSpanSet& rBroadcastSpans );
512 
513  void CopyOneCellFromClip(
514  sc::CopyFromClipContext& rCxt, const SCCOL nCol1, const SCROW nRow1,
515  const SCCOL nCol2, const SCROW nRow2,
516  const SCROW nSrcRow, const ScTable* pSrcTab );
517 
518  void CopyFromClip(
519  sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
520  SCCOL nDx, SCROW nDy, ScTable* pTable );
521 
524  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
525 
526  void SetDirtyFromClip(
527  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet& rBroadcastSpans );
528 
529  void CopyToTable(
530  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
531  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab,
532  const ScMarkData* pMarkData, bool bAsLink, bool bColRowFlags,
533  bool bGlobalNamesToLocal, bool bCopyCaptions );
534 
535  void CopyCaptionsToTable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pDestTab, bool bCloneCaption );
536 
537  void UndoToTable(
538  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
539  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab );
540 
541  void CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
542  SCCOL nDx, SCROW nDy, const ScTable* pTable);
543  void TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
544  ScTable* pTransClip, InsertDeleteFlags nFlags, bool bAsLink );
545 
546  // mark of this document
547  void MixMarked(
548  sc::MixDocContext& rCxt, const ScMarkData& rMark, ScPasteFunc nFunction,
549  bool bSkipEmpty, const ScTable* pSrcTab );
550 
551  void MixData(
552  sc::MixDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
553  ScPasteFunc nFunction, bool bSkipEmpty, const ScTable* pSrcTab );
554 
555  void CopyData( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
556  SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab );
557 
558  void CopyScenarioFrom( const ScTable* pSrcTab );
559  void CopyScenarioTo( const ScTable* pDestTab ) const;
560  bool TestCopyScenarioTo( const ScTable* pDestTab ) const;
561  void MarkScenarioIn(ScMarkData& rMark, ScScenarioFlags nNeededBits) const;
562  bool HasScenarioRange( const ScRange& rRange ) const;
564  const ScRangeList* GetScenarioRanges() const;
565 
566  void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const;
567 
568  void InvalidateTableArea();
569  void InvalidatePageBreaks();
570 
571  bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty
572  bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow, bool bCalcHiddens = false) const;
573  bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bCalcHiddens = false) const;
574  bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow,
575  SCCOL& rEndCol ) const;
576  bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol,
577  SCROW& rEndRow, bool bNotes ) const;
578 
579  bool GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const;
580 
581  void ExtendPrintArea( OutputDevice* pDev,
582  SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
583 
584  void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
585  bool bIncludeOld, bool bOnlyDown ) const;
586 
587  bool GetDataAreaSubrange( ScRange& rRange ) const;
588 
589  bool ShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, SCROW& rStartRow,
590  SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly,
591  bool bStickyTopRow, bool bStickyLeftCol, bool bConsiderCellNotes,
592  bool bConsiderCellDrawObjects, bool bConsiderCellPatterns ) const;
593 
594  SCROW GetLastDataRow( SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, bool bConsiderCellNotes = false,
595  bool bConsiderCellDrawObjects = false,
596  bool bConsiderCellPatterns = false ) const;
597 
598  SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
599  SCCOL nEndCol, SCROW nEndRow, ScDirection eDir ) const;
600 
601  void FindAreaPos( SCCOL& rCol, SCROW& rRow, ScMoveDirection eDirection ) const;
602  void GetNextPos( SCCOL& rCol, SCROW& rRow, SCCOL nMovX, SCROW nMovY,
603  bool bMarked, bool bUnprotected, const ScMarkData& rMark, SCCOL nTabStartCol ) const;
604 
605  bool SkipRow( const SCCOL rCol, SCROW& rRow, const SCROW nMovY, const ScMarkData& rMark,
606  const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected ) const;
607  void LimitChartArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
608 
609  bool HasData( SCCOL nCol, SCROW nRow ) const;
610  bool HasStringData( SCCOL nCol, SCROW nRow ) const;
611  bool HasValueData( SCCOL nCol, SCROW nRow ) const;
612  bool HasStringCells( SCCOL nStartCol, SCROW nStartRow,
613  SCCOL nEndCol, SCROW nEndRow ) const;
614 
615  sc::MultiDataCellState HasMultipleDataCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
616 
617  FormulaError GetErrCode( const ScAddress& rPos ) const
618  {
619  return IsColRowValid(rPos.Col(),rPos.Row()) ?
620  aCol[rPos.Col()].GetErrCode( rPos.Row() ) :
621  FormulaError::NONE;
622  }
623 
624  void ResetChanged( const ScRange& rRange );
625 
628  void SetDirty( const ScRange&, ScColumn::BroadcastMode );
629  void SetDirtyAfterLoad();
630  void SetDirtyVar();
631  void SetTableOpDirty( const ScRange& );
632  void CalcAll();
633  void CalcAfterLoad( sc::CompileFormulaContext& rCxt, bool bStartListening );
635  void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress );
636 
642  bool BroadcastBroadcasters( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint& rHint );
643 
645 
646  void UpdateReference(
647  sc::RefUpdateContext& rCxt, ScDocument* pUndoDoc = nullptr,
648  bool bIncludeDraw = true, bool bUpdateNoteCaptionPos = true );
649 
650  void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
651  SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
652  SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos = true );
653 
654  void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
655  ScDocument* pUndoDoc );
656 
657  void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
658 
661  void UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt, SCTAB nTabNo, ScProgress* pProgress );
662  void UpdateCompile( bool bForceIfNameInUse = false );
663  void SetTabNo(SCTAB nNewTab);
664  void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
665  sc::UpdatedRangeNames& rIndexes) const;
666  void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
667  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd,
668  double nStepValue, double nMaxValue, ScProgress* pProgress);
669  OUString GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
670 
671  void UpdateSelectionFunction( ScFunctionData& rData, const ScMarkData& rMark );
672 
673  void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
674  sal_uInt16 nFormatNo );
675  void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData& rData);
676  bool SearchAndReplace(
677  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark,
678  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
679 
680  void FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2 );
681 
682  bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask ) const;
683  bool HasAttribSelection( const ScMarkData& rMark, HasAttrFlags nMask ) const;
684  bool IsMerged( SCCOL nCol, SCROW nRow ) const;
685  bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
686  SCCOL& rEndCol, SCROW& rEndRow,
687  bool bRefresh );
688  void SetMergedCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
689 
690  const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich ) const;
691  template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, TypedWhichId<T> nWhich ) const
692  {
693  return static_cast<const T*>(GetAttr(nCol, nRow, sal_uInt16(nWhich)));
694  }
695  const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow ) const;
696  const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
697 
698  sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& rPos ) const;
699  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow ) const;
700  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
701 
702  void SetNumberFormat( SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat );
703 
705  const ScMarkData& rMark, bool bDeep ) const;
706  void MergePatternArea( ScMergePatternState& rState, SCCOL nCol1, SCROW nRow1,
707  SCCOL nCol2, SCROW nRow2, bool bDeep ) const;
708  void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner,
709  ScLineFlags& rFlags,
710  SCCOL nStartCol, SCROW nStartRow,
711  SCCOL nEndCol, SCROW nEndRow ) const;
712  void ApplyBlockFrame(const SvxBoxItem& rLineOuter,
713  const SvxBoxInfoItem* pLineInner,
714  SCCOL nStartCol, SCROW nStartRow,
715  SCCOL nEndCol, SCROW nEndRow );
716 
717  void ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
718  void ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
719  void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
720  const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = nullptr,
721  bool* const pIsChanged = nullptr );
722 
723  void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr );
724  const ScPatternAttr* SetPattern( SCCOL nCol, SCROW nRow, std::unique_ptr<ScPatternAttr> );
725  void SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
727  const ScPatternAttr& rPattern, SvNumFormatType nNewType );
728  void AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
729  void RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
730  void SetPatternAreaCondFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
731  const ScPatternAttr& rAttr, const ScCondFormatIndexes& rCondFormatIndexes );
732 
733  void ApplyStyle( SCCOL nCol, SCROW nRow, const ScStyleSheet* rStyle );
734  void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet& rStyle );
735  void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark);
736  void ApplySelectionLineStyle( const ScMarkData& rMark,
737  const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
738 
739  const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow ) const;
740  const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, bool& rFound ) const;
741  const ScStyleSheet* GetAreaStyle( bool& rFound, SCCOL nCol1, SCROW nRow1,
742  SCCOL nCol2, SCROW nRow2 ) const;
743 
744  void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, bool bRemoved,
745  OutputDevice* pDev,
746  double nPPTX, double nPPTY,
747  const Fraction& rZoomX, const Fraction& rZoomY );
748 
749  bool IsStyleSheetUsed( const ScStyleSheet& rStyle ) const;
750 
751  bool ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
752  bool RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
753 
754  void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = nullptr, bool* const pIsChanged = nullptr );
755  void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool bBroadcast = true );
756 
757  void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
758  void ChangeSelectionIndent( bool bIncrement, const ScMarkData& rMark );
759 
760  const ScRange* GetRepeatColRange() const { return pRepeatColRange.get(); }
761  const ScRange* GetRepeatRowRange() const { return pRepeatRowRange.get(); }
762  void SetRepeatColRange( std::unique_ptr<ScRange> pNew );
763  void SetRepeatRowRange( std::unique_ptr<ScRange> pNew );
764 
765  sal_uInt16 GetPrintRangeCount() const { return static_cast< sal_uInt16 >( aPrintRanges.size() ); }
766  const ScRange* GetPrintRange(sal_uInt16 nPos) const;
768  bool IsPrintEntireSheet() const { return bPrintEntireSheet; }
769 
771  void ClearPrintRanges();
773  void AddPrintRange( const ScRange& rNew );
775  void SetPrintEntireSheet();
776 
777  void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const;
778  void RestorePrintRanges( const ScPrintSaverTab& rSaveTab );
779 
780  sal_uInt16 GetOptimalColWidth( SCCOL nCol, OutputDevice* pDev,
781  double nPPTX, double nPPTY,
782  const Fraction& rZoomX, const Fraction& rZoomY,
783  bool bFormula, const ScMarkData* pMarkData,
784  const ScColWidthParam* pParam );
785  bool SetOptimalHeight(
786  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi,
787  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
788 
790  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow,
791  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
792 
793  tools::Long GetNeededSize( SCCOL nCol, SCROW nRow,
794  OutputDevice* pDev,
795  double nPPTX, double nPPTY,
796  const Fraction& rZoomX, const Fraction& rZoomY,
797  bool bWidth, bool bTotalSize,
798  bool bInPrintTwips = false);
799  void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
800  void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
801  void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
802  bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
803  double nPPTY, bool bApi );
804 
812  void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight );
813 
814  // nPPT to test for modification
815  void SetManualHeight( SCROW nStartRow, SCROW nEndRow, bool bManual );
816 
817  sal_uInt16 GetColWidth( SCCOL nCol, bool bHiddenAsZero = true ) const;
818  sal_uLong GetColWidth( SCCOL nStartCol, SCCOL nEndCol ) const;
819  sal_uInt16 GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
820  sal_uLong GetRowHeight( SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true ) const;
821  sal_uLong GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong* pnMaxHeight = nullptr ) const;
822  sal_uLong GetColOffset( SCCOL nCol, bool bHiddenAsZero = true ) const;
823  sal_uLong GetRowOffset( SCROW nRow, bool bHiddenAsZero = true ) const;
824 
833  SCROW GetRowForHeight(sal_uLong nHeight) const;
834 
835  sal_uInt16 GetOriginalWidth( SCCOL nCol ) const;
836  sal_uInt16 GetOriginalHeight( SCROW nRow ) const;
837 
838  sal_uInt16 GetCommonWidth( SCCOL nEndCol ) const;
839 
840  SCROW GetHiddenRowCount( SCROW nRow ) const;
841 
842  void ShowCol(SCCOL nCol, bool bShow);
843  void ShowRow(SCROW nRow, bool bShow);
844  void DBShowRow(SCROW nRow, bool bShow);
845 
846  void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
847  void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
848 
849  void SetRowFlags( SCROW nRow, CRFlags nNewFlags );
850  void SetRowFlags( SCROW nStartRow, SCROW nEndRow, CRFlags nNewFlags );
851 
853  SCROW GetLastFlaggedRow() const;
854 
856  SCCOL GetLastChangedCol() const;
858  SCROW GetLastChangedRow() const;
859 
860  bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const;
861  bool IsDataFiltered(const ScRange& rRange) const;
862  CRFlags GetColFlags( SCCOL nCol ) const;
863  CRFlags GetRowFlags( SCROW nRow ) const;
864 
866  { return pRowFlags.get(); }
867 
868  bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, bool bShow );
869  bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, bool bShow );
870 
871  void UpdatePageBreaks( const ScRange* pUserArea );
872  void RemoveManualBreaks();
873  bool HasManualBreaks() const;
874  void SetRowManualBreaks( const ::std::set<SCROW>& rBreaks );
875  void SetColManualBreaks( const ::std::set<SCCOL>& rBreaks );
876 
877  void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
878  void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
879  bool HasRowPageBreak(SCROW nRow) const;
880  bool HasColPageBreak(SCCOL nCol) const;
881  bool HasRowManualBreak(SCROW nRow) const;
882  bool HasColManualBreak(SCCOL nCol) const;
883 
894  SCROW GetNextManualBreak(SCROW nRow) const;
895 
896  void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow);
897  void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual);
898  void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual);
899  void SetRowBreak(SCROW nRow, bool bPage, bool bManual);
900  void SetColBreak(SCCOL nCol, bool bPage, bool bManual);
901  css::uno::Sequence<
902  css::sheet::TablePageBreakData> GetRowBreakData() const;
903 
904  bool RowHidden(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
905  bool RowHiddenLeaf(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
906  bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
907  bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
908  bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
909  void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
910  void CopyColHidden(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
911  void CopyRowHidden(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
912  void CopyRowHeight(const ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
913  SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
914  SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
915  SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
916  sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true) const;
917 
918  SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
919 
920  bool RowFiltered(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
921  bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
922  bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
923  void CopyColFiltered(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
924  void CopyRowFiltered(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
925  void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
926  void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
927  SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
928  SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
929  SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
930 
931  bool IsManualRowHeight(SCROW nRow) const;
932 
933  bool HasUniformRowHeight( SCROW nRow1, SCROW nRow2 ) const;
934 
935  void SyncColRowFlags();
936 
937  void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
938  void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
939 
941  void Sort(
942  const ScSortParam& rSortParam, bool bKeepQuery, bool bUpdateRefs,
943  ScProgress* pProgress, sc::ReorderParam* pUndo );
944 
945  void Reorder( const sc::ReorderParam& rParam );
946 
947  bool ValidQuery(
948  SCROW nRow, const ScQueryParam& rQueryParam, const ScRefCellValue* pCell = nullptr,
949  bool* pbTestEqualCondition = nullptr, const ScInterpreterContext* pContext = nullptr,
950  sc::TableColumnBlockPositionSet* pBlockPos = nullptr );
951  void TopTenQuery( ScQueryParam& );
952  void PrepareQuery( ScQueryParam& rQueryParam );
953  SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub);
954  bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
955 
956  void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries& rFilterEntries );
957  void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, ScFilterEntries& rFilterEntries, bool bFiltering );
958  [[nodiscard]]
959  bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set<ScTypedStrData>& rStrings, bool bLimit);
960 
961  bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
962  bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
963 
964  sal_Int32 GetMaxStringLen( SCCOL nCol,
965  SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const;
966  sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision,
967  SCCOL nCol,
968  SCROW nRowStart, SCROW nRowEnd ) const;
969 
970  bool IsSortCollatorGlobal() const;
971  void InitSortCollator( const ScSortParam& rPar );
972  void DestroySortCollator();
973  void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true,
974  const ScObjectHandling eObjectHandling = ScObjectHandling::RecalcPosMode);
975 
976  void SetRangeName(std::unique_ptr<ScRangeName> pNew);
977  ScRangeName* GetRangeName() const;
978 
980  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
981 
983  sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt );
984 
986  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
987 
991 
992  void DeleteConditionalFormat(sal_uLong nOldIndex);
993 
994  sal_uLong AddCondFormat( std::unique_ptr<ScConditionalFormat> pNew );
995 
996  SvtScriptType GetScriptType( SCCOL nCol, SCROW nRow ) const;
997  void SetScriptType( SCCOL nCol, SCROW nRow, SvtScriptType nType );
998  void UpdateScriptTypes( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 );
999 
1000  SvtScriptType GetRangeScriptType( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1001 
1002  size_t GetFormulaHash( SCCOL nCol, SCROW nRow ) const;
1003 
1006  formula::FormulaTokenRef ResolveStaticReference( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1008  bool HandleRefArrayForParallelism( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef& mxGroup );
1009 #ifdef DBG_UTIL
1010  void AssertNoInterpretNeeded( SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1011 #endif
1012 
1013  void SplitFormulaGroups( SCCOL nCol, std::vector<SCROW>& rRows );
1014  void UnshareFormulaCells( SCCOL nCol, std::vector<SCROW>& rRows );
1015  void RegroupFormulaCells( SCCOL nCol );
1016 
1017  ScRefCellValue GetRefCellValue( SCCOL nCol, SCROW nRow );
1019 
1020  SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow );
1021  const SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow ) const;
1022  void DeleteBroadcasters( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1023 
1024  void FillMatrix( ScMatrix& rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool* pPool ) const;
1025 
1026  void InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1027 
1028  void SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen );
1029 
1030  void CalculateInColumnInThread( ScInterpreterContext& rContext, SCCOL nColStart, SCCOL nColEnd,
1031  SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal);
1032  void HandleStuffAfterParallelCalculation( SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter* pInterpreter);
1033 
1042  void StartListeners( sc::StartListeningContext& rCxt, bool bAll );
1043 
1048  void SetDirtyIfPostponed();
1049 
1054  void BroadcastRecalcOnRefMove();
1055 
1056  void TransferCellValuesTo( const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues& rDest );
1057  void CopyCellValuesFrom( const SCCOL nCol, SCROW nRow, const sc::CellValues& rSrc );
1058 
1059  std::unique_ptr<sc::ColumnIterator> GetColumnIterator( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
1060 
1061  bool EnsureFormulaCellResults( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning = false );
1062 
1063  void ConvertFormulaToValue(
1065  const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2,
1066  sc::TableValues* pUndo );
1067 
1068  void SwapNonEmpty(
1069  sc::TableValues& rValues, sc::StartListeningContext& rStartCxt, sc::EndListeningContext& rEndCxt );
1070 
1071  void finalizeOutlineImport();
1072 
1073  void StoreToCache(SvStream& rStrm) const;
1074 
1075  void RestoreFromCache(SvStream& rStrm);
1076 
1077 #if DUMP_COLUMN_STORAGE
1078  void DumpColumnStorage( SCCOL nCol ) const;
1079 #endif
1080 
1087  static void UpdateSearchItemAddressForReplace( const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow );
1088 
1089  ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const;
1090  SCCOL ClampToAllocatedColumns(SCCOL nCol) const { return std::min(nCol, static_cast<SCCOL>(aCol.size() - 1)); }
1091  SCCOL GetAllocatedColumnsCount() const { return aCol.size(); }
1092 
1100  OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType);
1101 
1102 private:
1103 
1104  void FillFormulaVertical(
1105  const ScFormulaCell& rSrcCell,
1106  SCCOLROW& rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1107  ScProgress* pProgress, sal_uLong& rProgress );
1108 
1109  void FillSeriesSimple(
1110  const ScCellValue& rSrcCell, SCCOLROW& rInner, SCCOLROW nIMin, SCCOLROW nIMax,
1111  const SCCOLROW& rCol, const SCCOLROW& rRow, bool bVertical, ScProgress* pProgress, sal_uLong& rProgress );
1112 
1113  void FillAutoSimple(
1114  SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd,
1115  SCCOLROW& rInner, const SCCOLROW& rCol, const SCCOLROW& rRow,
1116  sal_uLong nActFormCnt, sal_uLong nMaxFormCnt,
1117  bool bHasFiltered, bool bVertical, bool bPositive,
1118  ScProgress* pProgress, sal_uLong& rProgress );
1119 
1120  void FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1121  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd,
1122  FillDateCmd eFillDateCmd,
1123  double nStepValue, double nMaxValue, sal_uInt16 nMinDigits,
1124  bool bAttribs, ScProgress* pProgress,
1125  bool bSkipOverlappedCells = false,
1126  std::vector<sal_Int32>* pNonOverlappedCellIdx = nullptr);
1127  void FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1128  FillCmd& rCmd, FillDateCmd& rDateCmd,
1129  double& rInc, sal_uInt16& rMinDigits,
1130  ScUserListData*& rListData, sal_uInt16& rListIndex,
1131  bool bHasFiltered, bool& rSkipOverlappedCells,
1132  std::vector<sal_Int32>& rNonOverlappedCellIdx );
1133  void FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1134  sal_uLong nFillCount, FillDir eFillDir, ScProgress* pProgress );
1135 
1136  bool ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
1137  bool bMarked, bool bUnprotected ) const;
1138 
1139  void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1140  const ScPatternAttr& rAttr, sal_uInt16 nFormatNo);
1141  void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData);
1142  void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData);
1143  bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition& rBlockPos, SCROW nRow,
1144  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1145  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1146  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1147  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1148  SCCOL nLastCol, SCROW nLastRow,
1149  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1150  bool SearchAll(const SvxSearchItem& rSearchItem, const ScMarkData& rMark,
1151  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1152  bool Replace(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1153  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1154  bool ReplaceAll(
1155  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1156  OUString& rUndoStr, ScDocument* pUndoDoc);
1157 
1158  bool SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1159  const ScMarkData& rMark);
1160  bool ReplaceStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1161  const ScMarkData& rMark, bool bIsUndo);
1162  bool SearchAllStyle(
1163  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges);
1164  bool ReplaceAllStyle(
1165  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1166  ScDocument* pUndoDoc);
1168  const SvxSearchItem& rSearchItem,
1169  SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1170  OUString& rUndoStr, ScDocument* pUndoDoc);
1171  bool SearchRangeForEmptyCell(const ScRange& rRange,
1172  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1173  OUString& rUndoStr);
1175  const ScRange& rRange, const SvxSearchItem& rSearchItem,
1176  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1177 
1178  // use the global sort parameter:
1179  bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const;
1180  static void DecoladeRow( ScSortInfoArray*, SCROW nRow1, SCROW nRow2 );
1181  short CompareCell(
1182  sal_uInt16 nSort,
1183  ScRefCellValue& rCell1, SCCOL nCell1Col, SCROW nCell1Row,
1184  ScRefCellValue& rCell2, SCCOL nCell2Col, SCROW nCell2Row ) const;
1185  short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1186  short Compare( ScSortInfoArray*, SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1187  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray( const sc::ReorderParam& rParam );
1188  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray(
1189  const ScSortParam& rSortParam, SCCOLROW nInd1, SCCOLROW nInd2,
1190  bool bKeepQuery, bool bUpdateRefs );
1191  void QuickSort( ScSortInfoArray*, SCCOLROW nLo, SCCOLROW nHi);
1192  void SortReorderByColumn( const ScSortInfoArray* pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress* pProgress );
1193 
1194  void SortReorderByRow( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1195  void SortReorderByRowRefUpdate( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1196 
1197  bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1198  bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1199  void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString& rStr);
1200 
1201  bool RefVisible(const ScFormulaCell* pCell);
1202 
1203  bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const;
1204 
1205  void IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillDateCmd eCmd);
1206  void FillFormula(
1207  const ScFormulaCell* pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast );
1208  void UpdateInsertTabAbs(SCTAB nNewPos);
1209  bool GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, bool bInSel,
1210  const ScMarkData& rMark) const;
1211  bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const;
1212  void TestTabRefAbs(SCTAB nTable) const;
1215 
1216  void StartListening( const ScAddress& rAddress, SvtListener* pListener );
1217  void EndListening( const ScAddress& rAddress, SvtListener* pListener );
1218  void StartListening( sc::StartListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1219  void EndListening( sc::EndListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1220 
1221  void AttachFormulaCells( sc::StartListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1222  void DetachFormulaCells( sc::EndListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1223 
1224  void SetLoadingMedium(bool bLoading);
1225 
1226  SCSIZE FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
1227  SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
1228  const ScPatternAttr* pPattern, const SfxItemSet* pCondSet );
1229 
1230  // idle calculation of OutputDevice text width for cell
1231  // also invalidates script type, broadcasts for "calc as shown"
1232  void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo,
1233  bool bNumFormatChanged, bool bBroadcast );
1234 
1235  void SkipFilteredRows(SCROW& rRow, SCROW& rLastNonFilteredRow, bool bForward);
1236 
1241  void MaybeAddExtraColumn(SCCOL& rCol, SCROW nRow, OutputDevice* pDev, double nPPTX, double nPPTY);
1242 
1243  void CopyPrintRange(const ScTable& rTable);
1244 
1245  SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const;
1246 
1247  SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const;
1248 
1249  // Clipboard transpose for notes
1250  void TransposeColNotes(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2);
1251 
1252  ScColumn* FetchColumn( SCCOL nCol );
1253  const ScColumn* FetchColumn( SCCOL nCol ) const;
1254 
1256  sc::EndListeningContext& rCxt, SCCOL nCol, SCROW nRow, std::vector<ScAddress>* pGroupPos );
1257 
1259  sc::EndListeningContext& rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
1260  std::vector<ScAddress>* pGroupPos );
1261 
1262  void EndListeningGroup( sc::EndListeningContext& rCxt, const SCCOL nCol, SCROW nRow );
1263  void SetNeedsListeningGroup( SCCOL nCol, SCROW nRow );
1264 
1266  OString dumpColumnRowSizes(bool bColumns);
1268  OString dumpHiddenFiltered(bool bColumns, bool bHidden);
1270  OString dumpColumnRowGroups(bool bColumns) const;
1271 
1272  SCCOL GetLOKFreezeCol() const;
1273  SCROW GetLOKFreezeRow() const;
1274  bool SetLOKFreezeCol(SCCOL nFreezeCol);
1275  bool SetLOKFreezeRow(SCROW nFreezeRow);
1276 
1281  {
1282  static constexpr SCROW ROW_NOT_FOUND = -1;
1283 
1284  public:
1285  explicit VisibleDataCellIterator(const ScDocument& rDoc, ScFlatBoolRowSegments& rRowSegs, ScColumn& rColumn);
1287 
1295  ScRefCellValue reset(SCROW nRow);
1296 
1302  ScRefCellValue next();
1303 
1310  SCROW getRow() const { return mnCurRow;}
1311 
1312  private:
1319  };
1320 
1321 };
1322 
1323 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OUString GetAutoFillPreview(const ScRange &rSource, SCCOL nEndX, SCROW nEndY)
Definition: table4.cxx:1212
formula::FormulaTokenRef ResolveStaticReference(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2433
void FindMaxRotCol(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2)
Definition: table2.cxx:2226
Matrix data type that can store values of mixed types.
Definition: scmatrix.hxx:112
void SetFormula(SCCOL nCol, SCROW nRow, const ScTokenArray &rArray, formula::FormulaGrammar::Grammar eGram)
Definition: table2.cxx:1546
void SetMergedCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:2122
void PrepareQuery(ScQueryParam &rQueryParam)
Definition: table3.cxx:3102
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
Definition: table2.cxx:1989
bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set< ScTypedStrData > &rStrings, bool bLimit)
Definition: table3.cxx:3537
void CopyUpdated(const ScTable *pPosTab, ScTable *pDestTab) const
Definition: table2.cxx:1378
svl::SharedString GetSharedString(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1583
constexpr double nPPTY
bool TestCopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1467
SCTAB nTab
Definition: table.hxx:203
const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2052
void UpdatePageBreaks(const ScRange *pUserArea)
Definition: table5.cxx:52
sal_Int64 GetHashCode() const
Definition: table1.cxx:346
bool SetRowHeightRange(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight, double nPPTY, bool bApi)
Definition: table2.cxx:3046
bool bStreamValid
Definition: table.hxx:238
SCCOL GetLastChangedCol() const
Definition: table2.cxx:3613
Iterator(const std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn >>>::const_iterator &colIter)
Definition: table.hxx:131
bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3436
void Fill(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, ScProgress *pProgress)
Definition: table4.cxx:2489
void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries &rFilterEntries)
Definition: table3.cxx:3510
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
Definition: types.hxx:43
OUString aComment
Definition: table.hxx:160
bool ColFiltered(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:853
const Iterator maEnd
Definition: table.hxx:148
bool operator==(const Iterator &rOther) const
Definition: table.hxx:136
ScFormulaCell * SetFormulaCell(SCCOL nCol, SCROW nRow, ScFormulaCell *pCell)
Takes ownership of pCell.
Definition: table2.cxx:1564
void ApplyStyleArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet &rStyle)
Definition: table2.cxx:2734
bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask) const
Definition: table2.cxx:2072
bool SearchCell(const SvxSearchItem &rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:50
void SortReorderByRow(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1017
void TransferCellValuesTo(const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues &rDest)
Definition: table7.cxx:188
void SetActiveScenario(bool bSet)
Definition: table.hxx:354
bool ReplaceStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, bool bIsUndo)
Definition: table6.cxx:706
todo: It should be possible to have MarkArrays for each table, in order to enable "search all" across...
Definition: markdata.hxx:42
void UnlockTable()
Definition: table2.cxx:2588
sal_uLong GetWeightedCount() const
Definition: table3.cxx:3552
bool HasBlockMatrixFragment(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2303
void CompileAll(sc::CompileFormulaContext &rCxt)
Definition: table2.cxx:1954
Store parameters used in the ScDocument::SetString() method.
Definition: stringutil.hxx:34
~ScTable() COVERITY_NOEXCEPT_FALSE
Definition: table1.cxx:317
bool HasRowManualBreak(SCROW nRow) const
Definition: table5.cxx:378
void SetLink(ScLinkMode nMode, const OUString &rDoc, const OUString &rFlt, const OUString &rOpt, const OUString &rTab, sal_uLong nRefreshDelay)
Definition: table1.cxx:412
void ForgetNoteCaptions(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData)
Definition: table2.cxx:1703
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
Definition: table2.cxx:1876
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2850
void SetRowFlags(SCROW nRow, CRFlags nNewFlags)
Definition: table2.cxx:3547
bool IsBlockEmpty(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes) const
Definition: table2.cxx:2137
void SetRowHeight(SCROW nRow, sal_uInt16 nNewHeight)
Definition: table2.cxx:2985
void DeleteConditionalFormat(sal_uLong nOldIndex)
Definition: table1.cxx:2603
void DestroySortCollator()
Definition: table3.cxx:634
std::unique_ptr< ScFlatUInt16RowSegments > mpRowHeights
Definition: table.hxx:180
bool ReplaceAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:580
HasAttrFlags
Definition: global.hxx:192
void SetPatternAreaCondFormat(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &rAttr, const ScCondFormatIndexes &rCondFormatIndexes)
Definition: table2.cxx:2710
void InvalidateTextWidth(const ScAddress *pAdrFrom, const ScAddress *pAdrTo, bool bNumFormatChanged, bool bBroadcast)
Definition: table5.cxx:1206
SCROW Row() const
Definition: address.hxx:261
Simple container to keep track of sheet - column pair.
Definition: columnset.hxx:23
void SetValues(const SCCOL nCol, const SCROW nRow, const std::vector< double > &rVals)
Definition: table7.cxx:180
const ScRange * GetPrintRange(sal_uInt16 nPos) const
Definition: table1.cxx:2254
SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const
Definition: table1.cxx:1230
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
Definition: table1.cxx:1876
bool bLoadingRTL
Definition: table.hxx:233
Size GetPageSize() const
Definition: table5.cxx:1102
FillDir
Definition: global.hxx:317
void SetName(const OUString &rNewName)
Definition: table1.cxx:351
void TestTabRefAbs(SCTAB nTable) const
Definition: table4.cxx:2837
SCCOL nTableAreaX
Definition: table.hxx:198
bool GetPrintArea(SCCOL &rEndCol, SCROW &rEndRow, bool bNotes, bool bCalcHiddens=false) const
Definition: table1.cxx:577
bool GetNextSpellingCell(SCCOL &rCol, SCROW &rRow, bool bInSel, const ScMarkData &rMark) const
Definition: table4.cxx:2804
void InitSortCollator(const ScSortParam &rPar)
Definition: table3.cxx:617
void UpdateScriptTypes(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2)
Definition: table7.cxx:245
bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const
Definition: table2.cxx:3526
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Definition: table2.cxx:2499
Provides methods to allow direct shifting of document content without broadcasting or shifting of bro...
SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:954
void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight)
Set specified row height to specified ranges.
Definition: table2.cxx:3102
void PageStyleModified(const OUString &rNewName)
Definition: table5.cxx:1200
void SortReorderByColumn(const ScSortInfoArray *pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress *pProgress)
Definition: table3.cxx:875
void SetScenario(bool bFlag)
Definition: table1.cxx:407
bool mbForceBreaks
Definition: table.hxx:245
void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:400
SCTAB GetTab() const
Definition: table.hxx:280
size_t GetNoteCount(SCCOL nCol) const
Definition: table2.cxx:1681
::std::set< SCROW > maRowPageBreaks
Definition: table.hxx:189
void ApplyPattern(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:2647
ScColumn * FetchColumn(SCCOL nCol)
Definition: table2.cxx:1089
const ScSheetEvents * GetSheetEvents() const
Definition: table.hxx:308
sheet protection state container
void InterpretDirtyCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table1.cxx:2544
ScObjectHandling
Definition: drwlayer.hxx:89
void SetScenarioColor(const Color &rNew)
Definition: table.hxx:349
bool HasFormulaCell(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:293
const Iterator maBegin
Definition: table.hxx:147
bool IsPendingRowHeights() const
Definition: table.hxx:333
std::unique_ptr< ScPostIt > ReleaseNote(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1673
void SetScriptType(SCCOL nCol, SCROW nRow, SvtScriptType nType)
Definition: table1.cxx:2399
Think of this as a mini-ScColumn like storage that only stores cell values in a column.
Definition: cellvalues.hxx:40
ScScenarioFlags
Definition: global.hxx:235
void StartListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1123
sal_uInt16 GetPrintRangeCount() const
Definition: table.hxx:765
void SetPrintEntireSheet()
Marks the specified sheet to be printed completely.
Definition: table1.cxx:2245
void CopyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab)
Definition: table2.cxx:3835
void FillAutoSimple(SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd, SCCOLROW &rInner, const SCCOLROW &rCol, const SCCOLROW &rRow, sal_uLong nActFormCnt, sal_uLong nMaxFormCnt, bool bHasFiltered, bool bVertical, bool bPositive, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1760
SCCOL size() const
ScSortParam aSortParam
Definition: table.hxx:210
sal_uIntPtr sal_uLong
long Long
bool TestInsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize) const
Definition: table2.cxx:135
Context for reference update during shifting, moving or copying of cell ranges.
void CopyRowFiltered(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:901
SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2391
CellType GetCellType(const ScAddress &rPos) const
Definition: table.hxx:457
SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const
Definition: table1.cxx:1206
void SetCalcNotification(bool bSet)
Definition: table2.cxx:130
void SetPageSize(const Size &rSize)
Definition: table5.cxx:1074
void GetString(SCCOL nCol, SCROW nRow, OUString &rString, const ScInterpreterContext *pContext=nullptr) const
Definition: table2.cxx:1603
bool GetPrintAreaVer(SCCOL nStartCol, SCCOL nEndCol, SCROW &rEndRow, bool bNotes) const
Definition: table1.cxx:707
void DetachFormulaCells(sc::EndListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1133
std::unique_ptr< ScFlatBoolColSegments > mpFilteredCols
Definition: table.hxx:186
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
Definition: table2.cxx:2791
bool HasScenarioRange(const ScRange &rRange) const
Definition: table2.cxx:1425
bool IsVisible() const
Definition: table.hxx:311
ScLinkMode nLinkMode
Definition: table.hxx:167
CommentCaptionState GetAllNoteCaptionsState(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes)
Definition: table2.cxx:1729
sal_uInt16 nLockCount
Definition: table.hxx:218
ScRefCellValue reset(SCROW nRow)
Set the start row position.
Definition: table1.cxx:2291
SCROW getRow() const
Get the current row position.
Definition: table.hxx:1310
void SetFormulaResults(SCCOL nCol, SCROW nRow, const double *pResults, size_t nLen)
Definition: table1.cxx:2551
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Definition: table3.cxx:3592
OUString aLinkFlt
Definition: table.hxx:163
const SCCOL * pointer
Definition: table.hxx:128
Store position data for column array storage.
bool mbPageBreaksValid
Definition: table.hxx:244
Stores cell values for multiple tables.
Definition: cellvalues.hxx:85
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
Definition: table2.cxx:1977
sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:86
void GetFirstDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1798
SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const
Definition: table5.cxx:811
ScFormulaVectorState GetFormulaVectorState(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2425
void SetManualHeight(SCROW nStartRow, SCROW nEndRow, bool bManual)
Definition: table2.cxx:3113
SCSIZE Query(const ScQueryParam &rQueryParam, bool bKeepSub)
Definition: table3.cxx:3107
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden)
Definition: table5.cxx:638
const OUString & GetLinkDoc() const
Definition: table.hxx:359
This is very similar to ScCellValue, except that it references the original value instead of copying ...
Definition: cellvalue.hxx:103
void UpdateReference(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc=nullptr, bool bIncludeDraw=true, bool bUpdateNoteCaptionPos=true)
Definition: table1.cxx:1747
bool bVisible
Definition: table.hxx:237
void CopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1396
static void DecoladeRow(ScSortInfoArray *, SCROW nRow1, SCROW nRow2)
Definition: table3.cxx:1681
void SetCodeName(const OUString &rNewName)
Definition: table.hxx:377
void SetLoadingRTL(bool bSet)
Definition: table1.cxx:392
void UndoToTable(sc::CopyToDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nFlags, bool bMarked, ScTable *pDestTab)
Definition: table2.cxx:1326
void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam &rParam, ScFilterEntries &rFilterEntries, bool bFiltering)
Definition: table3.cxx:3517
std::reverse_iterator< Iterator > rbegin()
Definition: table.hxx:144
void DeleteRow(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize, bool *pUndoOutline, std::vector< ScAddress > *pGroupPos)
Definition: table2.cxx:196
sal_uInt16 GetOriginalHeight(SCROW nRow) const
Definition: table2.cxx:3357
Accessor class to ScDocument.
void RemoveEditTextCharAttribs(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:1642
void SkipFilteredRows(SCROW &rRow, SCROW &rLastNonFilteredRow, bool bForward)
Definition: table6.cxx:281
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2781
void MixData(sc::MixDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:777
void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered)
Definition: table5.cxx:923
bool HasData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1824
SCCOL operator*() const
Definition: table.hxx:138
void SetDirtyAfterLoad()
Definition: table2.cxx:1905
void RemoveSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1862
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:2619
void CompileHybridFormula(sc::StartListeningContext &rStartListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:238
void LimitChartArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:1181
void UpdateSelectionFunction(ScFunctionData &rData, const ScMarkData &rMark)
Definition: table3.cxx:3601
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
Definition: table2.cxx:2765
std::unique_ptr< ScRangeName > mpRangeName
Definition: table.hxx:225
void RestoreFromCache(SvStream &rStrm)
Definition: table7.cxx:474
SCROW GetRowForHeight(sal_uLong nHeight) const
Get the last row such that the height of row 0 to the end row is as high as possible without exceedin...
Definition: table2.cxx:3983
std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn > > >::const_iterator maColIter
Definition: table.hxx:123
SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:744
SCROW nTableAreaVisibleY
Definition: table.hxx:201
bool bTableAreaVisibleValid
Definition: table.hxx:236
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...
Definition: table1.cxx:2079
void SetRepeatColRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2206
void ApplyAttr(SCCOL nCol, SCROW nRow, const SfxPoolItem &rAttr)
Definition: table2.cxx:2925
bool HasRowHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3473
void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTransClip, InsertDeleteFlags nFlags, bool bAsLink)
Definition: table2.cxx:895
ScOutlineTable * GetOutlineTable()
Definition: table.hxx:282
ScRangeVec aPrintRanges
Definition: table.hxx:213
exports com.sun.star. sheet
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:231
const ScDocument & mrDocument
Definition: table.hxx:1313
void MarkScenarioIn(ScMarkData &rMark, ScScenarioFlags nNeededBits) const
Definition: table2.cxx:1414
Row-wise value iterator.
Definition: dociter.hxx:478
void FillFormula(const ScFormulaCell *pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast)
Definition: table4.cxx:748
bool SearchAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges)
Definition: table6.cxx:731
void FillPrintSaver(ScPrintSaverTab &rSaveTab) const
Definition: table1.cxx:2259
bool ValidRow(SCROW nRow) const
Definition: table.hxx:330
void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:412
void StartListeners(sc::StartListeningContext &rCxt, bool bAll)
Either start all formula cells as listeners unconditionally, or start those that are marked "needs li...
Definition: table2.cxx:1105
void SetStreamValid(bool bSet, bool bIgnoreLock=false)
Definition: table1.cxx:374
ScColumn & CreateColumnIfNotExists(const SCCOL nScCol) const
Definition: table.hxx:284
void SetRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:442
void AttachFormulaCells(sc::StartListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1125
Store arbitrary cell value of any kind.
Definition: cellvalue.hxx:35
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table7.cxx:343
void TransposeColNotes(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table2.cxx:1003
void CalculateInColumnInThread(ScInterpreterContext &rContext, SCCOL nColStart, SCCOL nColEnd, SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal)
Definition: table1.cxx:2559
void ResetChanged(const ScRange &rRange)
Definition: table2.cxx:1995
sal_uLong GetColOffset(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:4050
static constexpr SCROW ROW_NOT_FOUND
Definition: table.hxx:1282
Stores individual user-defined sort list.
Definition: userlist.hxx:32
void SetNumberFormat(SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat)
Definition: table2.cxx:2044
std::reverse_iterator< Iterator > rend()
Definition: table.hxx:145
void Reorder(const sc::ReorderParam &rParam)
Definition: table3.cxx:1763
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)
Definition: table1.cxx:1725
bool IsBlockEditable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2415
void InsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize)
Definition: table2.cxx:148
bool ValidNextPos(SCCOL nCol, SCROW nRow, const ScMarkData &rMark, bool bMarked, bool bUnprotected) const
Definition: table1.cxx:1355
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 ...
Definition: address.hxx:44
void SetTableOpDirty(const ScRange &)
Definition: table2.cxx:1895
void finalizeOutlineImport()
Definition: table7.cxx:450
void SetAnonymousDBData(std::unique_ptr< ScDBData > pDBData)
Definition: table1.cxx:2373
sal_Int32 SCCOLROW
a type capable of holding either SCCOL or SCROW
Definition: types.hxx:23
Additional class containing cell annotation data.
Definition: postit.hxx:159
void FillMatrix(ScMatrix &rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool *pPool) const
Definition: table1.cxx:2537
void SetColManualBreaks(const ::std::set< SCCOL > &rBreaks)
Definition: table5.cxx:329
void EndListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1131
const ScTableProtection * GetProtection() const
Definition: table5.cxx:1100
const OUString & GetName() const
Definition: table.hxx:370
void GetFormula(SCCOL nCol, SCROW nRow, OUString &rFormula) const
Definition: table2.cxx:1650
sal_uLong GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong *pnMaxHeight=nullptr) const
Definition: table2.cxx:3293
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, bool bShow)
Definition: table2.cxx:3645
FillDateCmd
Definition: global.hxx:342
void SetPageStyle(const OUString &rName)
Definition: table5.cxx:1158
void ConvertFormulaToValue(sc::EndListeningContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, sc::TableValues *pUndo)
Definition: table7.cxx:204
double * GetValueCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1611
void ClearPrintRanges()
Removes all print ranges.
Definition: table1.cxx:2224
void SetColWidthOnly(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:2973
void PreprocessRangeNameUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:224
void HandleStuffAfterParallelCalculation(SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter *pInterpreter)
Definition: table1.cxx:2576
Walk through all cells in an area.
Definition: dociter.hxx:207
ScLinkMode
Definition: global.hxx:224
void CopyToClip(sc::CopyToClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTable)
Definition: table2.cxx:482
void StripHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3693
bool IsLinked() const
Definition: table.hxx:358
SCROW nRepeatStartY
Definition: table.hxx:174
std::input_iterator_tag iterator_category
Definition: table.hxx:125
void CopyColHidden(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:672
short CompareCell(sal_uInt16 nSort, ScRefCellValue &rCell1, SCCOL nCell1Col, SCROW nCell1Row, ScRefCellValue &rCell2, SCCOL nCell2Col, SCROW nCell2Row) const
Definition: table3.cxx:1436
bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden)
Definition: table5.cxx:588
ScRefCellValue next()
Find the next visible data cell position.
Definition: table1.cxx:2335
void SetColWidth(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:2952
bool HasValueData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1840
void CopyCellValuesFrom(const SCCOL nCol, SCROW nRow, const sc::CellValues &rSrc)
Definition: table7.cxx:196
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:316
SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:931
bool HasUniformRowHeight(SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:256
Optimized ColumnSpanSet version that operates on a single ScRange.
void SetValue(SCCOL nCol, SCROW nRow, const double &rVal)
Definition: table2.cxx:1591
void SetPendingRowHeights(bool bSet)
Definition: table1.cxx:382
bool ValidQuery(SCROW nRow, const ScQueryParam &rQueryParam, const ScRefCellValue *pCell=nullptr, bool *pbTestEqualCondition=nullptr, const ScInterpreterContext *pContext=nullptr, sc::TableColumnBlockPositionSet *pBlockPos=nullptr)
Definition: table3.cxx:2736
void FindAreaPos(SCCOL &rCol, SCROW &rRow, ScMoveDirection eDirection) const
Definition: table1.cxx:1293
std::unique_ptr< ScOutlineTable > pOutlineTable
Definition: table.hxx:194
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:3763
bool Search(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:317
void SetRangeName(std::unique_ptr< ScRangeName > pNew)
Definition: table2.cxx:3945
void SetPattern(const ScAddress &rPos, const ScPatternAttr &rAttr)
Definition: table2.cxx:2906
bool RemoveFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:2894
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)
Definition: table1.cxx:426
void SetNeedsListeningGroup(SCCOL nCol, SCROW nRow)
Definition: table7.cxx:335
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
Definition: table1.cxx:1391
void SetRowManualBreaks(const ::std::set< SCROW > &rBreaks)
Definition: table5.cxx:322
const OUString & GetLinkFlt() const
Definition: table.hxx:360
sal_uInt16 GetOriginalWidth(SCCOL nCol) const
Definition: table2.cxx:3165
bool HasSelectionMatrixFragment(const ScMarkData &rMark) const
Definition: table2.cxx:2399
std::unique_ptr< ScBitMaskCompressedArray< SCCOL, CRFlags > > mpColFlags
Definition: table.hxx:182
void SetRepeatRowRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2215
VisibleDataCellIterator(const ScDocument &rDoc, ScFlatBoolRowSegments &rRowSegs, ScColumn &rColumn)
Definition: table1.cxx:2278
bool SearchAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:517
bool IsLayoutRTL() const
Definition: table.hxx:339
std::unique_ptr< utl::TextSearch > pSearchText
Definition: table.hxx:205
bool IsColValid(const SCCOL nScCol) const
Definition: table.hxx:317
constexpr double nPPTX
void CopyOneCellFromClip(sc::CopyFromClipContext &rCxt, const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2, const SCROW nSrcRow, const ScTable *pSrcTab)
Definition: table7.cxx:125
bool SetOutlineTable(const ScOutlineTable *pNewOutline)
Definition: table2.cxx:91
OString dumpColumnRowGroups(bool bColumns) const
Returns list-of-spans representation of the column/row groupings encoded as an OString.
Definition: table7.cxx:577
void FillAuto(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, ScProgress *pProgress)
Definition: table4.cxx:790
std::unique_ptr< ScFlatBoolColSegments > mpHiddenCols
Definition: table.hxx:184
void IncDate(double &rVal, sal_uInt16 &nDayOfMonth, double nStep, FillDateCmd eCmd)
Definition: table4.cxx:1486
bool SetFormulaCells(SCCOL nCol, SCROW nRow, std::vector< ScFormulaCell * > &rCells)
Definition: table2.cxx:1575
ScPasteFunc
Definition: global.hxx:188
sal_uLong GetLinkRefreshDelay() const
Definition: table.hxx:363
void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3484
void ApplyStyle(SCCOL nCol, SCROW nRow, const ScStyleSheet *rStyle)
Definition: table2.cxx:2727
SCSIZE GetEmptyLinesInBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScDirection eDir) const
Definition: table1.cxx:1115
void SetScenarioFlags(ScScenarioFlags nNew)
Definition: table.hxx:353
bool ShrinkToUsedDataArea(bool &o_bShrunk, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bColumnsOnly, bool bStickyTopRow, bool bStickyLeftCol, bool bConsiderCellNotes, bool bConsiderCellDrawObjects, bool bConsiderCellPatterns) const
Definition: table1.cxx:977
void SetDrawPageSize(bool bResetStreamValid=true, bool bUpdateNoteCaptionPos=true, const ScObjectHandling eObjectHandling=ScObjectHandling::RecalcPosMode)
Definition: table2.cxx:3916
OUString aCodeName
Definition: table.hxx:159
bool ColHidden(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:571
bool IsProtected() const
Definition: table5.cxx:1088
SvtScriptType
FillCmd
Definition: global.hxx:325
bool ValidCol(SCCOL nCol) const
Definition: table.hxx:329
Set of column block positions only for one table.
bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3289
const ScFormulaCell * GetFormulaCell(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1658
ScDocument & GetDoc()
Definition: table.hxx:278
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
Definition: table.hxx:325
void AssertNoInterpretNeeded(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2480
bool operator!=(const Iterator &rOther) const
Definition: table.hxx:137
void SetOptimalHeightOnly(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, ScProgress *pOuterProgress=nullptr, sal_uLong nProgressStart=0)
Definition: table1.cxx:489
void SetDirtyVar()
Definition: table2.cxx:1862
CollatorWrapper * pSortCollator
Definition: table.hxx:211
void AddCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2676
void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::UpdatedRangeNames &rIndexes) const
Definition: table1.cxx:1983
std::unique_ptr< ScRange > pRepeatColRange
Definition: table.hxx:215
bool HasColManualBreak(SCCOL nCol) const
Definition: table5.cxx:386
const ScRangeList * GetScenarioRanges() const
Definition: table2.cxx:1453
void CheckVectorizationState()
Definition: table2.cxx:1868
ScMoveDirection
Definition: global.hxx:334
void RestorePrintRanges(const ScPrintSaverTab &rSaveTab)
Definition: table1.cxx:2265
void UpdateInsertTab(sc::RefUpdateInsertTabContext &rCxt)
Definition: table1.cxx:1882
void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2660
sal_Int16 SCCOL
Definition: types.hxx:21
sal_uInt16 GetColWidth(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:3128
InsertDeleteFlags
Definition: global.hxx:157
bool ValidCol(SCCOL nCol) const
Definition: document.hxx:873
const ScRange * GetRepeatRowRange() const
Definition: table.hxx:761
void InvalidateScenarioRanges()
Definition: table2.cxx:1448
static void UpdateSearchItemAddressForReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow)
Replace behaves differently to the Search; adjust the rCol and rRow accordingly.
Definition: table6.cxx:546
OUString aUpperName
Definition: table.hxx:207
bool GetPrintAreaHor(SCROW nStartRow, SCROW nEndRow, SCCOL &rEndCol) const
Definition: table1.cxx:670
void CopyCaptionsToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab, bool bCloneCaption)
Definition: table2.cxx:1312
std::unique_ptr< ScDBData > pDBDataNoName
Definition: table.hxx:224
void UnshareFormulaCells(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:277
void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:427
bool TestRemoveSubTotals(const ScSubTotalParam &rParam)
Definition: table3.cxx:1828
void CreateColumnIfNotExistsImpl(const SCCOL nScCol) const
Definition: table1.cxx:2654
void CopyRowHidden(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:687
ScFlatBoolRowSegments & mrRowSegs
Definition: table.hxx:1314
CRFlags GetRowFlags(SCROW nRow) const
Definition: table2.cxx:3575
void SetEmptyCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1538
::std::map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap
const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nWhich) const
Definition: table2.cxx:2008
OUString aLinkDoc
Definition: table.hxx:162
ScScenarioFlags nScenarioFlags
Definition: table.hxx:223
void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, sal_uInt16 nFormatNo)
Definition: table4.cxx:2500
void GetUnprotectedCells(ScRangeList &rRangeList) const
Definition: table2.cxx:1762
void UpdateCompile(bool bForceIfNameInUse=false)
Definition: table1.cxx:1968
sc::MultiDataCellState HasMultipleDataCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:35
void ShowCol(SCCOL nCol, bool bShow)
Definition: table2.cxx:3383
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
Definition: table2.cxx:2085
void CopyFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, ScTable *pTable)
Definition: table2.cxx:716
void AddPrintRange(const ScRange &rNew)
Adds a new print ranges.
Definition: table1.cxx:2234
bool IsActiveScenario() const
Definition: table.hxx:355
const EditTextObject * GetEditText(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1634
const Color & GetScenarioColor() const
Definition: table.hxx:348
void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3452
ScAddress maLOKFreezeCell
Definition: table.hxx:229
void GetNotesInRange(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1718
::boost::intrusive_ptr< FormulaToken > FormulaTokenRef
std::unique_ptr< ScTableProtection > pTabProtection
Definition: table.hxx:177
ScRefCellValue GetRefCellValue(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2504
void GetLastDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1813
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...
Definition: table7.cxx:557
void AutoFormat(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_uInt16 nFormatNo)
Definition: table4.cxx:2511
void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
Definition: table4.cxx:2720
bool GetNextMarkedCell(SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark) const
Definition: table1.cxx:1673
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
Definition: table2.cxx:1963
SvNumFormatType
bool bTableAreaValid
Definition: table.hxx:235
OUString aName
Definition: table.hxx:158
ScColContainer aCol
Definition: table.hxx:156
void SetRawString(SCCOL nCol, SCROW nRow, const svl::SharedString &rStr)
Definition: table2.cxx:1597
bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3210
void GetAllRowBreaks(::std::set< SCROW > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:336
void StartListeningFormulaCells(sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1152
bool GetTableArea(SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
Definition: table1.cxx:549
void LockTable()
Definition: table2.cxx:2583
void DBShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3426
size_t GetFormulaHash(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2417
const OUString & GetCodeName() const
Definition: table.hxx:376
::std::set< SCROW > maRowManualBreaks
Definition: table.hxx:190
std::unique_ptr< ScConditionalFormatList > mpCondFormatList
Definition: table.hxx:227
bool DoSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1941
Color aTabBgColor
Definition: table.hxx:222
const Iterator & end()
Definition: table.hxx:143
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
Definition: table2.cxx:2771
SvtScriptType GetRangeScriptType(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2407
Iterator & operator--()
Definition: table.hxx:134
void BroadcastRecalcOnRefMove()
Broadcast dirty formula cells that contain functions such as CELL(), COLUMN() or ROW() which may chan...
Definition: table2.cxx:1923
void UpdateTranspose(const ScRange &rSource, const ScAddress &rDest, ScDocument *pUndoDoc)
Definition: table1.cxx:1869
sal_Int32 GetMaxStringLen(SCCOL nCol, SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
Definition: table3.cxx:3583
CommentCaptionState
Definition: document.hxx:252
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3663
bool ReservePatternCount(SCCOL nCol, SCSIZE nReserve)
Definition: table4.cxx:2872
void SetTabNo(SCTAB nNewTab)
Definition: table1.cxx:1976
bool IsStreamValid() const
Definition: table.hxx:314
const ScBitMaskCompressedArray< SCROW, CRFlags > * GetRowFlagsArray() const
Definition: table.hxx:865
ScTable(ScDocument &rDoc, SCTAB nNewTab, const OUString &rNewName, bool bColInfo=true, bool bRowInfo=true)
Definition: table1.cxx:235
bool HasRowPageBreak(SCROW nRow) const
Definition: table5.cxx:362
bool ApplyFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:2884
bool IsScenario() const
Definition: table.hxx:344
bool bLayoutRTL
Definition: table.hxx:232
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
Definition: column.hxx:171
bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const
Definition: table1.cxx:1166
bool ContainsNotesInRange(const ScRange &rRange) const
Definition: table2.cxx:1768
FormulaError
SCCOL Col() const
Definition: address.hxx:266
bool SetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const ScSetStringParam *pParam=nullptr)
Definition: table2.cxx:1480
SCCOL nTableAreaVisibleX
Definition: table.hxx:200
void SetCondFormList(ScConditionalFormatList *pList)
Definition: table1.cxx:2608
Iterate through all edit text cells in a given sheet.
void GetScenarioComment(OUString &rComment) const
Definition: table.hxx:346
SheetGeomType
Represents the type of sheet geometry data.
Definition: document.hxx:266
bool RefVisible(const ScFormulaCell *pCell)
Definition: table2.cxx:3886
bool SearchAndReplaceEmptyCells(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:857
void UpdateMoveTab(sc::RefUpdateMoveTabContext &rCxt, SCTAB nTabNo, ScProgress *pProgress)
Definition: table1.cxx:1940
void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
Definition: table2.cxx:414
void EndListeningGroup(sc::EndListeningContext &rCxt, const SCCOL nCol, SCROW nRow)
Definition: table7.cxx:327
void MergePatternArea(ScMergePatternState &rState, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bDeep) const
Definition: table2.cxx:2611
SCROW GetLOKFreezeRow() const
Definition: table7.cxx:593
const OUString & GetLinkTab() const
Definition: table.hxx:362
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)
Definition: table2.cxx:1164
bool GetDataAreaSubrange(ScRange &rRange) const
Definition: table1.cxx:936
bool SetLOKFreezeCol(SCCOL nFreezeCol)
Definition: table7.cxx:598
SCSIZE GetPatternCount(SCCOL nCol) const
Definition: table4.cxx:2856
::std::vector< ScRange > ScRangeVec
Definition: table.hxx:154
Iterator & operator++()
Definition: table.hxx:133
void FillSeriesSimple(const ScCellValue &rSrcCell, SCCOLROW &rInner, SCCOLROW nIMin, SCCOLROW nIMax, const SCCOLROW &rCol, const SCCOLROW &rRow, bool bVertical, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1680
bool ReplaceAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, ScDocument *pUndoDoc)
Definition: table6.cxx:767
void UpdateDeleteTab(sc::RefUpdateDeleteTabContext &rCxt)
Definition: table1.cxx:1911
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: document.hxx:875
void InvalidatePageBreaks()
Definition: table2.cxx:1391
bool HasManualBreaks() const
Definition: table5.cxx:317
SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:767
void GetAllColBreaks(::std::set< SCCOL > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:349
OUString aLinkOpt
Definition: table.hxx:164
::std::set< SCCOL > maColPageBreaks
Definition: table.hxx:191
SCCOL nRepeatEndX
Definition: table.hxx:173
void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2647
bool RowHidden(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:496
UpdateRefMode
Definition: global.hxx:309
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)
Definition: table1.cxx:439
CRFlags
Definition: global.hxx:134
sal_Int32 SCROW
Definition: types.hxx:17
To calculate a single subtotal function.
Definition: subtotal.hxx:60
void SetProtection(const ScTableProtection *pProtect)
Definition: table5.cxx:1090
void UpdateInsertTabAbs(SCTAB nNewPos)
Definition: table4.cxx:2798
OUString aPageStyle
Definition: table.hxx:170
const Iterator & begin()
Definition: table.hxx:142
void SetScenarioComment(const OUString &rComment)
Definition: table.hxx:347
void SetTabBgColor(const Color &rColor)
Definition: table1.cxx:397
ColRowEditAction
Definition: global.hxx:435
bool IsColRowValid(const SCCOL nScCol, const SCROW nScRow) const
Definition: table.hxx:321
bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3396
const OUString & GetPageStyle() const
Definition: table.hxx:381
bool IsPrintEntireSheet() const
Returns true, if the sheet is always printed.
Definition: table.hxx:768
bool SearchStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark)
Definition: table6.cxx:614
bool ValidRow(SCROW nRow) const
Definition: document.hxx:874
void TopTenQuery(ScQueryParam &)
Definition: table3.cxx:2864
ScMF
Definition: attrib.hxx:34
std::unique_ptr< ScFlatBoolRowSegments > mpFilteredRows
Definition: table.hxx:187
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)
Definition: table4.cxx:218
std::unique_ptr< sc::ColumnIterator > GetColumnIterator(SCCOL nCol, SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:424
void CopyScenarioFrom(const ScTable *pSrcTab)
Definition: table2.cxx:1404
sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero=true) const
Definition: table5.cxx:788
ScRangeName * GetRangeName() const
Definition: table2.cxx:3953
void GetDataArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bIncludeOld, bool bOnlyDown) const
Definition: table1.cxx:813
SCROW nRepeatEndY
Definition: table.hxx:175
ScRefCellValue GetCellValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1790
void DeleteCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool *pUndoOutline)
Definition: table2.cxx:348
std::unique_ptr< ScSortInfoArray > CreateSortInfoArray(const sc::ReorderParam &rParam)
Definition: table3.cxx:449
bool IsLoadingRTL() const
Definition: table.hxx:340
SCROW GetLastDataRow(SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, bool bConsiderCellNotes=false, bool bConsiderCellDrawObjects=false, bool bConsiderCellPatterns=false) const
Definition: table1.cxx:1095
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: table.hxx:331
const ScDocument & GetDoc() const
Definition: table.hxx:279
void SetLayoutRTL(bool bSet)
Definition: table1.cxx:387
CellType
Definition: global.hxx:280
bool BroadcastBroadcasters(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint &rHint)
Broadcast single broadcasters in range, without explicitly setting anything dirty, not doing area broadcasts.
Definition: table2.cxx:1930
sal_uInt16 GetCommonWidth(SCCOL nEndCol) const
Definition: table2.cxx:3175
void CopyConditionalFormat(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, const ScTable *pTable)
Definition: table2.cxx:623
void MergeSelectionPattern(ScMergePatternState &rState, const ScMarkData &rMark, bool bDeep) const
Definition: table2.cxx:2598
short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const
Definition: table3.cxx:1642
sal_uLong GetCellCount() const
Definition: table3.cxx:3542
ScLinkMode GetLinkMode() const
Definition: table.hxx:357
void DumpColumnStorage(SCCOL nCol) const
ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const
Definition: table1.cxx:2626
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:871
const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const
Definition: table2.cxx:2063
SCROW GetLastChangedRow() const
Definition: table2.cxx:3628
::std::set< SCCOL > maColManualBreaks
Definition: table.hxx:192
void SetRepeatArea(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:1110
bool GetCellArea(SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:513
Color aScenarioColor
Definition: table.hxx:221
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:977
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2528
void CopyRowHeight(const ScTable &rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset)
Definition: table5.cxx:701
bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:556
void SetVisible(bool bVis)
Definition: table1.cxx:366
void CalcAll()
Definition: table2.cxx:1946
void GetInputString(SCCOL nCol, SCROW nRow, OUString &rString) const
Definition: table2.cxx:1619
bool bPendingRowHeights
Definition: table.hxx:239
formula::VectorRefArray FetchVectorRefArray(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2468
void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
Definition: table2.cxx:446
std::unique_ptr< ScCompressedArray< SCCOL, sal_uInt16 > > mpColWidth
Definition: table.hxx:179
void InvalidateTableArea()
Definition: table2.cxx:1386
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
Definition: table2.cxx:2944
void SortReorderByRowRefUpdate(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1161
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow, SCSIZE nSize) const
Definition: table2.cxx:254
bool bGlobalKeepQuery
Definition: table.hxx:241
bool HandleRefArrayForParallelism(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
Definition: table1.cxx:2488
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:400
SvtBroadcaster * GetBroadcaster(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2520
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1712
void Sort(const ScSortParam &rSortParam, bool bKeepQuery, bool bUpdateRefs, ScProgress *pProgress, sc::ReorderParam *pUndo)
Sort a range of data.
Definition: table3.cxx:1692
SCROW nTableAreaY
Definition: table.hxx:199
void SetDirty(const ScRange &, ScColumn::BroadcastMode)
Definition: table2.cxx:1884
void FillSeries(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong 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)
Definition: table4.cxx:2043
ScScenarioFlags GetScenarioFlags() const
Definition: table.hxx:352
const OUString & GetLinkOpt() const
Definition: table.hxx:361
void SetColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:457
SCROW GetNotePosition(SCCOL nCol, size_t nIndex) const
Definition: table2.cxx:1689
bool SetLOKFreezeRow(SCROW nFreezeRow)
Definition: table7.cxx:615
void CopyPrintRange(const ScTable &rTable)
Definition: table1.cxx:2179
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)
Definition: table2.cxx:2157
SCCOL nRepeatStartX
Definition: table.hxx:172
FormulaError GetErrCode(const ScAddress &rPos) const
Definition: table.hxx:617
sal_uLong GetCodeCount() const
Definition: table3.cxx:3572
void SetDirtyIfPostponed()
Mark formula cells dirty that have the mbPostponedDirty flag set or contain named ranges with relativ...
Definition: table2.cxx:1914
std::unique_ptr< ScRange > pRepeatRowRange
Definition: table.hxx:216
bool EnsureFormulaCellResults(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning=false)
Definition: table7.cxx:432
void CopyStaticToDocument(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap &rMap, ScTable *pDestTab)
Definition: table2.cxx:538
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich) const
Definition: table.hxx:691
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table2.cxx:1141
SCROW GetFirstEditTextRow(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:1511
bool RowFiltered(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:835
void RegroupFormulaCells(SCCOL nCol)
Definition: table7.cxx:285
void SetLoadingMedium(bool bLoading)
Definition: table2.cxx:1941
bool HasStringCells(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:1848
bool IsManualRowHeight(SCROW nRow) const
Definition: table5.cxx:998
SCROW GetNextManualBreak(SCROW nRow) const
Get the row position of the next manual break that occurs at or below specified row.
Definition: table5.cxx:394
bool HasStringData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1832
bool SetEditText(SCCOL nCol, SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
Definition: table2.cxx:1492
bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bRefresh)
Definition: table2.cxx:2100
std::unique_ptr< ScRangeList > pScenarioRanges
Definition: table.hxx:220
void StyleSheetChanged(const SfxStyleSheetBase *pStyleSheet, bool bRemoved, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY)
Definition: table2.cxx:2858
The data type represents bits, manageable by bitwise operations.
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
Definition: table2.cxx:2666
ScDirection
Definition: global.hxx:351
ScFormulaVectorState
When vectorization is enabled, we could potentially mass-calculate a series of formula token arrays i...
Definition: types.hxx:51
sal_uLong GetRowOffset(SCROW nRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3960
OUString aLinkTab
Definition: table.hxx:165
bool Replace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:564
SCCOL ClampToAllocatedColumns(SCCOL nCol) const
Definition: table.hxx:1090
ScDocument & rDocument
Definition: table.hxx:204
void QuickSort(ScSortInfoArray *, SCCOLROW nLo, SCCOLROW nHi)
Definition: table3.cxx:1600
bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi, ScProgress *pOuterProgress=nullptr, sal_uLong nProgressStart=0)
Definition: table1.cxx:456
void SetSheetEvents(std::unique_ptr< ScSheetEvents > pNew)
Definition: table2.cxx:121
sal_uLong AddCondFormat(std::unique_ptr< ScConditionalFormat > pNew)
Definition: table1.cxx:2378
void GetNextPos(SCCOL &rCol, SCROW &rRow, SCCOL nMovX, SCROW nMovY, bool bMarked, bool bUnprotected, const ScMarkData &rMark, SCCOL nTabStartCol) const
Definition: table1.cxx:1428
void DeleteBeforeCopyFromClip(sc::CopyFromClipContext &rCxt, const ScTable &rClipTab, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table7.cxx:98
const ScStyleSheet * GetAreaStyle(bool &rFound, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:2817
bool GetCalcNotification() const
Definition: table.hxx:336
void FillFormulaVertical(const ScFormulaCell &rSrcCell, SCCOLROW &rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1615
void CopyCellToDocument(SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable &rDestTab)
Definition: table2.cxx:576
sal_uInt32 GetNumberFormat(const ScInterpreterContext &rContext, const ScAddress &rPos) const
Definition: table2.cxx:2016
void SyncColRowFlags()
Definition: table5.cxx:1053
void ApplyBlockFrame(const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:2633
bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol)
Definition: table2.cxx:705
bool HasColPageBreak(SCCOL nCol) const
Definition: table5.cxx:370
void CreateAllNoteCaptions()
Definition: table2.cxx:1697
bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table3.cxx:1671
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCCOL nCol, SCROW nRow, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:307
bool bActiveScenario
Definition: table.hxx:243
std::unique_ptr< ScBitMaskCompressedArray< SCROW, CRFlags > > pRowFlags
Definition: table.hxx:183
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
Definition: table2.cxx:2843
bool RowHiddenLeaf(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:526
bool bPageSizeValid
Definition: table.hxx:234
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
Definition: table7.cxx:215
bool bPrintEntireSheet
Definition: table.hxx:242
void StoreToCache(SvStream &rStrm) const
Definition: table7.cxx:458
ScColumnsRange(const Iterator &rBegin, const Iterator &rEnd)
Definition: table.hxx:141
std::unique_ptr< ScFlatBoolRowSegments > mpHiddenRows
Definition: table.hxx:185
const Color & GetTabBgColor() const
Definition: table.hxx:350
bool SearchAndReplace(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:794
const ScRange * GetRepeatColRange() const
Definition: table.hxx:760
SCCOL GetAllocatedColumnsCount() const
Definition: table.hxx:1091
sal_uInt16 GetRowHeight(SCROW nRow, SCROW *pStartRow, SCROW *pEndRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3226
void RemoveManualBreaks()
Definition: table5.cxx:308
void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:2653
CRFlags GetColFlags(SCCOL nCol) const
Definition: table2.cxx:3567
ScDBData * GetAnonymousDBData()
Definition: table.hxx:374
bool SearchRangeForAllEmptyCells(const ScRange &rRange, const SvxSearchItem &rSearchItem, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:1069
void CompileDBFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2844
SCCOL GetLOKFreezeCol() const
Definition: table7.cxx:588
void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString &rStr)
Definition: table2.cxx:3908
const OUString & GetUpperName() const
Definition: table1.cxx:359
std::unique_ptr< ScSheetEvents > pSheetEvents
Definition: table.hxx:196
void ExtendPrintArea(OutputDevice *pDev, SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW nEndRow)
Definition: table1.cxx:1990
double GetValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1627
void StartOutlineTable()
Definition: table2.cxx:115
ScAttrArray aDefaultColAttrArray
Definition: table.hxx:248
void SetError(SCCOL nCol, SCROW nRow, FormulaError nError)
Definition: table4.cxx:2792
Size aPageSizeTwips
Definition: table.hxx:171
bool ValidTab(SCTAB nTab)
Definition: address.hxx:104
sal_uLong nLinkRefreshDelay
Definition: table.hxx:166
bool IsMerged(SCCOL nCol, SCROW nRow) const
Definition: table7.cxx:27
SCROW GetLastFlaggedRow() const
Definition: table2.cxx:3583
SCROW GetHiddenRowCount(SCROW nRow) const
Definition: table2.cxx:3369
void CopyColFiltered(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:886
void InsertCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize)
Definition: table2.cxx:271
bool IsSortCollatorGlobal() const
Definition: table3.cxx:611
Use this to iterate through non-empty visible cells in a single column.
Definition: table.hxx:1280
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:786
bool bScenario
Definition: table.hxx:231
void SplitFormulaGroups(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:269
void ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:2931
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, bool bShow)
Definition: table2.cxx:3655
bool SearchRangeForEmptyCell(const ScRange &rRange, const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, OUString &rUndoStr)
Definition: table6.cxx:959
sal_Int16 SCTAB
Definition: types.hxx:22
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
Definition: table2.cxx:2938
css::uno::Sequence< css::sheet::TablePageBreakData > GetRowBreakData() const
Definition: table5.cxx:472
SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:721
OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType)
Serializes the sheet's geometry data.
Definition: table7.cxx:484
bool GetDataStart(SCCOL &rStartCol, SCROW &rStartRow) const
Definition: table1.cxx:751
bool bCalcNotification
Definition: table.hxx:240
OString dumpColumnRowSizes(bool bColumns)
Returns list-of-spans representation of the column-widths/row-heights in twips encoded as an OString...
Definition: table7.cxx:517
void RemoveCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2693
void ShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3403
ScConditionalFormatList * GetCondFormList()
Definition: table1.cxx:2613
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered)
Definition: table5.cxx:915