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 <optional>
39 #include <set>
40 #include <memory>
41 
42 template <typename A, typename D> class ScBitMaskCompressedArray;
43 template <typename A, typename D> class ScCompressedArray;
44 
45 namespace utl {
46  class TextSearch;
47 }
48 
49 namespace com::sun::star {
50  namespace sheet {
51  struct TablePageBreakData;
52  }
53 }
54 
55 namespace formula { struct VectorRefArray; }
56 namespace sc {
57 
58 class StartListeningContext;
59 class EndListeningContext;
60 class CopyFromClipContext;
61 class CopyToClipContext;
62 class CopyToDocContext;
63 class MixDocContext;
64 class ColumnSpanSet;
65 class RangeColumnSpanSet;
66 class ColumnSet;
67 struct ColumnBlockPosition;
68 class TableColumnBlockPositionSet;
69 struct RefUpdateContext;
70 struct RefUpdateInsertTabContext;
71 struct RefUpdateDeleteTabContext;
72 struct RefUpdateMoveTabContext;
73 struct NoteEntry;
74 class DocumentStreamAccess;
75 class CellValues;
76 class TableValues;
77 class RowHeightContext;
78 class CompileFormulaContext;
79 struct SetFormulaDirtyContext;
80 class ColumnIterator;
81 class ScDrawObjData;
82 }
83 
84 class SfxItemSet;
85 class SfxStyleSheetBase;
86 class SvxBoxInfoItem;
87 class SvxBoxItem;
88 class SvxSearchItem;
89 
90 class ScAutoFormatData;
91 class ScEditDataArray;
92 class ScFormulaCell;
93 class ScOutlineTable;
94 class ScPrintSaverTab;
95 class ScProgress;
96 class ScRangeList;
97 class ScSheetEvents;
98 class ScSortInfoArray;
101 class ScStyleSheet;
102 class ScTableProtection;
103 class ScUserListData;
104 struct RowInfo;
105 class ScFunctionData;
106 class CollatorWrapper;
110 struct ScSetStringParam;
111 struct ScColWidthParam;
112 class ScRangeName;
113 class ScDBData;
114 class ScHint;
115 class ScPostIt;
116 struct ScInterpreterContext;
117 
118 
119 class ScColumnsRange final
120 {
121  public:
122  class Iterator final
123  {
124  std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator maColIter;
125  public:
126  typedef std::input_iterator_tag iterator_category;
127  typedef SCCOL value_type;
129  typedef const SCCOL* pointer;
130  typedef SCCOL reference;
131 
132  explicit Iterator(const std::vector<std::unique_ptr<ScColumn, o3tl::default_delete<ScColumn>>>::const_iterator& colIter) : maColIter(colIter) {}
133 
134  Iterator& operator++() { ++maColIter; return *this;}
135  Iterator& operator--() { --maColIter; return *this;}
136 
137  bool operator==(const Iterator & rOther) const {return maColIter == rOther.maColIter;}
138  bool operator!=(const Iterator & rOther) const {return !(*this == rOther);}
139  SCCOL operator*() const {return (*maColIter)->GetCol();}
140  };
141 
142  ScColumnsRange(const Iterator & rBegin, const Iterator & rEnd) : maBegin(rBegin), maEnd(rEnd) {}
143  const Iterator & begin() { return maBegin; }
144  const Iterator & end() { return maEnd; }
145  std::reverse_iterator<Iterator> rbegin() { return std::reverse_iterator<Iterator>(maEnd); }
146  std::reverse_iterator<Iterator> rend() { return std::reverse_iterator<Iterator>(maBegin); }
147 private:
150 };
151 
152 class ScTable
153 {
154 private:
155  typedef ::std::vector< ScRange > ScRangeVec;
156 
158 
159  OUString aName;
160  OUString aCodeName;
161  OUString aComment;
162 
163  OUString aLinkDoc;
164  OUString aLinkFlt;
165  OUString aLinkOpt;
166  OUString aLinkTab;
169 
170  // page style template
171  OUString aPageStyle;
172  Size aPageSizeTwips; // size of the print-page
173  SCCOL nRepeatStartX; // repeating rows/columns
174  SCCOL nRepeatEndX; // REPEAT_NONE, if not used
177 
178  std::unique_ptr<ScTableProtection> pTabProtection;
179 
180  std::unique_ptr<ScCompressedArray<SCCOL, sal_uInt16>> mpColWidth;
181  std::unique_ptr<ScFlatUInt16RowSegments> mpRowHeights;
182 
183  std::unique_ptr<ScBitMaskCompressedArray<SCCOL, CRFlags>> mpColFlags;
184  std::unique_ptr<ScBitMaskCompressedArray< SCROW, CRFlags>> pRowFlags;
185  std::unique_ptr<ScFlatBoolColSegments> mpHiddenCols;
186  std::unique_ptr<ScFlatBoolRowSegments> mpHiddenRows;
187  std::unique_ptr<ScFlatBoolColSegments> mpFilteredCols;
188  std::unique_ptr<ScFlatBoolRowSegments> mpFilteredRows;
189 
190  ::std::set<SCROW> maRowPageBreaks;
191  ::std::set<SCROW> maRowManualBreaks;
192  ::std::set<SCCOL> maColPageBreaks;
193  ::std::set<SCCOL> maColManualBreaks;
194 
195  std::unique_ptr<ScOutlineTable> pOutlineTable;
196 
197  std::unique_ptr<ScSheetEvents> pSheetEvents;
198 
203 
206  std::unique_ptr<utl::TextSearch> pSearchText;
207 
208  mutable OUString aUpperName; // #i62977# filled only on demand, reset in SetName
209 
210  // sort parameter to minimize stack size of quicksort
213 
214  ScRangeVec aPrintRanges;
215 
216  std::unique_ptr<ScRange> pRepeatColRange;
217  std::unique_ptr<ScRange> pRepeatRowRange;
218 
219  sal_uInt16 nLockCount;
220 
221  std::unique_ptr<ScRangeList> pScenarioRanges;
225  std::unique_ptr<ScDBData> pDBDataNoName;
226  mutable std::unique_ptr<ScRangeName> mpRangeName;
227 
228  std::unique_ptr<ScConditionalFormatList> mpCondFormatList;
229 
231 
232  bool bScenario:1;
233  bool bLayoutRTL:1;
234  bool bLoadingRTL:1;
236  mutable bool bTableAreaValid:1;
237  mutable bool bTableAreaVisibleValid:1;
238  bool bVisible:1;
239  bool bStreamValid:1;
247 
248  // Default attributes for the unallocated columns.
250 
251 friend class ScDocument; // for FillInfo
252 friend class ScColumn;
253 friend class ScValueIterator;
257 friend class ScCellIterator;
258 friend class ScQueryCellIterator;
262 friend class ScDocAttrIterator;
263 friend class ScAttrRectIterator;
265 friend class ScDocumentImport;
267 friend class sc::ColumnSpanSet;
269 friend class sc::EditTextIterator;
271 
272 public:
273  ScTable( ScDocument& rDoc, SCTAB nNewTab, const OUString& rNewName,
274  bool bColInfo = true, bool bRowInfo = true );
275  ~ScTable() COVERITY_NOEXCEPT_FALSE;
276  ScTable(const ScTable&) = delete;
277  ScTable& operator=(const ScTable&) = delete;
278 
280  const ScDocument& GetDoc() const { return rDocument;}
281  SCTAB GetTab() const { return nTab; }
282 
283  ScOutlineTable* GetOutlineTable() { return pOutlineTable.get(); }
284 
285  ScColumn& CreateColumnIfNotExists( const SCCOL nScCol ) const
286  {
287  if ( nScCol >= aCol.size() )
289  return aCol[nScCol];
290  }
291  // out-of-line the cold part of the function
292  void CreateColumnIfNotExistsImpl( const SCCOL nScCol ) const;
293  sal_uLong GetCellCount() const;
294  sal_uLong GetWeightedCount() const;
295  sal_uLong GetWeightedCount(SCROW nStartRow, SCROW nEndRow) const;
296  sal_uLong GetCodeCount() const; // RPN code in formula
297 
298  sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const;
299 
300  bool SetOutlineTable( const ScOutlineTable* pNewOutline );
301  void StartOutlineTable();
302 
303  void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
304 
305  bool TestRemoveSubTotals( const ScSubTotalParam& rParam );
306  void RemoveSubTotals( ScSubTotalParam& rParam );
307  bool DoSubTotals( ScSubTotalParam& rParam );
308 
309  const ScSheetEvents* GetSheetEvents() const { return pSheetEvents.get(); }
310  void SetSheetEvents( std::unique_ptr<ScSheetEvents> pNew );
311 
312  bool IsVisible() const { return bVisible; }
313  void SetVisible( bool bVis );
314 
315  bool IsStreamValid() const { return bStreamValid; }
316  void SetStreamValid( bool bSet, bool bIgnoreLock = false );
317 
318  [[nodiscard]] bool IsColValid( const SCCOL nScCol ) const
319  {
320  return nScCol >= static_cast< SCCOL >( 0 ) && nScCol < aCol.size();
321  }
322  [[nodiscard]] bool IsColRowValid( const SCCOL nScCol, const SCROW nScRow ) const
323  {
324  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow );
325  }
326  [[nodiscard]] bool IsColRowTabValid( const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab ) const
327  {
328  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow ) && ValidTab( nScTab );
329  }
330  [[nodiscard]] bool ValidCol(SCCOL nCol) const { return GetDoc().ValidCol(nCol); }
331  [[nodiscard]] bool ValidRow(SCROW nRow) const { return GetDoc().ValidRow(nRow); }
332  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const { return GetDoc().ValidColRow(nCol, nRow); }
333 
334  bool IsPendingRowHeights() const { return bPendingRowHeights; }
335  void SetPendingRowHeights( bool bSet );
336 
337  bool GetCalcNotification() const { return bCalcNotification; }
338  void SetCalcNotification( bool bSet );
339 
340  bool IsLayoutRTL() const { return bLayoutRTL; }
341  bool IsLoadingRTL() const { return bLoadingRTL; }
342  void SetLayoutRTL( bool bSet );
343  void SetLoadingRTL( bool bSet );
344 
345  bool IsScenario() const { return bScenario; }
346  void SetScenario( bool bFlag );
347  void GetScenarioComment( OUString& rComment) const { rComment = aComment; }
348  void SetScenarioComment( const OUString& rComment ) { aComment = rComment; }
349  const Color& GetScenarioColor() const { return aScenarioColor; }
350  void SetScenarioColor(const Color& rNew) { aScenarioColor = rNew; }
351  const Color& GetTabBgColor() const { return aTabBgColor; }
352  void SetTabBgColor(const Color& rColor);
354  void SetScenarioFlags(ScScenarioFlags nNew) { nScenarioFlags = nNew; }
355  void SetActiveScenario(bool bSet) { bActiveScenario = bSet; }
356  bool IsActiveScenario() const { return bActiveScenario; }
357 
358  ScLinkMode GetLinkMode() const { return nLinkMode; }
359  bool IsLinked() const { return nLinkMode != ScLinkMode::NONE; }
360  const OUString& GetLinkDoc() const { return aLinkDoc; }
361  const OUString& GetLinkFlt() const { return aLinkFlt; }
362  const OUString& GetLinkOpt() const { return aLinkOpt; }
363  const OUString& GetLinkTab() const { return aLinkTab; }
365 
366  void SetLink( ScLinkMode nMode, const OUString& rDoc, const OUString& rFlt,
367  const OUString& rOpt, const OUString& rTab, sal_uLong nRefreshDelay );
368 
369  sal_Int64 GetHashCode () const;
370 
371  const OUString& GetName() const { return aName; }
372  void SetName( const OUString& rNewName );
373 
374  void SetAnonymousDBData(std::unique_ptr<ScDBData> pDBData);
375  ScDBData* GetAnonymousDBData() { return pDBDataNoName.get();}
376 
377  const OUString& GetCodeName() const { return aCodeName; }
378  void SetCodeName( const OUString& rNewName ) { aCodeName = rNewName; }
379 
380  const OUString& GetUpperName() const;
381 
382  const OUString& GetPageStyle() const { return aPageStyle; }
383  void SetPageStyle( const OUString& rName );
384  void PageStyleModified( const OUString& rNewName );
385 
386  bool IsProtected() const;
387  void SetProtection(const ScTableProtection* pProtect);
388  const ScTableProtection* GetProtection() const;
389  void GetUnprotectedCells( ScRangeList& rRangeList ) const;
390 
391  bool IsEditActionAllowed( sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd ) const;
392 
393  Size GetPageSize() const;
394  void SetPageSize( const Size& rSize );
395  void SetRepeatArea( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
396 
397  void LockTable();
398  void UnlockTable();
399 
400  bool IsBlockEditable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2,
401  SCROW nRow2, bool* pOnlyNotBecauseOfMatrix = nullptr,
402  bool bNoMatrixAtAll = false ) const;
403  bool IsSelectionEditable( const ScMarkData& rMark,
404  bool* pOnlyNotBecauseOfMatrix = nullptr ) const;
405 
406  bool HasBlockMatrixFragment( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
407  bool bNoMatrixAtAll = false ) const;
408  bool HasSelectionMatrixFragment( const ScMarkData& rMark ) const;
409 
410  bool IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes ) const;
411 
412  bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString& rString,
413  const ScSetStringParam * pParam = nullptr );
414 
415  bool SetEditText( SCCOL nCol, SCROW nRow, std::unique_ptr<EditTextObject> pEditText );
416  void SetEditText( SCCOL nCol, SCROW nRow, const EditTextObject& rEditText, const SfxItemPool* pEditPool );
417  SCROW GetFirstEditTextRow( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
418 
419  void SetEmptyCell( SCCOL nCol, SCROW nRow );
420  void SetFormula(
421  SCCOL nCol, SCROW nRow, const ScTokenArray& rArray, formula::FormulaGrammar::Grammar eGram );
422  void SetFormula(
423  SCCOL nCol, SCROW nRow, const OUString& rFormula, formula::FormulaGrammar::Grammar eGram );
424 
431  ScFormulaCell* SetFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
432 
433  bool SetFormulaCells( SCCOL nCol, SCROW nRow, std::vector<ScFormulaCell*>& rCells );
434 
435  bool HasFormulaCell( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 ) const;
436 
437  svl::SharedString GetSharedString( SCCOL nCol, SCROW nRow ) const;
438 
439  void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
440  void SetValues( const SCCOL nCol, const SCROW nRow, const std::vector<double>& rVals );
441  void SetError( SCCOL nCol, SCROW nRow, FormulaError nError);
442  SCSIZE GetPatternCount( SCCOL nCol ) const;
443  SCSIZE GetPatternCount( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
444  bool ReservePatternCount( SCCOL nCol, SCSIZE nReserve );
445 
446  void SetRawString( SCCOL nCol, SCROW nRow, const svl::SharedString& rStr );
447  void GetString( SCCOL nCol, SCROW nRow, OUString& rString,
448  const ScInterpreterContext* pContext = nullptr ) const;
449  double* GetValueCell( SCCOL nCol, SCROW nRow );
450  void GetInputString( SCCOL nCol, SCROW nRow, OUString& rString ) const;
451  double GetValue( SCCOL nCol, SCROW nRow ) const;
452  const EditTextObject* GetEditText( SCCOL nCol, SCROW nRow ) const;
453  void RemoveEditTextCharAttribs( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
454  void GetFormula( SCCOL nCol, SCROW nRow, OUString& rFormula ) const;
455  const ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow ) const;
456  ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow );
457 
458  CellType GetCellType( const ScAddress& rPos ) const
459  {
460  if (!GetDoc().ValidColRow(rPos.Col(),rPos.Row()))
461  return CELLTYPE_NONE;
462  if (rPos.Col() >= aCol.size())
463  return CELLTYPE_NONE;
464  return aCol[rPos.Col()].GetCellType( rPos.Row() );
465  }
466  CellType GetCellType( SCCOL nCol, SCROW nRow ) const;
467  ScRefCellValue GetCellValue( SCCOL nCol, SCROW nRow ) const;
468 
469  void GetFirstDataPos(SCCOL& rCol, SCROW& rRow) const;
470  void GetLastDataPos(SCCOL& rCol, SCROW& rRow) const;
471 
472  std::unique_ptr<ScPostIt> ReleaseNote( SCCOL nCol, SCROW nRow );
473 
474  size_t GetNoteCount( SCCOL nCol ) const;
475  SCROW GetNotePosition( SCCOL nCol, size_t nIndex ) const;
476  void CreateAllNoteCaptions();
477  void ForgetNoteCaptions( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData );
478 
479  void GetAllNoteEntries( std::vector<sc::NoteEntry>& rNotes ) const;
480  void GetNotesInRange( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes ) const;
481  CommentCaptionState GetAllNoteCaptionsState( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes );
482  bool ContainsNotesInRange( const ScRange& rRange ) const;
483 
484  bool TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize ) const;
485  void InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize );
486  void DeleteRow(
487  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
488  bool* pUndoOutline, std::vector<ScAddress>* pGroupPos );
489 
490  bool TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize ) const;
491  void InsertCol(
492  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
493  void DeleteCol(
494  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool* pUndoOutline );
495 
496  void DeleteArea(
497  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag,
498  bool bBroadcast = true, sc::ColumnSpanSet* pBroadcastSpans = nullptr );
499 
500  void CopyToClip( sc::CopyToClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pTable );
501  void CopyToClip( sc::CopyToClipContext& rCxt, const ScRangeList& rRanges, ScTable* pTable );
502 
504  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap& rMap,
505  ScTable* pDestTab );
506 
507  void CopyCellToDocument( SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable& rDestTab );
508 
509  bool InitColumnBlockPosition( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol );
510 
512  sc::CopyFromClipContext& rCxt, const ScTable& rClipTab, sc::ColumnSpanSet& rBroadcastSpans );
513 
514  void CopyOneCellFromClip(
515  sc::CopyFromClipContext& rCxt, const SCCOL nCol1, const SCROW nRow1,
516  const SCCOL nCol2, const SCROW nRow2,
517  const SCROW nSrcRow, const ScTable* pSrcTab );
518 
519  void CopyFromClip(
520  sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
521  SCCOL nDx, SCROW nDy, ScTable* pTable );
522 
525  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
526 
527  void SetDirtyFromClip(
528  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet& rBroadcastSpans );
529 
530  void CopyToTable(
531  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
532  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab,
533  const ScMarkData* pMarkData, bool bAsLink, bool bColRowFlags,
534  bool bGlobalNamesToLocal, bool bCopyCaptions );
535 
536  void CopyCaptionsToTable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pDestTab, bool bCloneCaption );
537 
538  void UndoToTable(
539  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
540  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab );
541 
542  void CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
543  SCCOL nDx, SCROW nDy, const ScTable* pTable);
551  void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCROW nCombinedStartRow,
552  SCROW nRowDestOffset, ScTable* pTransClip, InsertDeleteFlags nFlags,
553  bool bAsLink, bool bIncludeFiltered);
554 
555  // mark of this document
556  void MixMarked(
557  sc::MixDocContext& rCxt, const ScMarkData& rMark, ScPasteFunc nFunction,
558  bool bSkipEmpty, const ScTable* pSrcTab );
559 
560  void MixData(
561  sc::MixDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
562  ScPasteFunc nFunction, bool bSkipEmpty, const ScTable* pSrcTab );
563 
564  void CopyData( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
565  SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab );
566 
567  void CopyScenarioFrom( const ScTable* pSrcTab );
568  void CopyScenarioTo( const ScTable* pDestTab ) const;
569  bool TestCopyScenarioTo( const ScTable* pDestTab ) const;
570  void MarkScenarioIn(ScMarkData& rMark, ScScenarioFlags nNeededBits) const;
571  bool HasScenarioRange( const ScRange& rRange ) const;
573  const ScRangeList* GetScenarioRanges() const;
574 
575  void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const;
576 
577  void InvalidateTableArea();
578  void InvalidatePageBreaks();
579 
580  bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty
581  bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow, bool bCalcHiddens = false) const;
582  bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bCalcHiddens = false) const;
583  bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow,
584  SCCOL& rEndCol ) const;
585  bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol,
586  SCROW& rEndRow, bool bNotes ) const;
587 
588  bool GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const;
589 
590  void ExtendPrintArea( OutputDevice* pDev,
591  SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
592 
593  void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
594  bool bIncludeOld, bool bOnlyDown ) const;
595 
596  bool GetDataAreaSubrange( ScRange& rRange ) const;
597 
598  bool ShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, SCROW& rStartRow,
599  SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly,
600  bool bStickyTopRow, bool bStickyLeftCol, bool bConsiderCellNotes,
601  bool bConsiderCellDrawObjects, bool bConsiderCellPatterns ) const;
602 
603  SCROW GetLastDataRow( SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, bool bConsiderCellNotes = false,
604  bool bConsiderCellDrawObjects = false,
605  bool bConsiderCellPatterns = false ) const;
606 
607  SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
608  SCCOL nEndCol, SCROW nEndRow, ScDirection eDir ) const;
609 
610  void FindAreaPos( SCCOL& rCol, SCROW& rRow, ScMoveDirection eDirection ) const;
611  void GetNextPos( SCCOL& rCol, SCROW& rRow, SCCOL nMovX, SCROW nMovY,
612  bool bMarked, bool bUnprotected, const ScMarkData& rMark, SCCOL nTabStartCol ) const;
613 
614  bool SkipRow( const SCCOL rCol, SCROW& rRow, const SCROW nMovY, const ScMarkData& rMark,
615  const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected ) const;
616  void LimitChartArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
617 
618  bool HasData( SCCOL nCol, SCROW nRow ) const;
619  bool HasStringData( SCCOL nCol, SCROW nRow ) const;
620  bool HasValueData( SCCOL nCol, SCROW nRow ) const;
621  bool HasStringCells( SCCOL nStartCol, SCROW nStartRow,
622  SCCOL nEndCol, SCROW nEndRow ) const;
623 
624  sc::MultiDataCellState HasMultipleDataCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
625 
626  FormulaError GetErrCode( const ScAddress& rPos ) const
627  {
628  return IsColRowValid(rPos.Col(),rPos.Row()) ?
629  aCol[rPos.Col()].GetErrCode( rPos.Row() ) :
630  FormulaError::NONE;
631  }
632 
633  void ResetChanged( const ScRange& rRange );
634 
637  void SetDirty( const ScRange&, ScColumn::BroadcastMode );
638  void SetDirtyAfterLoad();
639  void SetDirtyVar();
640  void SetTableOpDirty( const ScRange& );
641  void CalcAll();
642  void CalcAfterLoad( sc::CompileFormulaContext& rCxt, bool bStartListening );
644  void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress );
645 
651  bool BroadcastBroadcasters( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScHint& rHint );
652 
654 
655  void UpdateReference(
656  sc::RefUpdateContext& rCxt, ScDocument* pUndoDoc = nullptr,
657  bool bIncludeDraw = true, bool bUpdateNoteCaptionPos = true );
658 
659  void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
660  SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
661  SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos = true );
662 
663  void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
664  ScDocument* pUndoDoc );
665 
666  void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
667 
670  void UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt, SCTAB nTabNo, ScProgress* pProgress );
671  void UpdateCompile( bool bForceIfNameInUse = false );
672  void SetTabNo(SCTAB nNewTab);
673  void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
674  sc::UpdatedRangeNames& rIndexes) const;
675  void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
676  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd,
677  double nStepValue, double nMaxValue, ScProgress* pProgress);
678  OUString GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
679 
680  void UpdateSelectionFunction( ScFunctionData& rData, const ScMarkData& rMark );
681 
682  void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
683  sal_uInt16 nFormatNo );
684  void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData& rData);
685  bool SearchAndReplace(
686  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark,
687  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
688 
689  void FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2 );
690 
691  bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask ) const;
692  bool HasAttribSelection( const ScMarkData& rMark, HasAttrFlags nMask ) const;
693  bool IsMerged( SCCOL nCol, SCROW nRow ) const;
694  bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
695  SCCOL& rEndCol, SCROW& rEndRow,
696  bool bRefresh );
697  void SetMergedCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
698 
699  const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich ) const;
700  template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, TypedWhichId<T> nWhich ) const
701  {
702  return static_cast<const T*>(GetAttr(nCol, nRow, sal_uInt16(nWhich)));
703  }
704  const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow ) const;
705  const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
706 
707  sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& rPos ) const;
708  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow ) const;
709  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
710 
711  void SetNumberFormat( SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat );
712 
714  const ScMarkData& rMark, bool bDeep ) const;
715  void MergePatternArea( ScMergePatternState& rState, SCCOL nCol1, SCROW nRow1,
716  SCCOL nCol2, SCROW nRow2, bool bDeep ) const;
717  void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner,
718  ScLineFlags& rFlags,
719  SCCOL nStartCol, SCROW nStartRow,
720  SCCOL nEndCol, SCROW nEndRow ) const;
721  void ApplyBlockFrame(const SvxBoxItem& rLineOuter,
722  const SvxBoxInfoItem* pLineInner,
723  SCCOL nStartCol, SCROW nStartRow,
724  SCCOL nEndCol, SCROW nEndRow );
725 
726  void ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
727  void ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
728  void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
729  const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = nullptr,
730  bool* const pIsChanged = nullptr );
731 
732  void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr );
733  const ScPatternAttr* SetPattern( SCCOL nCol, SCROW nRow, std::unique_ptr<ScPatternAttr> );
734  void SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
736  const ScPatternAttr& rPattern, SvNumFormatType nNewType );
737  void AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
738  void RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
739  void SetPatternAreaCondFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
740  const ScPatternAttr& rAttr, const ScCondFormatIndexes& rCondFormatIndexes );
741 
742  void ApplyStyle( SCCOL nCol, SCROW nRow, const ScStyleSheet* rStyle );
743  void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet& rStyle );
744  void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark);
745  void ApplySelectionLineStyle( const ScMarkData& rMark,
746  const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
747 
748  const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow ) const;
749  const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, bool& rFound ) const;
750  const ScStyleSheet* GetAreaStyle( bool& rFound, SCCOL nCol1, SCROW nRow1,
751  SCCOL nCol2, SCROW nRow2 ) const;
752 
753  void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, bool bRemoved,
754  OutputDevice* pDev,
755  double nPPTX, double nPPTY,
756  const Fraction& rZoomX, const Fraction& rZoomY );
757 
758  bool IsStyleSheetUsed( const ScStyleSheet& rStyle ) const;
759 
760  bool ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
761  bool RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
762 
763  void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = nullptr, bool* const pIsChanged = nullptr );
764  void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool bBroadcast = true );
765 
766  void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
767  void ChangeSelectionIndent( bool bIncrement, const ScMarkData& rMark );
768 
769  const ScRange* GetRepeatColRange() const { return pRepeatColRange.get(); }
770  const ScRange* GetRepeatRowRange() const { return pRepeatRowRange.get(); }
771  void SetRepeatColRange( std::unique_ptr<ScRange> pNew );
772  void SetRepeatRowRange( std::unique_ptr<ScRange> pNew );
773 
774  sal_uInt16 GetPrintRangeCount() const { return static_cast< sal_uInt16 >( aPrintRanges.size() ); }
775  const ScRange* GetPrintRange(sal_uInt16 nPos) const;
777  bool IsPrintEntireSheet() const { return bPrintEntireSheet; }
778 
780  void ClearPrintRanges();
782  void AddPrintRange( const ScRange& rNew );
784  void SetPrintEntireSheet();
785 
786  void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const;
787  void RestorePrintRanges( const ScPrintSaverTab& rSaveTab );
788 
789  sal_uInt16 GetOptimalColWidth( SCCOL nCol, OutputDevice* pDev,
790  double nPPTX, double nPPTY,
791  const Fraction& rZoomX, const Fraction& rZoomY,
792  bool bFormula, const ScMarkData* pMarkData,
793  const ScColWidthParam* pParam );
794  bool SetOptimalHeight(
795  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi,
796  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
797 
799  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow,
800  ScProgress* pOuterProgress = nullptr, sal_uLong nProgressStart = 0 );
801 
802  tools::Long GetNeededSize( SCCOL nCol, SCROW nRow,
803  OutputDevice* pDev,
804  double nPPTX, double nPPTY,
805  const Fraction& rZoomX, const Fraction& rZoomY,
806  bool bWidth, bool bTotalSize,
807  bool bInPrintTwips = false);
808  void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
809  void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
810  void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
811  bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
812  double nPPTY, bool bApi );
813 
821  void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight );
822 
823  // nPPT to test for modification
824  void SetManualHeight( SCROW nStartRow, SCROW nEndRow, bool bManual );
825 
826  sal_uInt16 GetColWidth( SCCOL nCol, bool bHiddenAsZero = true ) const;
827  sal_uLong GetColWidth( SCCOL nStartCol, SCCOL nEndCol ) const;
828  sal_uInt16 GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
829  sal_uLong GetRowHeight( SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true ) const;
830  sal_uLong GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong* pnMaxHeight = nullptr ) const;
831  sal_uLong GetColOffset( SCCOL nCol, bool bHiddenAsZero = true ) const;
832  sal_uLong GetRowOffset( SCROW nRow, bool bHiddenAsZero = true ) const;
833 
842  SCROW GetRowForHeight(sal_uLong nHeight) const;
843 
844  sal_uInt16 GetOriginalWidth( SCCOL nCol ) const;
845  sal_uInt16 GetOriginalHeight( SCROW nRow ) const;
846 
847  sal_uInt16 GetCommonWidth( SCCOL nEndCol ) const;
848 
849  SCROW GetHiddenRowCount( SCROW nRow ) const;
850 
851  void ShowCol(SCCOL nCol, bool bShow);
852  void ShowRow(SCROW nRow, bool bShow);
853  void DBShowRow(SCROW nRow, bool bShow);
854 
855  void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
856  void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
857 
858  void SetRowFlags( SCROW nRow, CRFlags nNewFlags );
859  void SetRowFlags( SCROW nStartRow, SCROW nEndRow, CRFlags nNewFlags );
860 
862  SCROW GetLastFlaggedRow() const;
863 
865  SCCOL GetLastChangedCol() const;
867  SCROW GetLastChangedRow() const;
868 
869  bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const;
870  bool IsDataFiltered(const ScRange& rRange) const;
871  CRFlags GetColFlags( SCCOL nCol ) const;
872  CRFlags GetRowFlags( SCROW nRow ) const;
873 
875  { return pRowFlags.get(); }
876 
877  bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, bool bShow );
878  bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, bool bShow );
879 
880  void UpdatePageBreaks( const ScRange* pUserArea );
881  void RemoveManualBreaks();
882  bool HasManualBreaks() const;
883  void SetRowManualBreaks( const ::std::set<SCROW>& rBreaks );
884  void SetColManualBreaks( const ::std::set<SCCOL>& rBreaks );
885 
886  void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
887  void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
888  bool HasRowPageBreak(SCROW nRow) const;
889  bool HasColPageBreak(SCCOL nCol) const;
890  bool HasRowManualBreak(SCROW nRow) const;
891  bool HasColManualBreak(SCCOL nCol) const;
892 
903  SCROW GetNextManualBreak(SCROW nRow) const;
904 
905  void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow);
906  void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual);
907  void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual);
908  void SetRowBreak(SCROW nRow, bool bPage, bool bManual);
909  void SetColBreak(SCCOL nCol, bool bPage, bool bManual);
910  css::uno::Sequence<
911  css::sheet::TablePageBreakData> GetRowBreakData() const;
912 
913  bool RowHidden(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
914  bool RowHiddenLeaf(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
915  bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
916  bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
917  bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
918  void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
919  void CopyColHidden(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
920  void CopyRowHidden(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
921  void CopyRowHeight(const ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
922  SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
923  SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
924  SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
925  sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true) const;
926 
927  SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
928 
929  bool RowFiltered(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
930  bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
931  bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
932  void CopyColFiltered(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
933  void CopyRowFiltered(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
934  void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
935  void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
936  SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
937  SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
938  SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
939 
940  bool IsManualRowHeight(SCROW nRow) const;
941 
942  bool HasUniformRowHeight( SCROW nRow1, SCROW nRow2 ) const;
943 
944  void SyncColRowFlags();
945 
946  void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
947  void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
948 
950  void Sort(
951  const ScSortParam& rSortParam, bool bKeepQuery, bool bUpdateRefs,
952  ScProgress* pProgress, sc::ReorderParam* pUndo );
953 
954  void Reorder( const sc::ReorderParam& rParam );
955 
956  bool ValidQuery(
957  SCROW nRow, const ScQueryParam& rQueryParam, const ScRefCellValue* pCell = nullptr,
958  bool* pbTestEqualCondition = nullptr, const ScInterpreterContext* pContext = nullptr,
959  sc::TableColumnBlockPositionSet* pBlockPos = nullptr );
960  void TopTenQuery( ScQueryParam& );
961  void PrepareQuery( ScQueryParam& rQueryParam );
962  SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub);
963  bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
964 
965  void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries& rFilterEntries, bool bFiltering = false);
966  void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, ScFilterEntries& rFilterEntries, bool bFiltering );
967  [[nodiscard]]
968  bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set<ScTypedStrData>& rStrings);
969 
970  bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
971  bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
972 
973  sal_Int32 GetMaxStringLen( SCCOL nCol,
974  SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const;
975  sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision,
976  SCCOL nCol,
977  SCROW nRowStart, SCROW nRowEnd ) const;
978 
979  bool IsSortCollatorGlobal() const;
980  void InitSortCollator( const ScSortParam& rPar );
981  void DestroySortCollator();
982  void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true,
983  const ScObjectHandling eObjectHandling = ScObjectHandling::RecalcPosMode);
984 
985  void SetRangeName(std::unique_ptr<ScRangeName> pNew);
986  ScRangeName* GetRangeName() const;
987 
989  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
990 
992  sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt );
993 
995  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
996 
1000 
1001  void DeleteConditionalFormat(sal_uLong nOldIndex);
1002 
1003  sal_uLong AddCondFormat( std::unique_ptr<ScConditionalFormat> pNew );
1004 
1005  SvtScriptType GetScriptType( SCCOL nCol, SCROW nRow ) const;
1006  void SetScriptType( SCCOL nCol, SCROW nRow, SvtScriptType nType );
1007  void UpdateScriptTypes( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 );
1008 
1009  SvtScriptType GetRangeScriptType( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1010 
1012  formula::FormulaTokenRef ResolveStaticReference( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1014  bool HandleRefArrayForParallelism( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef& mxGroup );
1015 #ifdef DBG_UTIL
1016  void AssertNoInterpretNeeded( SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1017 #endif
1018 
1019  void SplitFormulaGroups( SCCOL nCol, std::vector<SCROW>& rRows );
1020  void UnshareFormulaCells( SCCOL nCol, std::vector<SCROW>& rRows );
1021  void RegroupFormulaCells( SCCOL nCol );
1022 
1023  ScRefCellValue GetRefCellValue( SCCOL nCol, SCROW nRow );
1025 
1026  SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow );
1027  const SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow ) const;
1028  void DeleteBroadcasters( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1029 
1030  void FillMatrix( ScMatrix& rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool* pPool ) const;
1031 
1032  void InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1033 
1034  void SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen );
1035 
1036  void CalculateInColumnInThread( ScInterpreterContext& rContext, SCCOL nColStart, SCCOL nColEnd,
1037  SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal);
1038  void HandleStuffAfterParallelCalculation( SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter* pInterpreter);
1039 
1048  void StartListeners( sc::StartListeningContext& rCxt, bool bAll );
1049 
1054  void SetDirtyIfPostponed();
1055 
1060  void BroadcastRecalcOnRefMove();
1061 
1062  void TransferCellValuesTo( const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues& rDest );
1063  void CopyCellValuesFrom( const SCCOL nCol, SCROW nRow, const sc::CellValues& rSrc );
1064 
1065  std::optional<sc::ColumnIterator> GetColumnIterator( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
1066 
1067  bool EnsureFormulaCellResults( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning = false );
1068 
1069  void ConvertFormulaToValue(
1071  const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2,
1072  sc::TableValues* pUndo );
1073 
1074  void SwapNonEmpty(
1075  sc::TableValues& rValues, sc::StartListeningContext& rStartCxt, sc::EndListeningContext& rEndCxt );
1076 
1077  void finalizeOutlineImport();
1078 
1079  void StoreToCache(SvStream& rStrm) const;
1080 
1081  void RestoreFromCache(SvStream& rStrm);
1082 
1083 #if DUMP_COLUMN_STORAGE
1084  void DumpColumnStorage( SCCOL nCol ) const;
1085 #endif
1086 
1093  static void UpdateSearchItemAddressForReplace( const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow );
1094 
1095  ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const;
1096  SCCOL ClampToAllocatedColumns(SCCOL nCol) const { return std::min(nCol, static_cast<SCCOL>(aCol.size() - 1)); }
1097  SCCOL GetAllocatedColumnsCount() const { return aCol.size(); }
1098 
1106  OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType);
1107 
1108 private:
1109 
1110  void FillFormulaVertical(
1111  const ScFormulaCell& rSrcCell,
1112  SCCOLROW& rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1113  ScProgress* pProgress, sal_uLong& rProgress );
1114 
1115  void FillSeriesSimple(
1116  const ScCellValue& rSrcCell, SCCOLROW& rInner, SCCOLROW nIMin, SCCOLROW nIMax,
1117  const SCCOLROW& rCol, const SCCOLROW& rRow, bool bVertical, ScProgress* pProgress, sal_uLong& rProgress );
1118 
1119  void FillAutoSimple(
1120  SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd,
1121  SCCOLROW& rInner, const SCCOLROW& rCol, const SCCOLROW& rRow,
1122  sal_uLong nActFormCnt, sal_uLong nMaxFormCnt,
1123  bool bHasFiltered, bool bVertical, bool bPositive,
1124  ScProgress* pProgress, sal_uLong& rProgress );
1125 
1126  void FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1127  sal_uLong nFillCount, FillDir eFillDir, FillCmd eFillCmd,
1128  FillDateCmd eFillDateCmd,
1129  double nStepValue, double nMaxValue, sal_uInt16 nMinDigits,
1130  bool bAttribs, ScProgress* pProgress,
1131  bool bSkipOverlappedCells = false,
1132  std::vector<sal_Int32>* pNonOverlappedCellIdx = nullptr);
1133  void FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1134  FillCmd& rCmd, FillDateCmd& rDateCmd,
1135  double& rInc, sal_uInt16& rMinDigits,
1136  ScUserListData*& rListData, sal_uInt16& rListIndex,
1137  bool bHasFiltered, bool& rSkipOverlappedCells,
1138  std::vector<sal_Int32>& rNonOverlappedCellIdx );
1139  void FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1140  sal_uLong nFillCount, FillDir eFillDir, ScProgress* pProgress );
1141 
1142  bool ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
1143  bool bMarked, bool bUnprotected ) const;
1144 
1145  void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1146  const ScPatternAttr& rAttr, sal_uInt16 nFormatNo);
1147  void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData);
1148  void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData);
1149  bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition& rBlockPos, SCROW nRow,
1150  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1151  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1152  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1153  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1154  SCCOL nLastCol, SCROW nLastRow,
1155  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1156  bool SearchAll(const SvxSearchItem& rSearchItem, const ScMarkData& rMark,
1157  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1158  bool Replace(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1159  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1160  bool ReplaceAll(
1161  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1162  OUString& rUndoStr, ScDocument* pUndoDoc);
1163 
1164  bool SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1165  const ScMarkData& rMark);
1166  bool ReplaceStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1167  const ScMarkData& rMark, bool bIsUndo);
1168  bool SearchAllStyle(
1169  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges);
1170  bool ReplaceAllStyle(
1171  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1172  ScDocument* pUndoDoc);
1174  const SvxSearchItem& rSearchItem,
1175  SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1176  OUString& rUndoStr, ScDocument* pUndoDoc);
1177  bool SearchRangeForEmptyCell(const ScRange& rRange,
1178  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1179  OUString& rUndoStr);
1181  const ScRange& rRange, const SvxSearchItem& rSearchItem,
1182  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1183 
1184  // use the global sort parameter:
1185  bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const;
1186  static void DecoladeRow( ScSortInfoArray*, SCROW nRow1, SCROW nRow2 );
1187  short CompareCell(
1188  sal_uInt16 nSort,
1189  ScRefCellValue& rCell1, SCCOL nCell1Col, SCROW nCell1Row,
1190  ScRefCellValue& rCell2, SCCOL nCell2Col, SCROW nCell2Row ) const;
1191  short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1192  short Compare( ScSortInfoArray*, SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1193  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray( const sc::ReorderParam& rParam );
1194  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray(
1195  const ScSortParam& rSortParam, SCCOLROW nInd1, SCCOLROW nInd2,
1196  bool bKeepQuery, bool bUpdateRefs );
1197  void QuickSort( ScSortInfoArray*, SCCOLROW nLo, SCCOLROW nHi);
1198  void SortReorderByColumn( const ScSortInfoArray* pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress* pProgress );
1199 
1200  void SortReorderByRow( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1201  void SortReorderByRowRefUpdate( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2, ScProgress* pProgress );
1202 
1203  bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1204  bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1205  void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString& rStr);
1206 
1207  bool RefVisible(const ScFormulaCell* pCell);
1208 
1209  bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const;
1210 
1211  void IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillDateCmd eCmd);
1212  void FillFormula(
1213  const ScFormulaCell* pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast );
1214  void UpdateInsertTabAbs(SCTAB nNewPos);
1215  bool GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, bool bInSel,
1216  const ScMarkData& rMark) const;
1217  bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const;
1218  void TestTabRefAbs(SCTAB nTable) const;
1221 
1222  void StartListening( const ScAddress& rAddress, SvtListener* pListener );
1223  void EndListening( const ScAddress& rAddress, SvtListener* pListener );
1224  void StartListening( sc::StartListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1225  void EndListening( sc::EndListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1226 
1227  void AttachFormulaCells( sc::StartListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1228  void DetachFormulaCells( sc::EndListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1229 
1230  void SetLoadingMedium(bool bLoading);
1231 
1232  SCSIZE FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
1233  SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
1234  const ScPatternAttr* pPattern, const SfxItemSet* pCondSet );
1235 
1236  // idle calculation of OutputDevice text width for cell
1237  // also invalidates script type, broadcasts for "calc as shown"
1238  void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo,
1239  bool bNumFormatChanged, bool bBroadcast );
1240 
1241  void SkipFilteredRows(SCROW& rRow, SCROW& rLastNonFilteredRow, bool bForward);
1242 
1247  void MaybeAddExtraColumn(SCCOL& rCol, SCROW nRow, OutputDevice* pDev, double nPPTX, double nPPTY);
1248 
1249  void CopyPrintRange(const ScTable& rTable);
1250 
1251  SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const;
1252 
1253  SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const;
1254 
1263  void TransposeColPatterns(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1,
1264  SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered,
1265  const std::vector<SCROW>& rFilteredRows, SCROW nRowDestOffset);
1266 
1275  void TransposeColNotes(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1276  SCROW nCombinedStartRow, bool bIncludeFiltered, SCROW nRowDestOffset);
1277 
1278  ScColumn* FetchColumn( SCCOL nCol );
1279  const ScColumn* FetchColumn( SCCOL nCol ) const;
1280 
1282  sc::EndListeningContext& rCxt, SCCOL nCol, SCROW nRow, std::vector<ScAddress>* pGroupPos );
1283 
1285  sc::EndListeningContext& rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
1286  std::vector<ScAddress>* pGroupPos );
1287 
1288  void EndListeningGroup( sc::EndListeningContext& rCxt, const SCCOL nCol, SCROW nRow );
1289  void SetNeedsListeningGroup( SCCOL nCol, SCROW nRow );
1290 
1292  OString dumpColumnRowSizes(bool bColumns);
1294  OString dumpHiddenFiltered(bool bColumns, bool bHidden);
1296  OString dumpColumnRowGroups(bool bColumns) const;
1297 
1298  SCCOL GetLOKFreezeCol() const;
1299  SCROW GetLOKFreezeRow() const;
1300  bool SetLOKFreezeCol(SCCOL nFreezeCol);
1301  bool SetLOKFreezeRow(SCROW nFreezeRow);
1302 
1307  {
1308  static constexpr SCROW ROW_NOT_FOUND = -1;
1309 
1310  public:
1311  explicit VisibleDataCellIterator(const ScDocument& rDoc, ScFlatBoolRowSegments& rRowSegs, ScColumn& rColumn);
1313 
1321  ScRefCellValue reset(SCROW nRow);
1322 
1328  ScRefCellValue next();
1329 
1336  SCROW getRow() const { return mnCurRow;}
1337 
1338  private:
1345  };
1346 
1347 };
1348 
1349 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OUString GetAutoFillPreview(const ScRange &rSource, SCCOL nEndX, SCROW nEndY)
Definition: table4.cxx:1211
formula::FormulaTokenRef ResolveStaticReference(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2417
void FindMaxRotCol(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2)
Definition: table2.cxx:2365
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:1685
void SetMergedCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:2261
void PrepareQuery(ScQueryParam &rQueryParam)
Definition: table3.cxx:3142
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
Definition: table2.cxx:2128
void CopyUpdated(const ScTable *pPosTab, ScTable *pDestTab) const
Definition: table2.cxx:1517
svl::SharedString GetSharedString(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1722
constexpr double nPPTY
bool TestCopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1606
SCTAB nTab
Definition: table.hxx:204
const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2191
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:3185
bool bStreamValid
Definition: table.hxx:239
SCCOL GetLastChangedCol() const
Definition: table2.cxx:3752
Iterator(const std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn >>>::const_iterator &colIter)
Definition: table.hxx:132
bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3476
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:2488
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
Definition: types.hxx:43
OUString aComment
Definition: table.hxx:161
bool ColFiltered(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:853
const Iterator maEnd
Definition: table.hxx:149
bool operator==(const Iterator &rOther) const
Definition: table.hxx:137
ScFormulaCell * SetFormulaCell(SCCOL nCol, SCROW nRow, ScFormulaCell *pCell)
Takes ownership of pCell.
Definition: table2.cxx:1703
void ApplyStyleArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet &rStyle)
Definition: table2.cxx:2873
bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask) const
Definition: table2.cxx:2211
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:1019
void TransferCellValuesTo(const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues &rDest)
Definition: table7.cxx:189
void SetActiveScenario(bool bSet)
Definition: table.hxx:355
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:2727
sal_uLong GetWeightedCount() const
Definition: table3.cxx:3598
bool HasBlockMatrixFragment(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2442
void CompileAll(sc::CompileFormulaContext &rCxt)
Definition: table2.cxx:2093
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
std::optional< sc::ColumnIterator > GetColumnIterator(SCCOL nCol, SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:425
void ForgetNoteCaptions(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData)
Definition: table2.cxx:1842
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
Definition: table2.cxx:2015
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2849
void SetRowFlags(SCROW nRow, CRFlags nNewFlags)
Definition: table2.cxx:3686
bool IsBlockEmpty(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bIgnoreNotes) const
Definition: table2.cxx:2276
void SetRowHeight(SCROW nRow, sal_uInt16 nNewHeight)
Definition: table2.cxx:3124
void DeleteConditionalFormat(sal_uLong nOldIndex)
Definition: table1.cxx:2587
void DestroySortCollator()
Definition: table3.cxx:636
std::unique_ptr< ScFlatUInt16RowSegments > mpRowHeights
Definition: table.hxx:181
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:2849
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:181
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:234
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:2836
SCCOL nTableAreaX
Definition: table.hxx:199
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:2803
void InitSortCollator(const ScSortParam &rPar)
Definition: table3.cxx:619
void UpdateScriptTypes(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2)
Definition: table7.cxx:246
bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const
Definition: table2.cxx:3665
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Definition: table2.cxx:2638
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:3241
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:877
void SetScenario(bool bFlag)
Definition: table1.cxx:407
bool mbForceBreaks
Definition: table.hxx:246
void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:400
SCTAB GetTab() const
Definition: table.hxx:281
size_t GetNoteCount(SCCOL nCol) const
Definition: table2.cxx:1820
::std::set< SCROW > maRowPageBreaks
Definition: table.hxx:190
void ApplyPattern(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:2786
ScColumn * FetchColumn(SCCOL nCol)
Definition: table2.cxx:1228
const ScSheetEvents * GetSheetEvents() const
Definition: table.hxx:309
sheet protection state container
void InterpretDirtyCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table1.cxx:2528
ScObjectHandling
Definition: drwlayer.hxx:89
void SetScenarioColor(const Color &rNew)
Definition: table.hxx:350
bool HasFormulaCell(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:294
const Iterator maBegin
Definition: table.hxx:148
bool IsPendingRowHeights() const
Definition: table.hxx:334
std::unique_ptr< ScPostIt > ReleaseNote(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1812
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:774
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:3974
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:1759
SCCOL size() const
ScSortParam aSortParam
Definition: table.hxx:211
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:458
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:1742
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:1272
std::unique_ptr< ScFlatBoolColSegments > mpFilteredCols
Definition: table.hxx:187
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
Definition: table2.cxx:2930
bool HasScenarioRange(const ScRange &rRange) const
Definition: table2.cxx:1564
bool IsVisible() const
Definition: table.hxx:312
ScLinkMode nLinkMode
Definition: table.hxx:168
CommentCaptionState GetAllNoteCaptionsState(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes)
Definition: table2.cxx:1868
sal_uInt16 nLockCount
Definition: table.hxx:219
ScRefCellValue reset(SCROW nRow)
Set the start row position.
Definition: table1.cxx:2291
SCROW getRow() const
Get the current row position.
Definition: table.hxx:1336
void SetFormulaResults(SCCOL nCol, SCROW nRow, const double *pResults, size_t nLen)
Definition: table1.cxx:2535
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Definition: table3.cxx:3638
OUString aLinkFlt
Definition: table.hxx:164
const SCCOL * pointer
Definition: table.hxx:129
Store position data for column array storage.
bool mbPageBreaksValid
Definition: table.hxx:245
void TransposeColPatterns(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered, const std::vector< SCROW > &rFilteredRows, SCROW nRowDestOffset)
Transpose clipboard patterns.
Definition: table2.cxx:1042
Stores cell values for multiple tables.
Definition: cellvalues.hxx:85
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
Definition: table2.cxx:2116
sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:86
void GetFirstDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1937
SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const
Definition: table5.cxx:811
void SetManualHeight(SCROW nStartRow, SCROW nEndRow, bool bManual)
Definition: table2.cxx:3252
SCSIZE Query(const ScQueryParam &rQueryParam, bool bKeepSub)
Definition: table3.cxx:3147
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden)
Definition: table5.cxx:638
const OUString & GetLinkDoc() const
Definition: table.hxx:360
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:238
void CopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1535
static void DecoladeRow(ScSortInfoArray *, SCROW nRow1, SCROW nRow2)
Definition: table3.cxx:1683
void SetCodeName(const OUString &rNewName)
Definition: table.hxx:378
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:1465
void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam &rParam, ScFilterEntries &rFilterEntries, bool bFiltering)
Definition: table3.cxx:3560
std::reverse_iterator< Iterator > rbegin()
Definition: table.hxx:145
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:3496
Accessor class to ScDocument.
void RemoveEditTextCharAttribs(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:1781
void SkipFilteredRows(SCROW &rRow, SCROW &rLastNonFilteredRow, bool bForward)
Definition: table6.cxx:281
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2920
void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCROW nCombinedStartRow, SCROW nRowDestOffset, ScTable *pTransClip, InsertDeleteFlags nFlags, bool bAsLink, bool bIncludeFiltered)
Definition: table2.cxx:980
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:1963
SCCOL operator*() const
Definition: table.hxx:139
void SetDirtyAfterLoad()
Definition: table2.cxx:2044
void RemoveSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1864
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:2758
void CompileHybridFormula(sc::StartListeningContext &rStartListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:239
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:3647
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
Definition: table2.cxx:2904
std::unique_ptr< ScRangeName > mpRangeName
Definition: table.hxx:226
void RestoreFromCache(SvStream &rStrm)
Definition: table7.cxx:475
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:4122
std::vector< std::unique_ptr< ScColumn, o3tl::default_delete< ScColumn > > >::const_iterator maColIter
Definition: table.hxx:124
SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:744
SCROW nTableAreaVisibleY
Definition: table.hxx:202
bool bTableAreaVisibleValid
Definition: table.hxx:237
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:3064
bool HasRowHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:3513
ScOutlineTable * GetOutlineTable()
Definition: table.hxx:283
ScRangeVec aPrintRanges
Definition: table.hxx:214
exports com.sun.star. sheet
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:232
const ScDocument & mrDocument
Definition: table.hxx:1339
void MarkScenarioIn(ScMarkData &rMark, ScScenarioFlags nNeededBits) const
Definition: table2.cxx:1553
Row-wise value iterator.
Definition: dociter.hxx:478
void FillFormula(const ScFormulaCell *pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast)
Definition: table4.cxx:747
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:331
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:1244
void SetStreamValid(bool bSet, bool bIgnoreLock=false)
Definition: table1.cxx:374
ScColumn & CreateColumnIfNotExists(const SCCOL nScCol) const
Definition: table.hxx:285
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:1264
Store arbitrary cell value of any kind.
Definition: cellvalue.hxx:35
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table7.cxx:344
void CalculateInColumnInThread(ScInterpreterContext &rContext, SCCOL nColStart, SCCOL nColEnd, SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal)
Definition: table1.cxx:2543
void ResetChanged(const ScRange &rRange)
Definition: table2.cxx:2134
sal_uLong GetColOffset(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:4189
static constexpr SCROW ROW_NOT_FOUND
Definition: table.hxx:1308
Stores individual user-defined sort list.
Definition: userlist.hxx:32
void SetNumberFormat(SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat)
Definition: table2.cxx:2183
std::reverse_iterator< Iterator > rend()
Definition: table.hxx:146
void Reorder(const sc::ReorderParam &rParam)
Definition: table3.cxx:1765
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:2554
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:2034
void finalizeOutlineImport()
Definition: table7.cxx:451
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:2521
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:371
void TransposeColNotes(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered, SCROW nRowDestOffset)
Transpose clipboard notes.
Definition: table2.cxx:1113
void GetFormula(SCCOL nCol, SCROW nRow, OUString &rFormula) const
Definition: table2.cxx:1789
sal_uLong GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, double fScale, const sal_uLong *pnMaxHeight=nullptr) const
Definition: table2.cxx:3432
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, bool bShow)
Definition: table2.cxx:3784
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:205
double * GetValueCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1750
void ClearPrintRanges()
Removes all print ranges.
Definition: table1.cxx:2224
void SetColWidthOnly(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:3112
void PreprocessRangeNameUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:225
void HandleStuffAfterParallelCalculation(SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter *pInterpreter)
Definition: table1.cxx:2560
Walk through all cells in an area.
Definition: dociter.hxx:207
bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set< ScTypedStrData > &rStrings)
Definition: table3.cxx:3583
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:3832
bool IsLinked() const
Definition: table.hxx:359
SCROW nRepeatStartY
Definition: table.hxx:175
std::input_iterator_tag iterator_category
Definition: table.hxx:126
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:1438
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:3091
bool HasValueData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1979
void CopyCellValuesFrom(const SCCOL nCol, SCROW nRow, const sc::CellValues &rSrc)
Definition: table7.cxx:197
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:317
SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:931
bool HasUniformRowHeight(SCROW nRow1, SCROW nRow2) const
Definition: table7.cxx:257
Optimized ColumnSpanSet version that operates on a single ScRange.
void SetValue(SCCOL nCol, SCROW nRow, const double &rVal)
Definition: table2.cxx:1730
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:2762
void FindAreaPos(SCCOL &rCol, SCROW &rRow, ScMoveDirection eDirection) const
Definition: table1.cxx:1293
std::unique_ptr< ScOutlineTable > pOutlineTable
Definition: table.hxx:195
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:3902
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:4084
void SetPattern(const ScAddress &rPos, const ScPatternAttr &rAttr)
Definition: table2.cxx:3045
bool RemoveFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:3033
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:336
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:361
sal_uInt16 GetOriginalWidth(SCCOL nCol) const
Definition: table2.cxx:3304
bool HasSelectionMatrixFragment(const ScMarkData &rMark) const
Definition: table2.cxx:2538
std::unique_ptr< ScBitMaskCompressedArray< SCCOL, CRFlags > > mpColFlags
Definition: table.hxx:183
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:340
std::unique_ptr< utl::TextSearch > pSearchText
Definition: table.hxx:206
bool IsColValid(const SCCOL nScCol) const
Definition: table.hxx:318
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:126
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:578
void FillAuto(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uLong nFillCount, FillDir eFillDir, ScProgress *pProgress)
Definition: table4.cxx:789
std::unique_ptr< ScFlatBoolColSegments > mpHiddenCols
Definition: table.hxx:185
void IncDate(double &rVal, sal_uInt16 &nDayOfMonth, double nStep, FillDateCmd eCmd)
Definition: table4.cxx:1485
bool SetFormulaCells(SCCOL nCol, SCROW nRow, std::vector< ScFormulaCell * > &rCells)
Definition: table2.cxx:1714
ScPasteFunc
Definition: global.hxx:188
sal_uLong GetLinkRefreshDelay() const
Definition: table.hxx:364
void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3623
void ApplyStyle(SCCOL nCol, SCROW nRow, const ScStyleSheet *rStyle)
Definition: table2.cxx:2866
SCSIZE GetEmptyLinesInBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScDirection eDir) const
Definition: table1.cxx:1115
void SetScenarioFlags(ScScenarioFlags nNew)
Definition: table.hxx:354
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:4055
OUString aCodeName
Definition: table.hxx:160
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:330
Set of column block positions only for one table.
bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3329
const ScFormulaCell * GetFormulaCell(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1797
ScDocument & GetDoc()
Definition: table.hxx:279
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:326
void AssertNoInterpretNeeded(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2464
bool operator!=(const Iterator &rOther) const
Definition: table.hxx:138
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:2001
CollatorWrapper * pSortCollator
Definition: table.hxx:212
void AddCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2815
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:216
bool HasColManualBreak(SCCOL nCol) const
Definition: table5.cxx:386
const ScRangeList * GetScenarioRanges() const
Definition: table2.cxx:1592
void CheckVectorizationState()
Definition: table2.cxx:2007
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:2659
sal_Int16 SCCOL
Definition: types.hxx:21
sal_uInt16 GetColWidth(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:3267
InsertDeleteFlags
Definition: global.hxx:157
bool ValidCol(SCCOL nCol) const
Definition: document.hxx:874
const ScRange * GetRepeatRowRange() const
Definition: table.hxx:770
void InvalidateScenarioRanges()
Definition: table2.cxx:1587
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:208
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:1451
std::unique_ptr< ScDBData > pDBDataNoName
Definition: table.hxx:225
void UnshareFormulaCells(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:278
void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:427
bool TestRemoveSubTotals(const ScSubTotalParam &rParam)
Definition: table3.cxx:1830
void CreateColumnIfNotExistsImpl(const SCCOL nScCol) const
Definition: table1.cxx:2638
void CopyRowHidden(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:687
ScFlatBoolRowSegments & mrRowSegs
Definition: table.hxx:1340
CRFlags GetRowFlags(SCROW nRow) const
Definition: table2.cxx:3714
void SetEmptyCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1677
::std::map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap
const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nWhich) const
Definition: table2.cxx:2147
OUString aLinkDoc
Definition: table.hxx:163
ScScenarioFlags nScenarioFlags
Definition: table.hxx:224
void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, sal_uInt16 nFormatNo)
Definition: table4.cxx:2499
void GetUnprotectedCells(ScRangeList &rRangeList) const
Definition: table2.cxx:1901
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:3522
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
Definition: table2.cxx:2224
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:356
const EditTextObject * GetEditText(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1773
const Color & GetScenarioColor() const
Definition: table.hxx:349
void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3591
ScAddress maLOKFreezeCell
Definition: table.hxx:230
void GetNotesInRange(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1857
::boost::intrusive_ptr< FormulaToken > FormulaTokenRef
std::unique_ptr< ScTableProtection > pTabProtection
Definition: table.hxx:178
ScRefCellValue GetRefCellValue(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2488
void GetLastDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:1952
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:558
void AutoFormat(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, sal_uInt16 nFormatNo)
Definition: table4.cxx:2510
void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
Definition: table4.cxx:2719
bool GetNextMarkedCell(SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark) const
Definition: table1.cxx:1673
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
Definition: table2.cxx:2102
SvNumFormatType
bool bTableAreaValid
Definition: table.hxx:236
OUString aName
Definition: table.hxx:159
ScColContainer aCol
Definition: table.hxx:157
void SetRawString(SCCOL nCol, SCROW nRow, const svl::SharedString &rStr)
Definition: table2.cxx:1736
bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3250
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:1291
bool GetTableArea(SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
Definition: table1.cxx:549
void LockTable()
Definition: table2.cxx:2722
void DBShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3565
const OUString & GetCodeName() const
Definition: table.hxx:377
::std::set< SCROW > maRowManualBreaks
Definition: table.hxx:191
std::unique_ptr< ScConditionalFormatList > mpCondFormatList
Definition: table.hxx:228
bool DoSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1943
Color aTabBgColor
Definition: table.hxx:223
const Iterator & end()
Definition: table.hxx:144
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
Definition: table2.cxx:2910
SvtScriptType GetRangeScriptType(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2407
Iterator & operator--()
Definition: table.hxx:135
void BroadcastRecalcOnRefMove()
Broadcast dirty formula cells that contain functions such as CELL(), COLUMN() or ROW() which may chan...
Definition: table2.cxx:2062
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:3629
CommentCaptionState
Definition: document.hxx:253
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3802
bool ReservePatternCount(SCCOL nCol, SCSIZE nReserve)
Definition: table4.cxx:2871
void SetTabNo(SCTAB nNewTab)
Definition: table1.cxx:1976
bool IsStreamValid() const
Definition: table.hxx:315
const ScBitMaskCompressedArray< SCROW, CRFlags > * GetRowFlagsArray() const
Definition: table.hxx:874
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:3023
bool IsScenario() const
Definition: table.hxx:345
bool bLayoutRTL
Definition: table.hxx:233
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
Definition: column.hxx:172
bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const
Definition: table1.cxx:1166
bool ContainsNotesInRange(const ScRange &rRange) const
Definition: table2.cxx:1907
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:1619
SCCOL nTableAreaVisibleX
Definition: table.hxx:201
void SetCondFormList(ScConditionalFormatList *pList)
Definition: table1.cxx:2592
Iterate through all edit text cells in a given sheet.
void GetScenarioComment(OUString &rComment) const
Definition: table.hxx:347
SheetGeomType
Represents the type of sheet geometry data.
Definition: document.hxx:267
bool RefVisible(const ScFormulaCell *pCell)
Definition: table2.cxx:4025
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:328
void MergePatternArea(ScMergePatternState &rState, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bDeep) const
Definition: table2.cxx:2750
SCROW GetLOKFreezeRow() const
Definition: table7.cxx:594
const OUString & GetLinkTab() const
Definition: table.hxx:363
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:1303
bool GetDataAreaSubrange(ScRange &rRange) const
Definition: table1.cxx:936
bool SetLOKFreezeCol(SCCOL nFreezeCol)
Definition: table7.cxx:599
SCSIZE GetPatternCount(SCCOL nCol) const
Definition: table4.cxx:2855
::std::vector< ScRange > ScRangeVec
Definition: table.hxx:155
Iterator & operator++()
Definition: table.hxx:134
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:1679
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:876
void InvalidatePageBreaks()
Definition: table2.cxx:1530
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:165
::std::set< SCCOL > maColPageBreaks
Definition: table.hxx:192
SCCOL nRepeatEndX
Definition: table.hxx:174
void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2646
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 GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries &rFilterEntries, bool bFiltering=false)
Definition: table3.cxx:3550
void UpdateInsertTabAbs(SCTAB nNewPos)
Definition: table4.cxx:2797
OUString aPageStyle
Definition: table.hxx:171
const Iterator & begin()
Definition: table.hxx:143
void SetScenarioComment(const OUString &rComment)
Definition: table.hxx:348
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:322
bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:3436
const OUString & GetPageStyle() const
Definition: table.hxx:382
bool IsPrintEntireSheet() const
Returns true, if the sheet is always printed.
Definition: table.hxx:777
bool SearchStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark)
Definition: table6.cxx:614
bool ValidRow(SCROW nRow) const
Definition: document.hxx:875
void TopTenQuery(ScQueryParam &)
Definition: table3.cxx:2904
ScMF
Definition: attrib.hxx:34
std::unique_ptr< ScFlatBoolRowSegments > mpFilteredRows
Definition: table.hxx:188
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:217
void CopyScenarioFrom(const ScTable *pSrcTab)
Definition: table2.cxx:1543
sal_uInt32 GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero=true) const
Definition: table5.cxx:788
ScRangeName * GetRangeName() const
Definition: table2.cxx:4092
void GetDataArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bIncludeOld, bool bOnlyDown) const
Definition: table1.cxx:813
SCROW nRepeatEndY
Definition: table.hxx:176
ScRefCellValue GetCellValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1929
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:451
bool IsLoadingRTL() const
Definition: table.hxx:341
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:332
const ScDocument & GetDoc() const
Definition: table.hxx:280
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:2069
sal_uInt16 GetCommonWidth(SCCOL nEndCol) const
Definition: table2.cxx:3314
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:2737
short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const
Definition: table3.cxx:1644
sal_uLong GetCellCount() const
Definition: table3.cxx:3588
ScLinkMode GetLinkMode() const
Definition: table.hxx:358
void DumpColumnStorage(SCCOL nCol) const
ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const
Definition: table1.cxx:2610
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:871
const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const
Definition: table2.cxx:2202
SCROW GetLastChangedRow() const
Definition: table2.cxx:3767
::std::set< SCCOL > maColManualBreaks
Definition: table.hxx:193
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:222
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:2512
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:2085
void GetInputString(SCCOL nCol, SCROW nRow, OUString &rString) const
Definition: table2.cxx:1758
bool bPendingRowHeights
Definition: table.hxx:240
formula::VectorRefArray FetchVectorRefArray(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2452
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:180
void InvalidateTableArea()
Definition: table2.cxx:1525
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
Definition: table2.cxx:3083
void SortReorderByRowRefUpdate(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1163
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow, SCSIZE nSize) const
Definition: table2.cxx:254
bool bGlobalKeepQuery
Definition: table.hxx:242
bool HandleRefArrayForParallelism(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
Definition: table1.cxx:2472
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:400
SvtBroadcaster * GetBroadcaster(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2504
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1851
void Sort(const ScSortParam &rSortParam, bool bKeepQuery, bool bUpdateRefs, ScProgress *pProgress, sc::ReorderParam *pUndo)
Sort a range of data.
Definition: table3.cxx:1694
SCROW nTableAreaY
Definition: table.hxx:200
void SetDirty(const ScRange &, ScColumn::BroadcastMode)
Definition: table2.cxx:2023
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:2042
ScScenarioFlags GetScenarioFlags() const
Definition: table.hxx:353
const OUString & GetLinkOpt() const
Definition: table.hxx:362
void SetColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:457
SCROW GetNotePosition(SCCOL nCol, size_t nIndex) const
Definition: table2.cxx:1828
bool SetLOKFreezeRow(SCROW nFreezeRow)
Definition: table7.cxx:616
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:2296
SCCOL nRepeatStartX
Definition: table.hxx:173
FormulaError GetErrCode(const ScAddress &rPos) const
Definition: table.hxx:626
sal_uLong GetCodeCount() const
Definition: table3.cxx:3618
void SetDirtyIfPostponed()
Mark formula cells dirty that have the mbPostponedDirty flag set or contain named ranges with relativ...
Definition: table2.cxx:2053
std::unique_ptr< ScRange > pRepeatRowRange
Definition: table.hxx:217
bool EnsureFormulaCellResults(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning=false)
Definition: table7.cxx:433
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:700
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table2.cxx:1280
SCROW GetFirstEditTextRow(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:1650
bool RowFiltered(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:835
void RegroupFormulaCells(SCCOL nCol)
Definition: table7.cxx:286
void SetLoadingMedium(bool bLoading)
Definition: table2.cxx:2080
bool HasStringCells(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:1987
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:1971
bool SetEditText(SCCOL nCol, SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
Definition: table2.cxx:1631
bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bRefresh)
Definition: table2.cxx:2239
std::unique_ptr< ScRangeList > pScenarioRanges
Definition: table.hxx:221
void StyleSheetChanged(const SfxStyleSheetBase *pStyleSheet, bool bRemoved, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY)
Definition: table2.cxx:2997
The data type represents bits, manageable by bitwise operations.
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
Definition: table2.cxx:2805
ScDirection
Definition: global.hxx:351
sal_uLong GetRowOffset(SCROW nRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:4099
OUString aLinkTab
Definition: table.hxx:166
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:1096
ScDocument & rDocument
Definition: table.hxx:205
void QuickSort(ScSortInfoArray *, SCCOLROW nLo, SCCOLROW nHi)
Definition: table3.cxx:1602
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:2956
bool GetCalcNotification() const
Definition: table.hxx:337
void FillFormulaVertical(const ScFormulaCell &rSrcCell, SCCOLROW &rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2, ScProgress *pProgress, sal_uLong &rProgress)
Definition: table4.cxx:1614
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:2155
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:2772
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:1836
bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table3.cxx:1673
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCCOL nCol, SCROW nRow, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:308
bool bActiveScenario
Definition: table.hxx:244
std::unique_ptr< ScBitMaskCompressedArray< SCROW, CRFlags > > pRowFlags
Definition: table.hxx:184
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
Definition: table2.cxx:2982
bool RowHiddenLeaf(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:526
bool bPageSizeValid
Definition: table.hxx:235
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
Definition: table7.cxx:216
bool bPrintEntireSheet
Definition: table.hxx:243
void StoreToCache(SvStream &rStrm) const
Definition: table7.cxx:459
ScColumnsRange(const Iterator &rBegin, const Iterator &rEnd)
Definition: table.hxx:142
std::unique_ptr< ScFlatBoolRowSegments > mpHiddenRows
Definition: table.hxx:186
const Color & GetTabBgColor() const
Definition: table.hxx:351
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:769
SCCOL GetAllocatedColumnsCount() const
Definition: table.hxx:1097
sal_uInt16 GetRowHeight(SCROW nRow, SCROW *pStartRow, SCROW *pEndRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3365
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:2792
CRFlags GetColFlags(SCCOL nCol) const
Definition: table2.cxx:3706
ScDBData * GetAnonymousDBData()
Definition: table.hxx:375
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:2843
SCCOL GetLOKFreezeCol() const
Definition: table7.cxx:589
void GetUpperCellString(SCCOL nCol, SCROW nRow, OUString &rStr)
Definition: table2.cxx:4047
const OUString & GetUpperName() const
Definition: table1.cxx:359
std::unique_ptr< ScSheetEvents > pSheetEvents
Definition: table.hxx:197
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:1766
void StartOutlineTable()
Definition: table2.cxx:115
ScAttrArray aDefaultColAttrArray
Definition: table.hxx:249
void SetError(SCCOL nCol, SCROW nRow, FormulaError nError)
Definition: table4.cxx:2791
Size aPageSizeTwips
Definition: table.hxx:172
bool ValidTab(SCTAB nTab)
Definition: address.hxx:104
sal_uLong nLinkRefreshDelay
Definition: table.hxx:167
bool IsMerged(SCCOL nCol, SCROW nRow) const
Definition: table7.cxx:27
SCROW GetLastFlaggedRow() const
Definition: table2.cxx:3722
SCROW GetHiddenRowCount(SCROW nRow) const
Definition: table2.cxx:3508
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:613
Use this to iterate through non-empty visible cells in a single column.
Definition: table.hxx:1306
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:786
bool bScenario
Definition: table.hxx:232
void SplitFormulaGroups(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:270
void ApplySelectionCache(SfxItemPoolCache *pCache, const ScMarkData &rMark, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:3070
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, bool bShow)
Definition: table2.cxx:3794
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:3077
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:485
bool GetDataStart(SCCOL &rStartCol, SCROW &rStartRow) const
Definition: table1.cxx:751
bool bCalcNotification
Definition: table.hxx:241
OString dumpColumnRowSizes(bool bColumns)
Returns list-of-spans representation of the column-widths/row-heights in twips encoded as an OString...
Definition: table7.cxx:518
void RemoveCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2832
void ShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3542
ScConditionalFormatList * GetCondFormList()
Definition: table1.cxx:2597
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered)
Definition: table5.cxx:915