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 <tools/gen.hxx>
23 #include <tools/color.hxx>
24 #include "attarray.hxx"
25 #include "column.hxx"
26 #include "colcontainer.hxx"
27 #include "sortparam.hxx"
28 #include "types.hxx"
29 #include "cellvalue.hxx"
30 #include <formula/types.hxx>
31 #include "calcmacros.hxx"
32 #include <formula/errorcodes.hxx>
33 #include "document.hxx"
34 #include "drwlayer.hxx"
35 #include "SparklineList.hxx"
36 
37 #include <algorithm>
38 #include <atomic>
39 #include <memory>
40 #include <optional>
41 #include <set>
42 #include <vector>
43 
44 template <typename A, typename D> class ScBitMaskCompressedArray;
45 template <typename A, typename D> class ScCompressedArray;
46 
47 namespace utl {
48  class TextSearch;
49 }
50 
51 namespace com::sun::star {
52  namespace sheet {
53  struct TablePageBreakData;
54  }
55 }
56 
57 namespace formula { struct VectorRefArray; }
58 namespace sc {
59 
60 class StartListeningContext;
61 class EndListeningContext;
62 class CopyFromClipContext;
63 class CopyToClipContext;
64 class CopyToDocContext;
65 class MixDocContext;
66 class ColumnSpanSet;
67 class RangeColumnSpanSet;
68 class ColumnSet;
69 struct ColumnBlockPosition;
70 class TableColumnBlockPositionSet;
71 struct RefUpdateContext;
72 struct RefUpdateInsertTabContext;
73 struct RefUpdateDeleteTabContext;
74 struct RefUpdateMoveTabContext;
75 struct NoteEntry;
76 class DocumentStreamAccess;
77 class CellValues;
78 class TableValues;
79 class RowHeightContext;
80 class CompileFormulaContext;
81 struct SetFormulaDirtyContext;
82 class ColumnIterator;
83 class ScDrawObjData;
84 }
85 
86 class SfxItemSet;
87 class SfxStyleSheetBase;
88 class SvxBoxInfoItem;
89 class SvxBoxItem;
90 class SvxSearchItem;
91 
92 class ScAutoFormatData;
93 class ScEditDataArray;
94 class ScFormulaCell;
95 class ScOutlineTable;
96 class ScPrintSaverTab;
97 class ScProgress;
98 class ScRangeList;
99 class ScSheetEvents;
100 class ScSortInfoArray;
101 class ScConditionalFormat;
103 class ScStyleSheet;
104 class ScTableProtection;
105 class ScUserListData;
106 struct RowInfo;
107 class ScFunctionData;
108 class CollatorWrapper;
112 struct ScSetStringParam;
113 struct ScColWidthParam;
114 class ScRangeName;
115 class ScDBData;
116 class ScHint;
117 class ScPostIt;
118 struct ScInterpreterContext;
119 
120 
121 class ScColumnsRange final
122 {
123  public:
124  class Iterator final
125  {
127  public:
128  typedef std::bidirectional_iterator_tag iterator_category;
129  typedef SCCOL value_type;
131  typedef const SCCOL* pointer;
132  typedef SCCOL reference;
133 
134  explicit Iterator(SCCOL nCol) : mCol(nCol) {}
135 
136  Iterator& operator++() { ++mCol; return *this;}
137  Iterator& operator--() { --mCol; return *this;}
138 
139  // Comparing iterators from different containers is undefined, so comparing mCol is enough.
140  bool operator==(const Iterator & rOther) const {return mCol == rOther.mCol;}
141  bool operator!=(const Iterator & rOther) const {return !(*this == rOther);}
142  SCCOL operator*() const {return mCol;}
143  };
144 
145  ScColumnsRange(SCCOL nBegin, SCCOL nEnd) : maBegin(nBegin), maEnd(nEnd) {}
146  const Iterator & begin() { return maBegin; }
147  const Iterator & end() { return maEnd; }
148  std::reverse_iterator<Iterator> rbegin() { return std::reverse_iterator<Iterator>(maEnd); }
149  std::reverse_iterator<Iterator> rend() { return std::reverse_iterator<Iterator>(maBegin); }
150 private:
153 };
154 
155 class ScTable
156 {
157 private:
158  typedef ::std::vector< ScRange > ScRangeVec;
159 
161 
162  OUString aName;
163  OUString aCodeName;
164  OUString aComment;
165 
166  OUString aLinkDoc;
167  OUString aLinkFlt;
168  OUString aLinkOpt;
169  OUString aLinkTab;
172 
173  // page style template
174  OUString aPageStyle;
175  Size aPageSizeTwips; // size of the print-page
176  SCCOL nRepeatStartX; // repeating rows/columns
177  SCCOL nRepeatEndX; // REPEAT_NONE, if not used
180 
181  std::unique_ptr<ScTableProtection> pTabProtection;
182 
183  std::unique_ptr<ScCompressedArray<SCCOL, sal_uInt16>> mpColWidth;
184  std::unique_ptr<ScFlatUInt16RowSegments> mpRowHeights;
185 
186  std::unique_ptr<ScBitMaskCompressedArray<SCCOL, CRFlags>> mpColFlags;
187  std::unique_ptr<ScBitMaskCompressedArray< SCROW, CRFlags>> pRowFlags;
188  std::unique_ptr<ScFlatBoolColSegments> mpHiddenCols;
189  std::unique_ptr<ScFlatBoolRowSegments> mpHiddenRows;
190  std::unique_ptr<ScFlatBoolColSegments> mpFilteredCols;
191  std::unique_ptr<ScFlatBoolRowSegments> mpFilteredRows;
192 
193  ::std::set<SCROW> maRowPageBreaks;
194  ::std::set<SCROW> maRowManualBreaks;
195  ::std::set<SCCOL> maColPageBreaks;
196  ::std::set<SCCOL> maColManualBreaks;
197 
198  std::unique_ptr<ScOutlineTable> pOutlineTable;
199 
200  std::unique_ptr<ScSheetEvents> pSheetEvents;
201 
206 
209  std::unique_ptr<utl::TextSearch> pSearchText;
210 
211  mutable OUString aUpperName; // #i62977# filled only on demand, reset in SetName
212 
213  // sort parameter to minimize stack size of quicksort
216 
217  ScRangeVec aPrintRanges;
218 
219  std::unique_ptr<ScRange> pRepeatColRange;
220  std::unique_ptr<ScRange> pRepeatRowRange;
221 
222  sal_uInt16 nLockCount;
223 
224  std::unique_ptr<ScRangeList> pScenarioRanges;
228  std::unique_ptr<ScDBData> pDBDataNoName;
229  mutable std::unique_ptr<ScRangeName> mpRangeName;
230 
231  std::unique_ptr<ScConditionalFormatList> mpCondFormatList;
233 
235 
236  bool bScenario:1;
237  bool bLayoutRTL:1;
238  bool bLoadingRTL:1;
240  mutable bool bTableAreaValid:1;
241  mutable bool bTableAreaVisibleValid:1;
242  bool bVisible:1;
251  std::atomic<bool> bStreamValid;
252 
253  // Default attributes for the unallocated columns.
255 
256 friend class ScDocument; // for FillInfo
257 friend class ScColumn;
258 friend class ScValueIterator;
262 friend class ScCellIterator;
263 template< ScQueryCellIteratorAccess accessType, ScQueryCellIteratorType queryType >
265 template< ScQueryCellIteratorAccess accessType >
269 friend class ScDocumentImport;
271 friend class sc::ColumnSpanSet;
273 friend class sc::EditTextIterator;
275 
276 public:
277  ScTable( ScDocument& rDoc, SCTAB nNewTab, const OUString& rNewName,
278  bool bColInfo = true, bool bRowInfo = true );
279  ~ScTable() COVERITY_NOEXCEPT_FALSE;
280  ScTable(const ScTable&) = delete;
281  ScTable& operator=(const ScTable&) = delete;
282 
284  const ScDocument& GetDoc() const { return rDocument;}
285  SCTAB GetTab() const { return nTab; }
286 
287  ScOutlineTable* GetOutlineTable() { return pOutlineTable.get(); }
288 
290  {
291  if ( nScCol >= aCol.size() )
293  return aCol[nScCol];
294  }
295  // out-of-line the cold part of the function
296  void CreateColumnIfNotExistsImpl( const SCCOL nScCol );
297  sal_uInt64 GetCellCount() const;
298  sal_uInt64 GetWeightedCount() const;
299  sal_uInt64 GetWeightedCount(SCROW nStartRow, SCROW nEndRow) const;
300  sal_uInt64 GetCodeCount() const; // RPN code in formula
301 
302  sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const;
303 
304  bool SetOutlineTable( const ScOutlineTable* pNewOutline );
305  void StartOutlineTable();
306 
307  void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
308 
309  bool TestRemoveSubTotals( const ScSubTotalParam& rParam );
310  void RemoveSubTotals( ScSubTotalParam& rParam );
311  bool DoSubTotals( ScSubTotalParam& rParam );
312 
313  const ScSheetEvents* GetSheetEvents() const { return pSheetEvents.get(); }
314  void SetSheetEvents( std::unique_ptr<ScSheetEvents> pNew );
315 
316  bool IsVisible() const { return bVisible; }
317  void SetVisible( bool bVis );
318 
319  bool IsStreamValid() const { return bStreamValid; }
320  void SetStreamValid( bool bSet, bool bIgnoreLock = false );
321 
322  [[nodiscard]] bool IsColValid( const SCCOL nScCol ) const
323  {
324  return nScCol >= static_cast< SCCOL >( 0 ) && nScCol < aCol.size();
325  }
326  [[nodiscard]] bool IsColRowValid( const SCCOL nScCol, const SCROW nScRow ) const
327  {
328  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow );
329  }
330  [[nodiscard]] bool IsColRowTabValid( const SCCOL nScCol, const SCROW nScRow, const SCTAB nScTab ) const
331  {
332  return IsColValid( nScCol ) && GetDoc().ValidRow( nScRow ) && ValidTab( nScTab );
333  }
334  [[nodiscard]] bool ValidCol(SCCOL nCol) const { return GetDoc().ValidCol(nCol); }
335  [[nodiscard]] bool ValidRow(SCROW nRow) const { return GetDoc().ValidRow(nRow); }
336  [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const { return GetDoc().ValidColRow(nCol, nRow); }
337 
338  bool IsPendingRowHeights() const { return bPendingRowHeights; }
339  void SetPendingRowHeights( bool bSet );
340 
341  bool GetCalcNotification() const { return bCalcNotification; }
342  void SetCalcNotification( bool bSet );
343 
344  bool IsLayoutRTL() const { return bLayoutRTL; }
345  bool IsLoadingRTL() const { return bLoadingRTL; }
346  void SetLayoutRTL( bool bSet );
347  void SetLoadingRTL( bool bSet );
348 
349  bool IsScenario() const { return bScenario; }
350  void SetScenario( bool bFlag );
351  void GetScenarioComment( OUString& rComment) const { rComment = aComment; }
352  void SetScenarioComment( const OUString& rComment ) { aComment = rComment; }
353  const Color& GetScenarioColor() const { return aScenarioColor; }
354  void SetScenarioColor(const Color& rNew) { aScenarioColor = rNew; }
355  const Color& GetTabBgColor() const { return aTabBgColor; }
356  void SetTabBgColor(const Color& rColor);
358  void SetScenarioFlags(ScScenarioFlags nNew) { nScenarioFlags = nNew; }
359  void SetActiveScenario(bool bSet) { bActiveScenario = bSet; }
360  bool IsActiveScenario() const { return bActiveScenario; }
361 
362  ScLinkMode GetLinkMode() const { return nLinkMode; }
363  bool IsLinked() const { return nLinkMode != ScLinkMode::NONE; }
364  const OUString& GetLinkDoc() const { return aLinkDoc; }
365  const OUString& GetLinkFlt() const { return aLinkFlt; }
366  const OUString& GetLinkOpt() const { return aLinkOpt; }
367  const OUString& GetLinkTab() const { return aLinkTab; }
369 
370  void SetLink( ScLinkMode nMode, const OUString& rDoc, const OUString& rFlt,
371  const OUString& rOpt, const OUString& rTab, sal_uLong nRefreshDelay );
372 
373  sal_Int64 GetHashCode () const;
374 
375  const OUString& GetName() const { return aName; }
376  void SetName( const OUString& rNewName );
377 
378  void SetAnonymousDBData(std::unique_ptr<ScDBData> pDBData);
379  ScDBData* GetAnonymousDBData() { return pDBDataNoName.get();}
380 
381  const OUString& GetCodeName() const { return aCodeName; }
382  void SetCodeName( const OUString& rNewName ) { aCodeName = rNewName; }
383 
384  const OUString& GetUpperName() const;
385 
386  const OUString& GetPageStyle() const { return aPageStyle; }
387  void SetPageStyle( const OUString& rName );
388  void PageStyleModified( const OUString& rNewName );
389 
390  bool IsProtected() const;
391  void SetProtection(const ScTableProtection* pProtect);
392  const ScTableProtection* GetProtection() const;
393  void GetUnprotectedCells( ScRangeList& rRangeList ) const;
394 
395  bool IsEditActionAllowed( sc::ColRowEditAction eAction, SCCOLROW nStart, SCCOLROW nEnd ) const;
396 
397  Size GetPageSize() const;
398  void SetPageSize( const Size& rSize );
399  void SetRepeatArea( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
400 
401  void LockTable();
402  void UnlockTable();
403 
404  bool IsBlockEditable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2,
405  SCROW nRow2, bool* pOnlyNotBecauseOfMatrix = nullptr,
406  bool bNoMatrixAtAll = false ) const;
407  bool IsSelectionEditable( const ScMarkData& rMark,
408  bool* pOnlyNotBecauseOfMatrix = nullptr ) const;
409 
410  bool HasBlockMatrixFragment( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
411  bool bNoMatrixAtAll = false ) const;
412  bool HasSelectionMatrixFragment( const ScMarkData& rMark ) const;
413 
414  // This also includes e.g. notes. Use IsEmptyData() for cell data only.
415  bool IsBlockEmpty( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
416 
417  bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString& rString,
418  const ScSetStringParam * pParam = nullptr );
419 
420  bool SetEditText( SCCOL nCol, SCROW nRow, std::unique_ptr<EditTextObject> pEditText );
421  void SetEditText( SCCOL nCol, SCROW nRow, const EditTextObject& rEditText, const SfxItemPool* pEditPool );
422  SCROW GetFirstEditTextRow( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
423 
424  void SetEmptyCell( SCCOL nCol, SCROW nRow );
425  void SetFormula(
426  SCCOL nCol, SCROW nRow, const ScTokenArray& rArray, formula::FormulaGrammar::Grammar eGram );
427  void SetFormula(
428  SCCOL nCol, SCROW nRow, const OUString& rFormula, formula::FormulaGrammar::Grammar eGram );
429 
436  ScFormulaCell* SetFormulaCell( SCCOL nCol, SCROW nRow, ScFormulaCell* pCell );
437 
438  bool SetFormulaCells( SCCOL nCol, SCROW nRow, std::vector<ScFormulaCell*>& rCells );
439 
440  bool HasFormulaCell( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 ) const;
441 
442  svl::SharedString GetSharedString( SCCOL nCol, SCROW nRow ) const;
443 
444  void SetValue( SCCOL nCol, SCROW nRow, const double& rVal );
445  void SetValues( const SCCOL nCol, const SCROW nRow, const std::vector<double>& rVals );
446  void SetError( SCCOL nCol, SCROW nRow, FormulaError nError);
447  SCSIZE GetPatternCount( SCCOL nCol ) const;
448  SCSIZE GetPatternCount( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
449  bool ReservePatternCount( SCCOL nCol, SCSIZE nReserve );
450 
451  void SetRawString( SCCOL nCol, SCROW nRow, const svl::SharedString& rStr );
452  OUString GetString( SCCOL nCol, SCROW nRow, const ScInterpreterContext* pContext = nullptr ) const;
453  double* GetValueCell( SCCOL nCol, SCROW nRow );
454  // Note that if pShared is set and a value is returned that way, the returned OUString is empty.
455  OUString GetInputString( SCCOL nCol, SCROW nRow, const svl::SharedString** pShared = nullptr, bool bForceSystemLocale = false ) const;
456  double GetValue( SCCOL nCol, SCROW nRow ) const;
457  const EditTextObject* GetEditText( SCCOL nCol, SCROW nRow ) const;
458  void RemoveEditTextCharAttribs( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
459  OUString GetFormula( SCCOL nCol, SCROW nRow ) const;
460  const ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow ) const;
461  ScFormulaCell* GetFormulaCell( SCCOL nCol, SCROW nRow );
462 
463  CellType GetCellType( const ScAddress& rPos ) const
464  {
465  if (!GetDoc().ValidColRow(rPos.Col(),rPos.Row()))
466  return CELLTYPE_NONE;
467  if (rPos.Col() >= aCol.size())
468  return CELLTYPE_NONE;
469  return aCol[rPos.Col()].GetCellType( rPos.Row() );
470  }
471  CellType GetCellType( SCCOL nCol, SCROW nRow ) const;
473  ScRefCellValue GetCellValue( SCCOL nCol, SCROW nRow ) const;
474 
475  void GetFirstDataPos(SCCOL& rCol, SCROW& rRow) const;
476  void GetLastDataPos(SCCOL& rCol, SCROW& rRow) const;
477 
478  // Sparklines
479 
480  std::shared_ptr<sc::Sparkline> GetSparkline(SCCOL nCol, SCROW nRow);
481  sc::Sparkline* CreateSparkline(SCCOL nCol, SCROW nRow, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup);
482  bool DeleteSparkline(SCCOL nCol, SCROW nRow);
483 
485  void CopySparklinesToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pDestTab);
486  void FillSparkline(bool bVertical, SCCOLROW nFixed, SCCOLROW nIteratingStart, SCCOLROW nIteratingEnd, SCCOLROW nFillStart, SCCOLROW nFillEnd);
487 
488  // Notes / Comments
489  std::unique_ptr<ScPostIt> ReleaseNote( SCCOL nCol, SCROW nRow );
490  ScPostIt* GetNote( SCCOL nCol, SCROW nRow );
491  void SetNote( SCCOL nCol, SCROW nRow, std::unique_ptr<ScPostIt> pNote );
492 
493  size_t GetNoteCount( SCCOL nCol ) const;
494  SCROW GetNotePosition( SCCOL nCol, size_t nIndex ) const;
495  void CreateAllNoteCaptions();
496  void ForgetNoteCaptions( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData );
497 
498  void GetAllNoteEntries( std::vector<sc::NoteEntry>& rNotes ) const;
499  void GetNotesInRange( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes ) const;
500  CommentCaptionState GetAllNoteCaptionsState( const ScRange& rRange, std::vector<sc::NoteEntry>& rNotes );
501  bool ContainsNotesInRange( const ScRange& rRange ) const;
502 
503  bool TestInsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize ) const;
504  void InsertRow( SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize );
505  void DeleteRow(
506  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize,
507  bool* pUndoOutline, std::vector<ScAddress>* pGroupPos );
508 
509  bool TestInsertCol( SCROW nStartRow, SCROW nEndRow, SCSIZE nSize ) const;
510  void InsertCol(
511  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize );
512  void DeleteCol(
513  const sc::ColumnSet& rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool* pUndoOutline );
514 
515  void DeleteArea(
516  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag,
517  bool bBroadcast = true, sc::ColumnSpanSet* pBroadcastSpans = nullptr );
518 
519  void CopyToClip( sc::CopyToClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pTable );
520  void CopyToClip( sc::CopyToClipContext& rCxt, const ScRangeList& rRanges, ScTable* pTable );
521 
523  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap& rMap,
524  ScTable* pDestTab );
525 
526  void CopyCellToDocument( SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable& rDestTab );
527 
528  bool InitColumnBlockPosition( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol );
529 
531  sc::CopyFromClipContext& rCxt, const ScTable& rClipTab, sc::ColumnSpanSet& rBroadcastSpans );
532 
533  void CopyOneCellFromClip(
534  sc::CopyFromClipContext& rCxt, const SCCOL nCol1, const SCROW nRow1,
535  const SCCOL nCol2, const SCROW nRow2,
536  const SCROW nSrcRow, const ScTable* pSrcTab );
537 
538  void CopyFromClip(
539  sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
540  SCCOL nDx, SCROW nDy, ScTable* pTable );
541 
544  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
545 
546  void SetDirtyFromClip(
547  SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet& rBroadcastSpans );
548 
549  void CopyToTable(
550  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
551  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab,
552  const ScMarkData* pMarkData, bool bAsLink, bool bColRowFlags,
553  bool bGlobalNamesToLocal, bool bCopyCaptions );
554 
555  void CopyCaptionsToTable( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable* pDestTab, bool bCloneCaption );
556 
557  void UndoToTable(
558  sc::CopyToDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
559  InsertDeleteFlags nFlags, bool bMarked, ScTable* pDestTab );
560 
561  void CopyConditionalFormat( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
562  SCCOL nDx, SCROW nDy, const ScTable* pTable);
570  void TransposeClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCROW nCombinedStartRow,
571  SCROW nRowDestOffset, ScTable* pTransClip, InsertDeleteFlags nFlags,
572  bool bAsLink, bool bIncludeFiltered);
573 
574  // mark of this document
575  void MixMarked(
576  sc::MixDocContext& rCxt, const ScMarkData& rMark, ScPasteFunc nFunction,
577  bool bSkipEmpty, const ScTable* pSrcTab );
578 
579  void MixData(
580  sc::MixDocContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
581  ScPasteFunc nFunction, bool bSkipEmpty, const ScTable* pSrcTab );
582 
583  void CopyData( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
584  SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab );
585 
586  void CopyScenarioFrom( const ScTable* pSrcTab );
587  void CopyScenarioTo( ScTable* pDestTab ) const;
588  bool TestCopyScenarioTo( const ScTable* pDestTab ) const;
589  void MarkScenarioIn(ScMarkData& rMark, ScScenarioFlags nNeededBits) const;
590  bool HasScenarioRange( const ScRange& rRange ) const;
592  const ScRangeList* GetScenarioRanges() const;
593 
594  void CopyUpdated( const ScTable* pPosTab, ScTable* pDestTab ) const;
595 
596  void InvalidateTableArea();
597  void InvalidatePageBreaks();
598 
599  bool GetCellArea( SCCOL& rEndCol, SCROW& rEndRow ) const; // FALSE = empty
600  bool GetTableArea( SCCOL& rEndCol, SCROW& rEndRow, bool bCalcHiddens = false) const;
601  bool GetPrintArea( SCCOL& rEndCol, SCROW& rEndRow, bool bNotes, bool bCalcHiddens = false) const;
602  bool GetPrintAreaHor( SCROW nStartRow, SCROW nEndRow,
603  SCCOL& rEndCol ) const;
604  bool GetPrintAreaVer( SCCOL nStartCol, SCCOL nEndCol,
605  SCROW& rEndRow, bool bNotes ) const;
606 
607  bool GetDataStart( SCCOL& rStartCol, SCROW& rStartRow ) const;
608 
609  void ExtendPrintArea( OutputDevice* pDev,
610  SCCOL nStartCol, SCROW nStartRow, SCCOL& rEndCol, SCROW nEndRow );
611 
612  void GetDataArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow,
613  bool bIncludeOld, bool bOnlyDown ) const;
614 
615  bool GetDataAreaSubrange( ScRange& rRange ) const;
616 
617  bool ShrinkToUsedDataArea( bool& o_bShrunk, SCCOL& rStartCol, SCROW& rStartRow,
618  SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly,
619  bool bStickyTopRow, bool bStickyLeftCol,
620  ScDataAreaExtras* pDataAreaExtras ) const;
621 
622  SCROW GetLastDataRow( SCCOL nCol1, SCCOL nCol2, SCROW nLastRow,
623  ScDataAreaExtras* pDataAreaExtras = nullptr ) const;
624 
625  bool IsEmptyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const;
626  SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow,
627  SCCOL nEndCol, SCROW nEndRow, ScDirection eDir ) const;
628 
629  void FindAreaPos( SCCOL& rCol, SCROW& rRow, ScMoveDirection eDirection ) const;
630  void GetNextPos( SCCOL& rCol, SCROW& rRow, SCCOL nMovX, SCROW nMovY,
631  bool bMarked, bool bUnprotected, const ScMarkData& rMark, SCCOL nTabStartCol ) const;
632 
633  bool SkipRow( const SCCOL rCol, SCROW& rRow, const SCROW nMovY, const ScMarkData& rMark,
634  const bool bUp, const SCROW nUsedY, const bool bMarked, const bool bSheetProtected ) const;
635  void LimitChartArea( SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
636 
637  bool HasData( SCCOL nCol, SCROW nRow ) const;
638  bool HasStringData( SCCOL nCol, SCROW nRow ) const;
639  bool HasValueData( SCCOL nCol, SCROW nRow ) const;
640  bool HasStringCells( SCCOL nStartCol, SCROW nStartRow,
641  SCCOL nEndCol, SCROW nEndRow ) const;
642 
643  sc::MultiDataCellState HasMultipleDataCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 ) const;
644 
645  FormulaError GetErrCode( const ScAddress& rPos ) const
646  {
647  return IsColRowValid(rPos.Col(),rPos.Row()) ?
648  aCol[rPos.Col()].GetErrCode( rPos.Row() ) :
649  FormulaError::NONE;
650  }
651 
652  void ResetChanged( const ScRange& rRange );
653 
656  void SetDirty( const ScRange&, ScColumn::BroadcastMode );
657  void SetDirtyAfterLoad();
658  void SetDirtyVar();
659  void SetTableOpDirty( const ScRange& );
660  void CalcAll();
661  void CalcAfterLoad( sc::CompileFormulaContext& rCxt, bool bStartListening );
663  void CompileXML( sc::CompileFormulaContext& rCxt, ScProgress& rProgress );
664 
670  bool BroadcastBroadcasters( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SfxHintId nHint );
671 
673 
674  void UpdateReference(
675  sc::RefUpdateContext& rCxt, ScDocument* pUndoDoc = nullptr,
676  bool bIncludeDraw = true, bool bUpdateNoteCaptionPos = true );
677 
678  void UpdateDrawRef( UpdateRefMode eUpdateRefMode, SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
679  SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
680  SCCOL nDx, SCROW nDy, SCTAB nDz, bool bUpdateNoteCaptionPos = true );
681 
682  void UpdateTranspose( const ScRange& rSource, const ScAddress& rDest,
683  ScDocument* pUndoDoc );
684 
685  void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
686 
689  void UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt, SCTAB nTabNo, ScProgress* pProgress );
690  void UpdateCompile( bool bForceIfNameInUse = false );
691  void SetTabNo(SCTAB nNewTab);
692  void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
693  sc::UpdatedRangeNames& rIndexes) const;
694  void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
695  sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd,
696  double nStepValue, double nMaxValue, ScProgress* pProgress);
697  OUString GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
698 
699  void UpdateSelectionFunction( ScFunctionData& rData, const ScMarkData& rMark );
700 
701  void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
702  sal_uInt16 nFormatNo );
703  void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData& rData);
704  bool SearchAndReplace(
705  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark,
706  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
707 
708  void FindMaxRotCol( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2 );
709 
710  bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask ) const;
711  bool HasAttribSelection( const ScMarkData& rMark, HasAttrFlags nMask ) const;
712  bool HasAttrib( SCCOL nCol, SCROW nRow, HasAttrFlags nMask,
713  SCROW* nStartRow = nullptr, SCROW* nEndRow = nullptr ) const;
714  bool IsMerged( SCCOL nCol, SCROW nRow ) const;
715  bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
716  SCCOL& rEndCol, SCROW& rEndRow,
717  bool bRefresh );
718  void SetMergedCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
719 
720  const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich ) const;
721  template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, TypedWhichId<T> nWhich ) const
722  {
723  return static_cast<const T*>(GetAttr(nCol, nRow, sal_uInt16(nWhich)));
724  }
725  const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, sal_uInt16 nWhich, SCROW& nStartRow, SCROW& nEndRow ) const;
726  template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, TypedWhichId<T> nWhich, SCROW& nStartRow, SCROW& nEndRow ) const
727  {
728  return static_cast<const T*>(GetAttr(nCol, nRow, sal_uInt16(nWhich), nStartRow, nEndRow));
729  }
730  const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow ) const;
731  const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
732 
733  sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& rPos ) const;
734  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow ) const;
735  sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow ) const;
736 
737  void SetNumberFormat( SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat );
738 
740  const ScMarkData& rMark, bool bDeep ) const;
741  void MergePatternArea( ScMergePatternState& rState, SCCOL nCol1, SCROW nRow1,
742  SCCOL nCol2, SCROW nRow2, bool bDeep ) const;
743  void MergeBlockFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner,
744  ScLineFlags& rFlags,
745  SCCOL nStartCol, SCROW nStartRow,
746  SCCOL nEndCol, SCROW nEndRow ) const;
747  void ApplyBlockFrame(const SvxBoxItem& rLineOuter,
748  const SvxBoxInfoItem* pLineInner,
749  SCCOL nStartCol, SCROW nStartRow,
750  SCCOL nEndCol, SCROW nEndRow );
751 
752  void ApplyAttr( SCCOL nCol, SCROW nRow, const SfxPoolItem& rAttr );
753  void ApplyPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
754  void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
755  const ScPatternAttr& rAttr, ScEditDataArray* pDataArray = nullptr,
756  bool* const pIsChanged = nullptr );
757  void SetAttrEntries( SCCOL nStartCol, SCCOL nEndCol, std::vector<ScAttrEntry> && vNewData);
758 
759  void SetPattern( const ScAddress& rPos, const ScPatternAttr& rAttr );
760  const ScPatternAttr* SetPattern( SCCOL nCol, SCROW nRow, std::unique_ptr<ScPatternAttr> );
761  void SetPattern( SCCOL nCol, SCROW nRow, const ScPatternAttr& rAttr );
763  const ScPatternAttr& rPattern, SvNumFormatType nNewType );
764  void AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
765  void RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex );
766  void SetPatternAreaCondFormat( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
767  const ScPatternAttr& rAttr, const ScCondFormatIndexes& rCondFormatIndexes );
768 
769  void ApplyStyle( SCCOL nCol, SCROW nRow, const ScStyleSheet* rStyle );
770  void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet& rStyle );
771  void ApplySelectionStyle(const ScStyleSheet& rStyle, const ScMarkData& rMark);
772  void ApplySelectionLineStyle( const ScMarkData& rMark,
773  const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
774 
775  const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow ) const;
776  const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark, bool& rFound ) const;
777  const ScStyleSheet* GetAreaStyle( bool& rFound, SCCOL nCol1, SCROW nRow1,
778  SCCOL nCol2, SCROW nRow2 ) const;
779 
780  void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, bool bRemoved,
781  OutputDevice* pDev,
782  double nPPTX, double nPPTY,
783  const Fraction& rZoomX, const Fraction& rZoomY );
784 
785  bool IsStyleSheetUsed( const ScStyleSheet& rStyle ) const;
786 
787  bool ApplyFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
788  bool RemoveFlags( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags );
789 
790  void ApplySelectionCache( SfxItemPoolCache* pCache, const ScMarkData& rMark, ScEditDataArray* pDataArray = nullptr, bool* const pIsChanged = nullptr );
791  void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool bBroadcast = true );
792 
793  void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
794  void ChangeSelectionIndent( bool bIncrement, const ScMarkData& rMark );
795 
796  const ScRange* GetRepeatColRange() const { return pRepeatColRange.get(); }
797  const ScRange* GetRepeatRowRange() const { return pRepeatRowRange.get(); }
798  void SetRepeatColRange( std::unique_ptr<ScRange> pNew );
799  void SetRepeatRowRange( std::unique_ptr<ScRange> pNew );
800 
801  sal_uInt16 GetPrintRangeCount() const { return static_cast< sal_uInt16 >( aPrintRanges.size() ); }
802  const ScRange* GetPrintRange(sal_uInt16 nPos) const;
804  bool IsPrintEntireSheet() const { return bPrintEntireSheet; }
805 
807  void ClearPrintRanges();
809  void AddPrintRange( const ScRange& rNew );
811  void SetPrintEntireSheet();
812 
813  void FillPrintSaver( ScPrintSaverTab& rSaveTab ) const;
814  void RestorePrintRanges( const ScPrintSaverTab& rSaveTab );
815 
816  sal_uInt16 GetOptimalColWidth( SCCOL nCol, OutputDevice* pDev,
817  double nPPTX, double nPPTY,
818  const Fraction& rZoomX, const Fraction& rZoomY,
819  bool bFormula, const ScMarkData* pMarkData,
820  const ScColWidthParam* pParam );
821  bool SetOptimalHeight(
822  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi,
823  ScProgress* pOuterProgress = nullptr, sal_uInt64 nProgressStart = 0 );
824 
826  sc::RowHeightContext& rCxt, SCROW nStartRow, SCROW nEndRow,
827  ScProgress* pOuterProgress = nullptr, sal_uInt64 nProgressStart = 0 );
828 
829  tools::Long GetNeededSize( SCCOL nCol, SCROW nRow,
830  OutputDevice* pDev,
831  double nPPTX, double nPPTY,
832  const Fraction& rZoomX, const Fraction& rZoomY,
833  bool bWidth, bool bTotalSize,
834  bool bInPrintTwips = false);
835  void SetColWidth( SCCOL nCol, sal_uInt16 nNewWidth );
836  void SetColWidthOnly( SCCOL nCol, sal_uInt16 nNewWidth );
837  void SetRowHeight( SCROW nRow, sal_uInt16 nNewHeight );
838  bool SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight,
839  double nPPTY, bool bApi );
840 
848  void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight );
849 
850  // nPPT to test for modification
851  void SetManualHeight( SCROW nStartRow, SCROW nEndRow, bool bManual );
852 
853  sal_uInt16 GetColWidth( SCCOL nCol, bool bHiddenAsZero = true ) const;
854  tools::Long GetColWidth( SCCOL nStartCol, SCCOL nEndCol ) const;
855  sal_uInt16 GetRowHeight( SCROW nRow, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
856  tools::Long GetRowHeight( SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true ) const;
857  tools::Long GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, double fScale, const tools::Long* pnMaxHeight = nullptr ) const;
858  tools::Long GetColOffset( SCCOL nCol, bool bHiddenAsZero = true ) const;
859  tools::Long GetRowOffset( SCROW nRow, bool bHiddenAsZero = true ) const;
860 
869  SCROW GetRowForHeight(tools::Long nHeight) const;
870 
871  sal_uInt16 GetOriginalWidth( SCCOL nCol ) const;
872  sal_uInt16 GetOriginalHeight( SCROW nRow ) const;
873 
874  sal_uInt16 GetCommonWidth( SCCOL nEndCol ) const;
875 
876  SCROW GetHiddenRowCount( SCROW nRow ) const;
877 
878  void ShowCol(SCCOL nCol, bool bShow);
879  void ShowRow(SCROW nRow, bool bShow);
880  void DBShowRow(SCROW nRow, bool bShow);
881 
882  void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
883  void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow);
884 
885  void SetRowFlags( SCROW nRow, CRFlags nNewFlags );
886  void SetRowFlags( SCROW nStartRow, SCROW nEndRow, CRFlags nNewFlags );
887 
889  SCROW GetLastFlaggedRow() const;
890 
895 
896  bool IsDataFiltered(SCCOL nColStart, SCROW nRowStart, SCCOL nColEnd, SCROW nRowEnd) const;
897  bool IsDataFiltered(const ScRange& rRange) const;
898  CRFlags GetColFlags( SCCOL nCol ) const;
899  CRFlags GetRowFlags( SCROW nRow ) const;
900 
902  { return pRowFlags.get(); }
903 
904  bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, bool bShow );
905  bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, bool bShow );
906 
907  void UpdatePageBreaks( const ScRange* pUserArea );
908  void RemoveManualBreaks();
909  bool HasManualBreaks() const;
910  void SetRowManualBreaks( ::std::set<SCROW>&& rBreaks );
911  void SetColManualBreaks( ::std::set<SCCOL>&& rBreaks );
912 
913  void GetAllRowBreaks(::std::set<SCROW>& rBreaks, bool bPage, bool bManual) const;
914  void GetAllColBreaks(::std::set<SCCOL>& rBreaks, bool bPage, bool bManual) const;
915  bool HasRowPageBreak(SCROW nRow) const;
916  bool HasColPageBreak(SCCOL nCol) const;
917  bool HasRowManualBreak(SCROW nRow) const;
918  bool HasColManualBreak(SCCOL nCol) const;
919 
930  SCROW GetNextManualBreak(SCROW nRow) const;
931 
932  void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow);
933  void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual);
934  void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual);
935  void SetRowBreak(SCROW nRow, bool bPage, bool bManual);
936  void SetColBreak(SCCOL nCol, bool bPage, bool bManual);
937  css::uno::Sequence<
938  css::sheet::TablePageBreakData> GetRowBreakData() const;
939 
940  bool RowHidden(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
941  bool RowHiddenLeaf(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
942  bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const;
943  bool ColHidden(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
944  bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden);
945  void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden);
946  void CopyColHidden(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
947  void CopyRowHidden(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
948  void CopyRowHeight(const ScTable& rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset);
949  SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
950  SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const;
951  SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const;
952  tools::Long GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero = true) const;
953 
954  SCCOL CountVisibleCols(SCCOL nStartCol, SCCOL nEndCol) const;
955 
956  SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const;
957 
958  bool RowFiltered(SCROW nRow, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
959  bool ColFiltered(SCCOL nCol, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
960  bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
961  void CopyColFiltered(const ScTable& rTable, SCCOL nStartCol, SCCOL nEndCol);
962  void CopyRowFiltered(const ScTable& rTable, SCROW nStartRow, SCROW nEndRow);
963  void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered);
964  void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered);
965  SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
966  SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow) const;
967  SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const;
968 
969  bool IsManualRowHeight(SCROW nRow) const;
970 
971  bool HasUniformRowHeight( SCROW nRow1, SCROW nRow2 ) const;
972 
973  void SyncColRowFlags();
974 
975  void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
976  void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2 );
977 
979  void Sort(
980  const ScSortParam& rSortParam, bool bKeepQuery, bool bUpdateRefs,
981  ScProgress* pProgress, sc::ReorderParam* pUndo );
982 
983  void Reorder( const sc::ReorderParam& rParam );
984 
985  // For ValidQuery() see ScQueryEvalutor class.
986  void TopTenQuery( ScQueryParam& );
987  void PrepareQuery( ScQueryParam& rQueryParam );
988  SCSIZE Query(const ScQueryParam& rQueryParam, bool bKeepSub);
989  bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
990 
991  void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries& rFilterEntries, bool bFiltering = false);
992  void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam& rParam, ScFilterEntries& rFilterEntries, bool bFiltering );
993  [[nodiscard]]
994  bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set<ScTypedStrData>& rStrings);
995 
996  bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
997  bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) const;
998 
999  sal_Int32 GetMaxStringLen( SCCOL nCol,
1000  SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet ) const;
1001  sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision,
1002  SCCOL nCol,
1003  SCROW nRowStart, SCROW nRowEnd ) const;
1004 
1005  bool IsSortCollatorGlobal() const;
1006  void InitSortCollator( const ScSortParam& rPar );
1007  void DestroySortCollator();
1008  void SetDrawPageSize( bool bResetStreamValid = true, bool bUpdateNoteCaptionPos = true,
1009  const ScObjectHandling eObjectHandling = ScObjectHandling::RecalcPosMode);
1010 
1011  void SetRangeName(std::unique_ptr<ScRangeName> pNew);
1012  ScRangeName* GetRangeName() const;
1013 
1015  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
1016 
1017  void CompileHybridFormula(
1018  sc::StartListeningContext& rStartListenCxt, sc::CompileFormulaContext& rCompileCxt );
1019 
1021  sc::EndListeningContext& rEndListenCxt, sc::CompileFormulaContext& rCompileCxt );
1022 
1026 
1027  void DeleteConditionalFormat(sal_uLong nOldIndex);
1028 
1029  sal_uLong AddCondFormat( std::unique_ptr<ScConditionalFormat> pNew );
1030 
1031  SvtScriptType GetScriptType( SCCOL nCol, SCROW nRow ) const;
1032  void SetScriptType( SCCOL nCol, SCROW nRow, SvtScriptType nType );
1033  void UpdateScriptTypes( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2 );
1034 
1035  SvtScriptType GetRangeScriptType( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1036 
1038  formula::FormulaTokenRef ResolveStaticReference( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1040  bool HandleRefArrayForParallelism( SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef& mxGroup );
1041 #ifdef DBG_UTIL
1042  void AssertNoInterpretNeeded( SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1043 #endif
1044 
1045  void SplitFormulaGroups( SCCOL nCol, std::vector<SCROW>& rRows );
1046  void UnshareFormulaCells( SCCOL nCol, std::vector<SCROW>& rRows );
1047  void RegroupFormulaCells( SCCOL nCol );
1048 
1049  ScRefCellValue GetRefCellValue( SCCOL nCol, SCROW nRow );
1051 
1052  SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow );
1053  const SvtBroadcaster* GetBroadcaster( SCCOL nCol, SCROW nRow ) const;
1054  void DeleteBroadcasters( sc::ColumnBlockPosition& rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2 );
1055  void DeleteEmptyBroadcasters();
1056 
1057  void FillMatrix( ScMatrix& rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool* pPool ) const;
1058 
1059  void InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1060  void InterpretCellsIfNeeded( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1061 
1062  void SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen );
1063 
1064  void CalculateInColumnInThread( ScInterpreterContext& rContext, SCCOL nColStart, SCCOL nColEnd,
1065  SCROW nRowStart, SCROW nRowEnd, unsigned nThisThread, unsigned nThreadsTotal);
1066  void HandleStuffAfterParallelCalculation( SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, ScInterpreter* pInterpreter);
1067 
1076  void StartListeners( sc::StartListeningContext& rCxt, bool bAll );
1077 
1082  void SetDirtyIfPostponed();
1083 
1088  void BroadcastRecalcOnRefMove();
1089 
1090  void TransferCellValuesTo( const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues& rDest );
1091  void CopyCellValuesFrom( const SCCOL nCol, SCROW nRow, const sc::CellValues& rSrc );
1092 
1093  std::optional<sc::ColumnIterator> GetColumnIterator( SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
1094 
1095  bool EnsureFormulaCellResults( const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning = false );
1096 
1097  void ConvertFormulaToValue(
1099  const SCCOL nCol1, const SCROW nRow1, const SCCOL nCol2, const SCROW nRow2,
1100  sc::TableValues* pUndo );
1101 
1102  void SwapNonEmpty(
1103  sc::TableValues& rValues, sc::StartListeningContext& rStartCxt, sc::EndListeningContext& rEndCxt );
1104 
1105  void finalizeOutlineImport();
1106 
1107  void StoreToCache(SvStream& rStrm) const;
1108 
1109  void RestoreFromCache(SvStream& rStrm);
1110 
1111 #if DUMP_COLUMN_STORAGE
1112  void DumpColumnStorage( SCCOL nCol ) const;
1113 #endif
1114 
1121  static void UpdateSearchItemAddressForReplace( const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow );
1122 
1125  ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const;
1126  SCCOL ClampToAllocatedColumns(SCCOL nCol) const { return std::min(nCol, static_cast<SCCOL>(aCol.size() - 1)); }
1127  SCCOL GetAllocatedColumnsCount() const { return aCol.size(); }
1128 
1136  OString dumpSheetGeomData(bool bColumns, SheetGeomType eGeomType);
1137 
1138  std::set<SCCOL> QueryColumnsWithFormulaCells() const;
1139 
1140  const ScColumnData& ColumnData( SCCOL nCol ) const { return nCol < aCol.size() ? aCol[ nCol ] : aDefaultColData; }
1141 
1142  void CheckIntegrity() const;
1143 
1144 private:
1145 
1146  void FillFormulaVertical(
1147  const ScFormulaCell& rSrcCell,
1148  SCCOLROW& rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1149  ScProgress* pProgress, sal_uInt64& rProgress );
1150 
1151  void FillSeriesSimple(
1152  const ScCellValue& rSrcCell, SCCOLROW& rInner, SCCOLROW nIMin, SCCOLROW nIMax,
1153  const SCCOLROW& rCol, const SCCOLROW& rRow, bool bVertical, ScProgress* pProgress, sal_uInt64& rProgress );
1154 
1155  void FillAutoSimple(
1156  SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd,
1157  SCCOLROW& rInner, const SCCOLROW& rCol, const SCCOLROW& rRow,
1158  sal_uInt64 nActFormCnt, sal_uInt64 nMaxFormCnt,
1159  bool bHasFiltered, bool bVertical, bool bPositive,
1160  ScProgress* pProgress, sal_uInt64& rProgress );
1161 
1162  void FillSeries( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1163  sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd,
1164  FillDateCmd eFillDateCmd,
1165  double nStepValue, double nMaxValue, sal_uInt16 nMinDigits,
1166  bool bAttribs, ScProgress* pProgress,
1167  bool bSkipOverlappedCells = false,
1168  std::vector<sal_Int32>* pNonOverlappedCellIdx = nullptr);
1169  void FillAnalyse( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1170  FillCmd& rCmd, FillDateCmd& rDateCmd,
1171  double& rInc, sal_uInt16& rMinDigits,
1172  ScUserListData*& rListData, sal_uInt16& rListIndex,
1173  bool bHasFiltered, bool& rSkipOverlappedCells,
1174  std::vector<sal_Int32>& rNonOverlappedCellIdx );
1175  void FillAuto( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1176  sal_uInt64 nFillCount, FillDir eFillDir, ScProgress* pProgress );
1177 
1178  bool ValidNextPos( SCCOL nCol, SCROW nRow, const ScMarkData& rMark,
1179  bool bMarked, bool bUnprotected ) const;
1180 
1181  void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1182  const ScPatternAttr& rAttr, sal_uInt16 nFormatNo);
1183  void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData& rData);
1184  void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData& rData);
1185  bool SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition& rBlockPos, SCROW nRow,
1186  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1187  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1188  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1189  bool Search(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1190  SCCOL nLastCol, SCROW nLastRow,
1191  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1192  bool SearchAll(const SvxSearchItem& rSearchItem, const ScMarkData& rMark,
1193  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1194  bool Replace(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1195  const ScMarkData& rMark, OUString& rUndoStr, ScDocument* pUndoDoc);
1196  bool ReplaceAll(
1197  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1198  OUString& rUndoStr, ScDocument* pUndoDoc);
1199 
1200  bool SearchStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1201  const ScMarkData& rMark);
1202  bool ReplaceStyle(const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1203  const ScMarkData& rMark, bool bIsUndo);
1204  bool SearchAllStyle(
1205  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges);
1206  bool ReplaceAllStyle(
1207  const SvxSearchItem& rSearchItem, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1208  ScDocument* pUndoDoc);
1210  const SvxSearchItem& rSearchItem,
1211  SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1212  OUString& rUndoStr, ScDocument* pUndoDoc);
1213  bool SearchRangeForEmptyCell(const ScRange& rRange,
1214  const SvxSearchItem& rSearchItem, SCCOL& rCol, SCROW& rRow,
1215  OUString& rUndoStr);
1217  const ScRange& rRange, const SvxSearchItem& rSearchItem,
1218  ScRangeList& rMatchedRanges, OUString& rUndoStr, ScDocument* pUndoDoc);
1219 
1220  // use the global sort parameter:
1221  bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const;
1222  static void DecoladeRow( ScSortInfoArray*, SCROW nRow1, SCROW nRow2 );
1223  short CompareCell(
1224  sal_uInt16 nSort,
1225  ScRefCellValue& rCell1, SCCOL nCell1Col, SCROW nCell1Row,
1226  ScRefCellValue& rCell2, SCCOL nCell2Col, SCROW nCell2Row ) const;
1227  short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1228  short Compare( ScSortInfoArray*, SCCOLROW nIndex1, SCCOLROW nIndex2) const;
1229  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray( const sc::ReorderParam& rParam );
1230  std::unique_ptr<ScSortInfoArray> CreateSortInfoArray(
1231  const ScSortParam& rSortParam, SCCOLROW nInd1, SCCOLROW nInd2,
1232  bool bKeepQuery, bool bUpdateRefs );
1233  void QuickSort( ScSortInfoArray*, SCCOLROW nLo, SCCOLROW nHi);
1234  void SortReorderByColumn( const ScSortInfoArray* pArray, SCROW nRow1, SCROW nRow2,
1235  bool bPattern, ScProgress* pProgress );
1236  void SortReorderAreaExtrasByColumn( const ScSortInfoArray* pArray, SCROW nDataRow1, SCROW nDataRow2,
1237  const ScDataAreaExtras& rDataAreaExtras, ScProgress* pProgress );
1238 
1239  void SortReorderByRow( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2,
1240  ScProgress* pProgress, bool bOnlyDataAreaExtras );
1241  void SortReorderByRowRefUpdate( ScSortInfoArray* pArray, SCCOL nCol1, SCCOL nCol2,
1242  ScProgress* pProgress );
1243  void SortReorderAreaExtrasByRow( ScSortInfoArray* pArray, SCCOL nDataCol1, SCCOL nDataCol2,
1244  const ScDataAreaExtras& rDataAreaExtras, ScProgress* pProgress );
1245 
1246  bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1247  bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam& rQueryParam);
1248  OUString GetUpperCellString(SCCOL nCol, SCROW nRow);
1249 
1250  bool RefVisible(const ScFormulaCell* pCell);
1251 
1252  bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const;
1253 
1254  void IncDate(double& rVal, sal_uInt16& nDayOfMonth, double nStep, FillDateCmd eCmd);
1255  void FillFormula(
1256  const ScFormulaCell* pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast );
1257  void UpdateInsertTabAbs(SCTAB nNewPos);
1258  bool GetNextSpellingCell(SCCOL& rCol, SCROW& rRow, bool bInSel,
1259  const ScMarkData& rMark) const;
1260  bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, const ScMarkData& rMark ) const;
1261  void TestTabRefAbs(SCTAB nTable) const;
1264 
1265  void StartListening( const ScAddress& rAddress, SvtListener* pListener );
1266  void EndListening( const ScAddress& rAddress, SvtListener* pListener );
1267  void StartListening( sc::StartListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1268  void EndListening( sc::EndListeningContext& rCxt, const ScAddress& rAddress, SvtListener& rListener );
1269 
1270  void AttachFormulaCells( sc::StartListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1271  void DetachFormulaCells( sc::EndListeningContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1272 
1273  void SetLoadingMedium(bool bLoading);
1274 
1275  SCSIZE FillMaxRot( RowInfo* pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2,
1276  SCCOL nCol, SCROW nAttrRow1, SCROW nAttrRow2, SCSIZE nArrY,
1277  const ScPatternAttr* pPattern, const SfxItemSet* pCondSet );
1278 
1279  // idle calculation of OutputDevice text width for cell
1280  // also invalidates script type, broadcasts for "calc as shown"
1281  void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo,
1282  bool bNumFormatChanged, bool bBroadcast );
1283 
1284  void SkipFilteredRows(SCROW& rRow, SCROW& rLastNonFilteredRow, bool bForward);
1285 
1290  void MaybeAddExtraColumn(SCCOL& rCol, SCROW nRow, OutputDevice* pDev, double nPPTX, double nPPTY);
1291 
1292  void CopyPrintRange(const ScTable& rTable);
1293 
1294  SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const;
1295 
1296  SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const;
1297 
1306  void TransposeColPatterns(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1,
1307  SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered,
1308  const std::vector<SCROW>& rFilteredRows, SCROW nRowDestOffset);
1309 
1318  void TransposeColNotes(ScTable* pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2,
1319  SCROW nCombinedStartRow, bool bIncludeFiltered, SCROW nRowDestOffset);
1320 
1321  ScColumn* FetchColumn( SCCOL nCol );
1322  const ScColumn* FetchColumn( SCCOL nCol ) const;
1323 
1325  sc::EndListeningContext& rCxt, SCCOL nCol, SCROW nRow, std::vector<ScAddress>* pGroupPos );
1326 
1328  sc::EndListeningContext& rCxt, const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2,
1329  std::vector<ScAddress>* pGroupPos );
1330 
1331  void EndListeningGroup( sc::EndListeningContext& rCxt, const SCCOL nCol, SCROW nRow );
1332  void SetNeedsListeningGroup( SCCOL nCol, SCROW nRow );
1333 
1335  OString dumpColumnRowSizes(bool bColumns);
1337  OString dumpHiddenFiltered(bool bColumns, bool bHidden);
1339  OString dumpColumnRowGroups(bool bColumns) const;
1340 
1341  SCCOL GetLOKFreezeCol() const;
1342  SCROW GetLOKFreezeRow() const;
1343  bool SetLOKFreezeCol(SCCOL nFreezeCol);
1344  bool SetLOKFreezeRow(SCROW nFreezeRow);
1345 
1350  {
1351  static constexpr SCROW ROW_NOT_FOUND = -1;
1352 
1353  public:
1354  explicit VisibleDataCellIterator(const ScDocument& rDoc, ScFlatBoolRowSegments& rRowSegs, ScColumn& rColumn);
1355 
1363  ScRefCellValue reset(SCROW nRow);
1364 
1370  ScRefCellValue next();
1371 
1378  SCROW getRow() const { return mnCurRow;}
1379 
1380  private:
1387  };
1388 
1389 };
1390 
1391 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
OUString GetAutoFillPreview(const ScRange &rSource, SCCOL nEndX, SCROW nEndY)
Definition: table4.cxx:1268
formula::FormulaTokenRef ResolveStaticReference(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2479
SCROW GetLastDataRow(SCCOL nCol1, SCCOL nCol2, SCROW nLastRow, ScDataAreaExtras *pDataAreaExtras=nullptr) const
Definition: table1.cxx:1160
void FindMaxRotCol(RowInfo *pRowInfo, SCSIZE nArrCount, SCCOL nX1, SCCOL nX2)
Definition: table2.cxx:2444
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:1709
void CheckIntegrity() const
Definition: table7.cxx:646
void SetMergedCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:2336
void PrepareQuery(ScQueryParam &rQueryParam)
Definition: table3.cxx:2568
void CalcAfterLoad(sc::CompileFormulaContext &rCxt, bool bStartListening)
Definition: table2.cxx:2212
void CopyUpdated(const ScTable *pPosTab, ScTable *pDestTab) const
Definition: table2.cxx:1541
svl::SharedString GetSharedString(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1746
constexpr double nPPTY
bool TestCopyScenarioTo(const ScTable *pDestTab) const
Definition: table2.cxx:1630
std::set< SCCOL > QueryColumnsWithFormulaCells() const
Definition: table7.cxx:633
SCTAB nTab
Definition: table.hxx:207
const ScPatternAttr * GetPattern(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2273
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:3353
bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:2900
void CopySparklinesToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab)
Definition: table2.cxx:1463
ScColumnsRange(SCCOL nBegin, SCCOL nEnd)
Definition: table.hxx:145
SfxHintId
::boost::intrusive_ptr< ScFormulaCellGroup > ScFormulaCellGroupRef
Definition: types.hxx:43
OUString aComment
Definition: table.hxx:164
bool ColFiltered(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:859
const Iterator maEnd
Definition: table.hxx:152
bool operator==(const Iterator &rOther) const
Definition: table.hxx:140
ScFormulaCell * SetFormulaCell(SCCOL nCol, SCROW nRow, ScFormulaCell *pCell)
Takes ownership of pCell.
Definition: table2.cxx:1727
void ApplyStyleArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScStyleSheet &rStyle)
Definition: table2.cxx:2993
bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, HasAttrFlags nMask) const
Definition: table2.cxx:2287
void FillAutoSimple(SCCOLROW nISrcStart, SCCOLROW nISrcEnd, SCCOLROW nIStart, SCCOLROW nIEnd, SCCOLROW &rInner, const SCCOLROW &rCol, const SCCOLROW &rRow, sal_uInt64 nActFormCnt, sal_uInt64 nMaxFormCnt, bool bHasFiltered, bool bVertical, bool bPositive, ScProgress *pProgress, sal_uInt64 &rProgress)
Definition: table4.cxx:1835
bool SearchCell(const SvxSearchItem &rSearchItem, SCCOL nCol, sc::ColumnBlockConstPosition &rBlockPos, SCROW nRow, const ScMarkData &rMark, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:50
void TransferCellValuesTo(const SCCOL nCol, SCROW nRow, size_t nLen, sc::CellValues &rDest)
Definition: table7.cxx:189
void SetActiveScenario(bool bSet)
Definition: table.hxx:359
ScColumnsRange GetAllocatedColumnsRange(SCCOL begin, SCCOL end) const
Definition: table1.cxx:2696
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:2803
bool HasBlockMatrixFragment(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2519
void CompileAll(sc::CompileFormulaContext &rCxt)
Definition: table2.cxx:2177
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:372
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
bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, bool bApi, ScProgress *pOuterProgress=nullptr, sal_uInt64 nProgressStart=0)
Definition: table1.cxx:456
void ForgetNoteCaptions(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool bPreserveData)
Definition: table2.cxx:1926
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
Definition: table2.cxx:2107
void CompileColRowNameFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2935
void SetRowFlags(SCROW nRow, CRFlags nNewFlags)
Definition: table2.cxx:3857
void SetRowHeight(SCROW nRow, sal_uInt16 nNewHeight)
Definition: table2.cxx:3292
void DeleteConditionalFormat(sal_uLong nOldIndex)
Definition: table1.cxx:2663
void DestroySortCollator()
Definition: table3.cxx:644
std::unique_ptr< ScFlatUInt16RowSegments > mpRowHeights
Definition: table.hxx:184
bool ReplaceAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:580
void CopyScenarioTo(ScTable *pDestTab) const
Definition: table2.cxx:1559
HasAttrFlags
Definition: global.hxx:183
void SetPatternAreaCondFormat(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, const ScPatternAttr &rAttr, const ScCondFormatIndexes &rCondFormatIndexes)
Definition: table2.cxx:2969
void InvalidateTextWidth(const ScAddress *pAdrFrom, const ScAddress *pAdrTo, bool bNumFormatChanged, bool bBroadcast)
Definition: table5.cxx:1213
SCROW Row() const
Definition: address.hxx:274
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
void Fill(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, ScProgress *pProgress)
Definition: table4.cxx:2574
bool ShrinkToUsedDataArea(bool &o_bShrunk, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bColumnsOnly, bool bStickyTopRow, bool bStickyLeftCol, ScDataAreaExtras *pDataAreaExtras) const
Definition: table1.cxx:1036
const ScRange * GetPrintRange(sal_uInt16 nPos) const
Definition: table1.cxx:2320
SCCOL FindNextVisibleColWithContent(SCCOL nCol, bool bRight, SCROW nRow) const
Definition: table1.cxx:1301
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
Definition: table1.cxx:1942
sc::Sparkline * CreateSparkline(SCCOL nCol, SCROW nRow, std::shared_ptr< sc::SparklineGroup > const &pSparklineGroup)
Definition: table2.cxx:1851
bool bLoadingRTL
Definition: table.hxx:238
Size GetPageSize() const
Definition: table5.cxx:1108
FillDir
Definition: global.hxx:306
void SetName(const OUString &rNewName)
Definition: table1.cxx:351
void TestTabRefAbs(SCTAB nTable) const
Definition: table4.cxx:2922
SCCOL nTableAreaX
Definition: table.hxx:202
bool GetPrintArea(SCCOL &rEndCol, SCROW &rEndRow, bool bNotes, bool bCalcHiddens=false) const
Definition: table1.cxx:591
bool GetNextSpellingCell(SCCOL &rCol, SCROW &rRow, bool bInSel, const ScMarkData &rMark) const
Definition: table4.cxx:2889
void InitSortCollator(const ScSortParam &rPar)
Definition: table3.cxx:628
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:3833
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Definition: table2.cxx:2714
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:960
void SetRowHeightOnly(SCROW nStartRow, SCROW nEndRow, sal_uInt16 nNewHeight)
Set specified row height to specified ranges.
Definition: table2.cxx:3409
void PageStyleModified(const OUString &rNewName)
Definition: table5.cxx:1207
void SortReorderByColumn(const ScSortInfoArray *pArray, SCROW nRow1, SCROW nRow2, bool bPattern, ScProgress *pProgress)
Definition: table3.cxx:945
void SetScenario(bool bFlag)
Definition: table1.cxx:407
bool mbForceBreaks
Definition: table.hxx:249
void RemoveRowPageBreaks(SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:394
SCTAB GetTab() const
Definition: table.hxx:285
size_t GetNoteCount(SCCOL nCol) const
Definition: table2.cxx:1904
::std::set< SCROW > maRowPageBreaks
Definition: table.hxx:193
void ApplyPattern(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:2865
ScColumn * FetchColumn(SCCOL nCol)
Definition: table2.cxx:1235
const ScSheetEvents * GetSheetEvents() const
Definition: table.hxx:313
sheet protection state container
void InterpretDirtyCells(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table1.cxx:2597
ScObjectHandling
Definition: drwlayer.hxx:90
void SetScenarioColor(const Color &rNew)
Definition: table.hxx:354
void FillSeriesSimple(const ScCellValue &rSrcCell, SCCOLROW &rInner, SCCOLROW nIMin, SCCOLROW nIMax, const SCCOLROW &rCol, const SCCOLROW &rRow, bool bVertical, ScProgress *pProgress, sal_uInt64 &rProgress)
Definition: table4.cxx:1755
bool HasFormulaCell(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2) const
Definition: table7.cxx:294
const Iterator maBegin
Definition: table.hxx:151
bool IsPendingRowHeights() const
Definition: table.hxx:338
std::unique_ptr< ScPostIt > ReleaseNote(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1881
void SetScriptType(SCCOL nCol, SCROW nRow, SvtScriptType nType)
Definition: table1.cxx:2461
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:224
void StartListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1129
Tracks and gathers all created sparklines and sparkline groups.
sal_uInt16 GetPrintRangeCount() const
Definition: table.hxx:801
void SetPrintEntireSheet()
Marks the specified sheet to be printed completely.
Definition: table1.cxx:2311
void CopyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCCOL nDestCol, SCROW nDestRow, SCTAB nDestTab)
Definition: table2.cxx:4144
SCCOL size() const
ScSortParam aSortParam
Definition: table.hxx:214
sal_uIntPtr sal_uLong
long Long
SCROW GetRowForHeight(tools::Long nHeight) const
Get the last row such that the height of row 0 to the end row is as high as possible without exceedin...
Definition: table2.cxx:4291
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:907
SvtScriptType GetScriptType(SCCOL nCol, SCROW nRow) const
Definition: table1.cxx:2453
CellType GetCellType(const ScAddress &rPos) const
Definition: table.hxx:463
ScColumn & CreateColumnIfNotExists(const SCCOL nScCol)
Definition: table.hxx:289
SCCOL FindNextVisibleCol(SCCOL nCol, bool bRight) const
Definition: table1.cxx:1277
void SetCalcNotification(bool bSet)
Definition: table2.cxx:130
void SetPageSize(const Size &rSize)
Definition: table5.cxx:1080
bool GetPrintAreaVer(SCCOL nStartCol, SCCOL nEndCol, SCROW &rEndRow, bool bNotes) const
Definition: table1.cxx:743
void DetachFormulaCells(sc::EndListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1279
std::unique_ptr< ScFlatBoolColSegments > mpFilteredCols
Definition: table.hxx:190
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark, bool &rFound) const
Definition: table2.cxx:3047
bool HasScenarioRange(const ScRange &rRange) const
Definition: table2.cxx:1588
bool IsVisible() const
Definition: table.hxx:316
ScLinkMode nLinkMode
Definition: table.hxx:171
CommentCaptionState GetAllNoteCaptionsState(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes)
Definition: table2.cxx:1952
sal_uInt16 nLockCount
Definition: table.hxx:222
ScRefCellValue reset(SCROW nRow)
Set the start row position.
Definition: table1.cxx:2353
SCROW getRow() const
Get the current row position.
Definition: table.hxx:1378
std::unordered_map< sal_uInt32, sal_uInt32 > SvNumberFormatterMergeMap
void SetFormulaResults(SCCOL nCol, SCROW nRow, const double *pResults, size_t nLen)
Definition: table1.cxx:2611
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Definition: table3.cxx:3065
OUString aLinkFlt
Definition: table.hxx:167
const SCCOL * pointer
Definition: table.hxx:131
Store position data for column array storage.
bool mbPageBreaksValid
Definition: table.hxx:248
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:1049
Stores cell values for multiple tables.
Definition: cellvalues.hxx:85
bool CompileErrorCells(sc::CompileFormulaContext &rCxt, FormulaError nErrCode)
Definition: table2.cxx:2200
sal_uInt16 GetTextWidth(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:86
void GetFirstDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:2029
SCCOLROW LastHiddenColRow(SCCOLROW nPos, bool bCol) const
Definition: table5.cxx:817
void SetManualHeight(SCROW nStartRow, SCROW nEndRow, bool bManual)
Definition: table2.cxx:3420
SCSIZE Query(const ScQueryParam &rQueryParam, bool bKeepSub)
Definition: table3.cxx:2573
void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, bool bHidden)
Definition: table5.cxx:622
const OUString & GetLinkDoc() const
Definition: table.hxx:364
ScPostIt * GetNote(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1889
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:1818
bool bVisible
Definition: table.hxx:242
static void DecoladeRow(ScSortInfoArray *, SCROW nRow1, SCROW nRow2)
Definition: table3.cxx:1778
void SetCodeName(const OUString &rNewName)
Definition: table.hxx:382
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:1489
void GetFilteredFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScQueryParam &rParam, ScFilterEntries &rFilterEntries, bool bFiltering)
Definition: table3.cxx:2984
std::reverse_iterator< Iterator > rbegin()
Definition: table.hxx:148
Sparkline data, used for rendering the content of a cell.
Definition: Sparkline.hxx:27
void DeleteRow(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize, bool *pUndoOutline, std::vector< ScAddress > *pGroupPos)
Definition: table2.cxx:202
sal_uInt16 GetOriginalHeight(SCROW nRow) const
Definition: table2.cxx:3664
Accessor class to ScDocument.
void RemoveEditTextCharAttribs(SCCOL nCol, SCROW nRow, const ScPatternAttr &rAttr)
Definition: table2.cxx:1805
void SkipFilteredRows(SCROW &rRow, SCROW &rLastNonFilteredRow, bool bForward)
Definition: table6.cxx:281
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:3040
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:987
void MixData(sc::MixDocContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:784
void SetColFiltered(SCCOL nStartCol, SCCOL nEndCol, bool bFiltered)
Definition: table5.cxx:929
bool HasData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2055
SCCOL operator*() const
Definition: table.hxx:142
void SetDirtyAfterLoad()
Definition: table2.cxx:2132
void RemoveSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:1985
void MergeBlockFrame(SvxBoxItem *pLineOuter, SvxBoxInfoItem *pLineInner, ScLineFlags &rFlags, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:2837
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:1252
void UpdateSelectionFunction(ScFunctionData &rData, const ScMarkData &rMark)
Definition: table3.cxx:3074
void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
Definition: table2.cxx:3024
std::unique_ptr< ScRangeName > mpRangeName
Definition: table.hxx:229
void RestoreFromCache(SvStream &rStrm)
Definition: table7.cxx:475
SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:728
SCROW nTableAreaVisibleY
Definition: table.hxx:205
bool bTableAreaVisibleValid
Definition: table.hxx:241
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:2145
void SetRepeatColRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2272
void ApplyAttr(SCCOL nCol, SCROW nRow, const SfxPoolItem &rAttr)
Definition: table2.cxx:3181
bool HasRowHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table3.cxx:2937
ScColumnData aDefaultColData
Definition: table.hxx:254
ScOutlineTable * GetOutlineTable()
Definition: table.hxx:287
ScRangeVec aPrintRanges
Definition: table.hxx:217
exports com.sun.star. sheet
void PreprocessDBDataUpdate(sc::EndListeningContext &rEndListenCxt, sc::CompileFormulaContext &rCompileCxt)
Definition: table7.cxx:232
sc::SparklineList maSparklineList
Definition: table.hxx:232
const ScDocument & mrDocument
Definition: table.hxx:1381
void MarkScenarioIn(ScMarkData &rMark, ScScenarioFlags nNeededBits) const
Definition: table2.cxx:1577
Row-wise value iterator.
Definition: dociter.hxx:335
void FillFormula(const ScFormulaCell *pSrcCell, SCCOL nDestCol, SCROW nDestRow, bool bLast)
Definition: table4.cxx:748
bool SearchAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges)
Definition: table6.cxx:731
void FillPrintSaver(ScPrintSaverTab &rSaveTab) const
Definition: table1.cxx:2325
bool ValidRow(SCROW nRow) const
Definition: table.hxx:335
void RemoveRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:404
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:1251
void SetStreamValid(bool bSet, bool bIgnoreLock=false)
Definition: table1.cxx:374
void SetRowBreak(SCROW nRow, bool bPage, bool bManual)
Definition: table5.cxx:434
OUString GetFormula(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1813
void AttachFormulaCells(sc::StartListeningContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1271
SvtScriptType
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:2619
void ResetChanged(const ScRange &rRange)
Definition: table2.cxx:2218
static constexpr SCROW ROW_NOT_FOUND
Definition: table.hxx:1351
Stores individual user-defined sort list.
Definition: userlist.hxx:32
void SetNumberFormat(SCCOL nCol, SCROW nRow, sal_uInt32 nNumberFormat)
Definition: table2.cxx:2265
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich, SCROW &nStartRow, SCROW &nEndRow) const
Definition: table.hxx:726
std::reverse_iterator< Iterator > rend()
Definition: table.hxx:149
void Reorder(const sc::ReorderParam &rParam)
Definition: table3.cxx:1876
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:1796
bool IsBlockEditable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
Definition: table2.cxx:2632
tools::Long GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, double fScale, const tools::Long *pnMaxHeight=nullptr) const
Definition: table2.cxx:3600
void InsertRow(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCSIZE nSize)
Definition: table2.cxx:153
bool ValidNextPos(SCCOL nCol, SCROW nRow, const ScMarkData &rMark, bool bMarked, bool bUnprotected) const
Definition: table1.cxx:1426
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:2124
void finalizeOutlineImport()
Definition: table7.cxx:451
void SetAnonymousDBData(std::unique_ptr< ScDBData > pDBData)
Definition: table1.cxx:2435
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:160
void FillMatrix(ScMatrix &rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool *pPool) const
Definition: table1.cxx:2589
void EndListening(const ScAddress &rAddress, SvtListener *pListener)
Definition: table5.cxx:1137
const ScTableProtection * GetProtection() const
Definition: table5.cxx:1106
const OUString & GetName() const
Definition: table.hxx:375
void TransposeColNotes(ScTable *pTransClip, SCCOL nCol1, SCCOL nCol, SCROW nRow1, SCROW nRow2, SCROW nCombinedStartRow, bool bIncludeFiltered, SCROW nRowDestOffset)
Transpose clipboard notes.
Definition: table2.cxx:1120
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, bool bShow)
Definition: table2.cxx:3954
FillDateCmd
Definition: global.hxx:331
void SetPageStyle(const OUString &rName)
Definition: table5.cxx:1165
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:1774
std::shared_ptr< sc::Sparkline > GetSparkline(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1839
void ClearPrintRanges()
Removes all print ranges.
Definition: table1.cxx:2290
void SortReorderAreaExtrasByColumn(const ScSortInfoArray *pArray, SCROW nDataRow1, SCROW nDataRow2, const ScDataAreaExtras &rDataAreaExtras, ScProgress *pProgress)
Definition: table3.cxx:925
void SetColWidthOnly(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:3280
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:2636
Walk through all cells in an area.
Definition: dociter.hxx:207
sal_uInt64 GetCodeCount() const
Definition: table3.cxx:3045
bool GetDataEntries(SCCOL nCol, SCROW nRow, std::set< ScTypedStrData > &rStrings)
Definition: table3.cxx:3008
ScLinkMode
Definition: global.hxx:213
void CopyToClip(sc::CopyToClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pTable)
Definition: table2.cxx:489
void StripHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:4002
bool IsLinked() const
Definition: table.hxx:363
SCCOL GetLastChangedColFlagsWidth() const
Definition: table2.cxx:3923
void SetRowManualBreaks(::std::set< SCROW > &&rBreaks)
Definition: table5.cxx:318
SCROW nRepeatStartY
Definition: table.hxx:178
void CopyColHidden(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:656
short CompareCell(sal_uInt16 nSort, ScRefCellValue &rCell1, SCCOL nCell1Col, SCROW nCell1Row, ScRefCellValue &rCell2, SCCOL nCell2Col, SCROW nCell2Row) const
Definition: table3.cxx:1525
bool SetRowHidden(SCROW nStartRow, SCROW nEndRow, bool bHidden)
Definition: table5.cxx:572
ScRefCellValue next()
Find the next visible data cell position.
Definition: table1.cxx:2397
void SetColWidth(SCCOL nCol, sal_uInt16 nNewWidth)
Definition: table2.cxx:3259
bool HasValueData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2071
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:937
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:1754
void SetPendingRowHeights(bool bSet)
Definition: table1.cxx:382
void FindAreaPos(SCCOL &rCol, SCROW &rRow, ScMoveDirection eDirection) const
Definition: table1.cxx:1364
std::unique_ptr< ScOutlineTable > pOutlineTable
Definition: table.hxx:198
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:4072
std::atomic< bool > bStreamValid
this is touched from formula group threading context
Definition: table.hxx:251
void InterpretCellsIfNeeded(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table1.cxx:2604
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:4253
void SetPattern(const ScAddress &rPos, const ScPatternAttr &rAttr)
Definition: table2.cxx:3162
bool RemoveFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:3150
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:1462
tools::Long GetRowOffset(SCROW nRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:4268
void SetAttrEntries(SCCOL nStartCol, SCCOL nEndCol, std::vector< ScAttrEntry > &&vNewData)
Definition: table2.cxx:2892
const OUString & GetLinkFlt() const
Definition: table.hxx:365
sal_uInt16 GetOriginalWidth(SCCOL nCol) const
Definition: table2.cxx:3472
bool HasSelectionMatrixFragment(const ScMarkData &rMark) const
Definition: table2.cxx:2615
std::unique_ptr< ScBitMaskCompressedArray< SCCOL, CRFlags > > mpColFlags
Definition: table.hxx:186
void SetRepeatRowRange(std::unique_ptr< ScRange > pNew)
Definition: table1.cxx:2281
VisibleDataCellIterator(const ScDocument &rDoc, ScFlatBoolRowSegments &rRowSegs, ScColumn &rColumn)
Definition: table1.cxx:2344
bool SearchAll(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:517
bool IsLayoutRTL() const
Definition: table.hxx:344
std::unique_ptr< utl::TextSearch > pSearchText
Definition: table.hxx:209
bool IsColValid(const SCCOL nScCol) const
Definition: table.hxx:322
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
std::unique_ptr< ScFlatBoolColSegments > mpHiddenCols
Definition: table.hxx:188
void IncDate(double &rVal, sal_uInt16 &nDayOfMonth, double nStep, FillDateCmd eCmd)
Definition: table4.cxx:1561
bool SetFormulaCells(SCCOL nCol, SCROW nRow, std::vector< ScFormulaCell * > &rCells)
Definition: table2.cxx:1738
ScPasteFunc
Definition: global.hxx:179
sal_uLong GetLinkRefreshDelay() const
Definition: table.hxx:368
void ShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3791
void ApplyStyle(SCCOL nCol, SCROW nRow, const ScStyleSheet *rStyle)
Definition: table2.cxx:2986
SCSIZE GetEmptyLinesInBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScDirection eDir) const
Definition: table1.cxx:1187
void SetScenarioFlags(ScScenarioFlags nNew)
Definition: table.hxx:358
void SetDrawPageSize(bool bResetStreamValid=true, bool bUpdateNoteCaptionPos=true, const ScObjectHandling eObjectHandling=ScObjectHandling::RecalcPosMode)
Definition: table2.cxx:4224
OUString aCodeName
Definition: table.hxx:163
sal_uInt64 GetWeightedCount() const
Definition: table3.cxx:3025
bool ColHidden(SCCOL nCol, SCCOL *pFirstCol=nullptr, SCCOL *pLastCol=nullptr) const
Definition: table5.cxx:555
bool IsProtected() const
Definition: table5.cxx:1094
FillCmd
Definition: global.hxx:314
bool ValidCol(SCCOL nCol) const
Definition: table.hxx:334
bool CreateStarQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:2754
const ScFormulaCell * GetFormulaCell(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1821
ScDocument & GetDoc()
Definition: table.hxx:283
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:330
void AssertNoInterpretNeeded(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2526
bool operator!=(const Iterator &rOther) const
Definition: table.hxx:141
void SetColManualBreaks(::std::set< SCCOL > &&rBreaks)
Definition: table5.cxx:325
void SetDirtyVar()
Definition: table2.cxx:2093
tools::Long GetColOffset(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:4358
CollatorWrapper * pSortCollator
Definition: table.hxx:215
void AddCondFormatData(const ScRangeList &rRange, sal_uInt32 nIndex)
Definition: table2.cxx:2935
void FindRangeNamesInUse(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::UpdatedRangeNames &rIndexes) const
Definition: table1.cxx:2049
std::unique_ptr< ScRange > pRepeatColRange
Definition: table.hxx:219
const ScColumnData & ColumnData(SCCOL nCol) const
Definition: table.hxx:1140
bool HasColManualBreak(SCCOL nCol) const
Definition: table5.cxx:380
const ScRangeList * GetScenarioRanges() const
Definition: table2.cxx:1616
void CheckVectorizationState()
Definition: table2.cxx:2099
ScMoveDirection
Definition: global.hxx:323
void RestorePrintRanges(const ScPrintSaverTab &rSaveTab)
Definition: table1.cxx:2331
void UpdateInsertTab(sc::RefUpdateInsertTabContext &rCxt)
Definition: table1.cxx:1948
std::bidirectional_iterator_tag iterator_category
Definition: table.hxx:128
void GetAutoFormatFrame(SCCOL nCol, SCROW nRow, sal_uInt16 nFlags, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2745
sal_Int16 SCCOL
Definition: types.hxx:21
sal_uInt16 GetColWidth(SCCOL nCol, bool bHiddenAsZero=true) const
Definition: table2.cxx:3435
InsertDeleteFlags
Definition: global.hxx:147
bool ValidCol(SCCOL nCol) const
Definition: document.hxx:897
const ScRange * GetRepeatRowRange() const
Definition: table.hxx:797
void InvalidateScenarioRanges()
Definition: table2.cxx:1611
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:211
bool GetPrintAreaHor(SCROW nStartRow, SCROW nEndRow, SCCOL &rEndCol) const
Definition: table1.cxx:698
Struct to hold non-data extended area, used with ScDocument::ShrinkToUsedDataArea().
Definition: sortparam.hxx:43
void CopyCaptionsToTable(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScTable *pDestTab, bool bCloneCaption)
Definition: table2.cxx:1475
std::unique_ptr< ScDBData > pDBDataNoName
Definition: table.hxx:228
void UnshareFormulaCells(SCCOL nCol, std::vector< SCROW > &rRows)
Definition: table7.cxx:278
void RemoveColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:419
bool TestRemoveSubTotals(const ScSubTotalParam &rParam)
Definition: table3.cxx:1951
void CopyRowHidden(const ScTable &rTable, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:671
ScFlatBoolRowSegments & mrRowSegs
Definition: table.hxx:1382
CRFlags GetRowFlags(SCROW nRow) const
Definition: table2.cxx:3885
void SetEmptyCell(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1701
const SfxPoolItem * GetAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nWhich) const
Definition: table2.cxx:2231
OUString aLinkDoc
Definition: table.hxx:166
SCROW GetLastChangedRowFlagsWidth() const
Definition: table2.cxx:3937
CAUTION! The following defines must be in the same namespace as the respective type.
ScScenarioFlags nScenarioFlags
Definition: table.hxx:227
void AutoFormatArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, sal_uInt16 nFormatNo)
Definition: table4.cxx:2585
void GetUnprotectedCells(ScRangeList &rRangeList) const
Definition: table2.cxx:1985
void UpdateCompile(bool bForceIfNameInUse=false)
Definition: table1.cxx:2034
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:3690
SCCOL CountVisibleCols(SCCOL nStartCol, SCCOL nEndCol) const
Definition: table5.cxx:795
bool HasAttribSelection(const ScMarkData &rMark, HasAttrFlags nMask) const
Definition: table2.cxx:2302
void CopyFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, ScTable *pTable)
Definition: table2.cxx:723
void AddPrintRange(const ScRange &rNew)
Adds a new print ranges.
Definition: table1.cxx:2300
bool IsActiveScenario() const
Definition: table.hxx:360
const EditTextObject * GetEditText(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1797
const Color & GetScenarioColor() const
Definition: table.hxx:353
void DBShowRows(SCROW nRow1, SCROW nRow2, bool bShow)
Definition: table2.cxx:3759
ScAddress maLOKFreezeCell
Definition: table.hxx:234
void GetNotesInRange(const ScRange &rRange, std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1941
::boost::intrusive_ptr< FormulaToken > FormulaTokenRef
std::unique_ptr< ScTableProtection > pTabProtection
Definition: table.hxx:181
ScRefCellValue GetRefCellValue(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2550
void GetLastDataPos(SCCOL &rCol, SCROW &rRow) const
Definition: table2.cxx:2044
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:2596
void GetAutoFormatData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
Definition: table4.cxx:2805
bool GetNextMarkedCell(SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark) const
Definition: table1.cxx:1744
void CompileXML(sc::CompileFormulaContext &rCxt, ScProgress &rProgress)
Definition: table2.cxx:2186
SvNumFormatType
bool bTableAreaValid
Definition: table.hxx:240
OUString aName
Definition: table.hxx:162
ScColContainer aCol
Definition: table.hxx:160
void SetRawString(SCCOL nCol, SCROW nRow, const svl::SharedString &rStr)
Definition: table2.cxx:1760
bool CreateExcelQuery(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:2676
void CreateColumnIfNotExistsImpl(const SCCOL nScCol)
Definition: table1.cxx:2717
void GetAllRowBreaks(::std::set< SCROW > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:332
void StartListeningFormulaCells(sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: table2.cxx:1298
bool GetTableArea(SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
Definition: table1.cxx:563
void LockTable()
Definition: table2.cxx:2798
bool DeleteSparkline(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:1864
void DBShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3733
const OUString & GetCodeName() const
Definition: table.hxx:381
::std::set< SCROW > maRowManualBreaks
Definition: table.hxx:194
std::unique_ptr< ScConditionalFormatList > mpCondFormatList
Definition: table.hxx:231
bool DoSubTotals(ScSubTotalParam &rParam)
Definition: table3.cxx:2064
Color aTabBgColor
Definition: table.hxx:226
const Iterator & end()
Definition: table.hxx:147
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
Definition: table2.cxx:3030
SvtScriptType GetRangeScriptType(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2469
Iterator & operator--()
Definition: table.hxx:137
bool BroadcastBroadcasters(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SfxHintId nHint)
Broadcast single broadcasters in range, without explicitly setting anything dirty, not doing area broadcasts.
Definition: table2.cxx:2154
void BroadcastRecalcOnRefMove()
Broadcast dirty formula cells that contain functions such as CELL(), COLUMN() or ROW() which may chan...
Definition: table2.cxx:2147
void FillFormulaVertical(const ScFormulaCell &rSrcCell, SCCOLROW &rInner, SCCOL nCol, SCROW nRow1, SCROW nRow2, ScProgress *pProgress, sal_uInt64 &rProgress)
Definition: table4.cxx:1690
void UpdateTranspose(const ScRange &rSource, const ScAddress &rDest, ScDocument *pUndoDoc)
Definition: table1.cxx:1935
sal_Int32 GetMaxStringLen(SCCOL nCol, SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
Definition: table3.cxx:3056
CommentCaptionState
Definition: document.hxx:261
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2)
Definition: table2.cxx:3972
bool ReservePatternCount(SCCOL nCol, SCSIZE nReserve)
Definition: table4.cxx:2957
void SetTabNo(SCTAB nNewTab)
Definition: table1.cxx:2042
bool IsStreamValid() const
Definition: table.hxx:319
const ScBitMaskCompressedArray< SCROW, CRFlags > * GetRowFlagsArray() const
Definition: table.hxx:901
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:356
bool ApplyFlags(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScMF nFlags)
Definition: table2.cxx:3140
bool IsScenario() const
Definition: table.hxx:349
bool bLayoutRTL
Definition: table.hxx:237
void SortReorderByRow(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress, bool bOnlyDataAreaExtras)
Definition: table3.cxx:1087
BroadcastMode
Broadcast mode for SetDirty(SCROW,SCROW,BroadcastMode).
Definition: column.hxx:242
bool IsEmptyLine(SCROW nRow, SCCOL nStartCol, SCCOL nEndCol) const
Definition: table1.cxx:1238
bool ContainsNotesInRange(const ScRange &rRange) const
Definition: table2.cxx:1991
FormulaError
SCCOL Col() const
Definition: address.hxx:279
bool SetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const ScSetStringParam *pParam=nullptr)
Definition: table2.cxx:1643
SCCOL nTableAreaVisibleX
Definition: table.hxx:204
void SetCondFormList(ScConditionalFormatList *pList)
Definition: table1.cxx:2668
Iterate through all edit text cells in a given sheet.
void GetScenarioComment(OUString &rComment) const
Definition: table.hxx:351
SheetGeomType
Represents the type of sheet geometry data.
Definition: document.hxx:275
bool RefVisible(const ScFormulaCell *pCell)
Definition: table2.cxx:4195
bool SearchAndReplaceEmptyCells(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:856
void UpdateMoveTab(sc::RefUpdateMoveTabContext &rCxt, SCTAB nTabNo, ScProgress *pProgress)
Definition: table1.cxx:2006
void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
Definition: table2.cxx:421
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:2827
tools::Long GetTotalRowHeight(SCROW nStartRow, SCROW nEndRow, bool bHiddenAsZero=true) const
Definition: table5.cxx:772
SCROW GetLOKFreezeRow() const
Definition: table7.cxx:594
const OUString & GetLinkTab() const
Definition: table.hxx:367
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:1310
bool GetDataAreaSubrange(ScRange &rRange) const
Definition: table1.cxx:995
bool SetLOKFreezeCol(SCCOL nFreezeCol)
Definition: table7.cxx:599
SCSIZE GetPatternCount(SCCOL nCol) const
Definition: table4.cxx:2941
::std::vector< ScRange > ScRangeVec
Definition: table.hxx:158
Iterator & operator++()
Definition: table.hxx:136
bool ReplaceAllStyle(const SvxSearchItem &rSearchItem, const ScMarkData &rMark, ScRangeList &rMatchedRanges, ScDocument *pUndoDoc)
Definition: table6.cxx:767
OUString GetString(SCCOL nCol, SCROW nRow, const ScInterpreterContext *pContext=nullptr) const
Definition: table2.cxx:1766
void UpdateDeleteTab(sc::RefUpdateDeleteTabContext &rCxt)
Definition: table1.cxx:1977
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: document.hxx:899
void InvalidatePageBreaks()
Definition: table2.cxx:1554
bool HasManualBreaks() const
Definition: table5.cxx:313
SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:751
void GetAllColBreaks(::std::set< SCCOL > &rBreaks, bool bPage, bool bManual) const
Definition: table5.cxx:344
OUString aLinkOpt
Definition: table.hxx:168
::std::set< SCCOL > maColPageBreaks
Definition: table.hxx:195
SCCOL nRepeatEndX
Definition: table.hxx:177
void GetAutoFormatAttr(SCCOL nCol, SCROW nRow, sal_uInt16 nIndex, ScAutoFormatData &rData)
Definition: table4.cxx:2732
bool RowHidden(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:480
UpdateRefMode
Definition: global.hxx:298
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:124
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:1096
void GetFilterEntries(SCCOL nCol, SCROW nRow1, SCROW nRow2, ScFilterEntries &rFilterEntries, bool bFiltering=false)
Definition: table3.cxx:2974
void UpdateInsertTabAbs(SCTAB nNewPos)
Definition: table4.cxx:2883
OUString aPageStyle
Definition: table.hxx:174
const Iterator & begin()
Definition: table.hxx:146
void SetScenarioComment(const OUString &rComment)
Definition: table.hxx:352
void SetTabBgColor(const Color &rColor)
Definition: table1.cxx:397
ColRowEditAction
Definition: global.hxx:424
bool IsColRowValid(const SCCOL nScCol, const SCROW nScRow) const
Definition: table.hxx:326
bool CreateQueryParam(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScQueryParam &rQueryParam)
Definition: table3.cxx:2860
const OUString & GetPageStyle() const
Definition: table.hxx:386
bool IsPrintEntireSheet() const
Returns true, if the sheet is always printed.
Definition: table.hxx:804
bool SearchStyle(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, const ScMarkData &rMark)
Definition: table6.cxx:614
bool ValidRow(SCROW nRow) const
Definition: document.hxx:898
void TopTenQuery(ScQueryParam &)
Definition: table3.cxx:2326
ScMF
Definition: attrib.hxx:34
std::unique_ptr< ScFlatBoolRowSegments > mpFilteredRows
Definition: table.hxx:191
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:219
void CopyScenarioFrom(const ScTable *pSrcTab)
Definition: table2.cxx:1567
sal_uInt64 GetCellCount() const
Definition: table3.cxx:3015
ScRangeName * GetRangeName() const
Definition: table2.cxx:4261
void GetDataArea(SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bIncludeOld, bool bOnlyDown) const
Definition: table1.cxx:872
SCROW nRepeatEndY
Definition: table.hxx:179
void DeleteCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize, bool *pUndoOutline)
Definition: table2.cxx:356
std::unique_ptr< ScSortInfoArray > CreateSortInfoArray(const sc::ReorderParam &rParam)
Definition: table3.cxx:461
bool IsLoadingRTL() const
Definition: table.hxx:345
sc::SparklineList & GetSparklineList()
Definition: table2.cxx:1874
bool ValidColRow(SCCOL nCol, SCROW nRow) const
Definition: table.hxx:336
void SetOptimalHeightOnly(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, ScProgress *pOuterProgress=nullptr, sal_uInt64 nProgressStart=0)
Definition: table1.cxx:489
const ScDocument & GetDoc() const
Definition: table.hxx:284
void SetLayoutRTL(bool bSet)
Definition: table1.cxx:387
CellType
Definition: global.hxx:269
sal_uInt16 GetCommonWidth(SCCOL nEndCol) const
Definition: table2.cxx:3482
void CopyConditionalFormat(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCCOL nDx, SCROW nDy, const ScTable *pTable)
Definition: table2.cxx:630
void MergeSelectionPattern(ScMergePatternState &rState, const ScMarkData &rMark, bool bDeep) const
Definition: table2.cxx:2813
short Compare(SCCOLROW nIndex1, SCCOLROW nIndex2) const
Definition: table3.cxx:1731
ScLinkMode GetLinkMode() const
Definition: table.hxx:362
void DumpColumnStorage(SCCOL nCol) const
ScColumnsRange GetColumnsRange(SCCOL begin, SCCOL end) const
Definition: table1.cxx:2706
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:877
const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow) const
Definition: table2.cxx:2280
::std::set< SCCOL > maColManualBreaks
Definition: table.hxx:196
void SetRepeatArea(SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow)
Definition: table5.cxx:1116
bool GetCellArea(SCCOL &rEndCol, SCROW &rEndRow) const
Definition: table1.cxx:513
Color aScenarioColor
Definition: table.hxx:225
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:983
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2574
void CopyRowHeight(const ScTable &rSrcTable, SCROW nStartRow, SCROW nEndRow, SCROW nSrcOffset)
Definition: table5.cxx:685
bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:540
void SetVisible(bool bVis)
Definition: table1.cxx:366
void CalcAll()
Definition: table2.cxx:2169
bool bPendingRowHeights
Definition: table.hxx:243
formula::VectorRefArray FetchVectorRefArray(SCCOL nCol, SCROW nRow1, SCROW nRow2)
Definition: table1.cxx:2514
void SortReorderAreaExtrasByRow(ScSortInfoArray *pArray, SCCOL nDataCol1, SCCOL nDataCol2, const ScDataAreaExtras &rDataAreaExtras, ScProgress *pProgress)
Definition: table3.cxx:898
void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
Definition: table2.cxx:453
std::unique_ptr< ScCompressedArray< SCCOL, sal_uInt16 > > mpColWidth
Definition: table.hxx:183
void InvalidateTableArea()
Definition: table2.cxx:1548
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
Definition: table2.cxx:3234
void SortReorderByRowRefUpdate(ScSortInfoArray *pArray, SCCOL nCol1, SCCOL nCol2, ScProgress *pProgress)
Definition: table3.cxx:1249
OUString GetUpperCellString(SCCOL nCol, SCROW nRow)
Definition: table2.cxx:4217
bool TestInsertCol(SCROW nStartRow, SCROW nEndRow, SCSIZE nSize) const
Definition: table2.cxx:260
bool bGlobalKeepQuery
Definition: table.hxx:245
bool HandleRefArrayForParallelism(SCCOL nCol, SCROW nRow1, SCROW nRow2, const ScFormulaCellGroupRef &mxGroup)
Definition: table1.cxx:2534
QPRO_FUNC_TYPE nType
Definition: qproform.cxx:398
SvtBroadcaster * GetBroadcaster(SCCOL nCol, SCROW nRow)
Definition: table1.cxx:2566
void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
Definition: table2.cxx:1935
void Sort(const ScSortParam &rSortParam, bool bKeepQuery, bool bUpdateRefs, ScProgress *pProgress, sc::ReorderParam *pUndo)
Sort a range of data.
Definition: table3.cxx:1789
SCROW nTableAreaY
Definition: table.hxx:203
void SetDirty(const ScRange &, ScColumn::BroadcastMode)
Definition: table2.cxx:2115
void FillSeries(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, FillCmd eFillCmd, FillDateCmd eFillDateCmd, double nStepValue, double nMaxValue, sal_uInt16 nMinDigits, bool bAttribs, ScProgress *pProgress, bool bSkipOverlappedCells=false, std::vector< sal_Int32 > *pNonOverlappedCellIdx=nullptr)
Definition: table4.cxx:2129
ScScenarioFlags GetScenarioFlags() const
Definition: table.hxx:357
const OUString & GetLinkOpt() const
Definition: table.hxx:366
void SetColBreak(SCCOL nCol, bool bPage, bool bManual)
Definition: table5.cxx:449
SCROW GetNotePosition(SCCOL nCol, size_t nIndex) const
Definition: table2.cxx:1912
bool SetLOKFreezeRow(SCROW nFreezeRow)
Definition: table7.cxx:616
void CopyPrintRange(const ScTable &rTable)
Definition: table1.cxx:2245
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:2375
SCCOL nRepeatStartX
Definition: table.hxx:176
FormulaError GetErrCode(const ScAddress &rPos) const
Definition: table.hxx:645
void SetDirtyIfPostponed()
Mark formula cells dirty that have the mbPostponedDirty flag set or contain named ranges with relativ...
Definition: table2.cxx:2139
std::unique_ptr< ScRange > pRepeatRowRange
Definition: table.hxx:220
bool EnsureFormulaCellResults(const SCCOL nCol1, SCROW nRow1, const SCCOL nCol2, SCROW nRow2, bool bSkipRunning=false)
Definition: table7.cxx:433
bool IsEmptyData(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table1.cxx:1178
bool IsBlockEmpty(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:2351
void CopyStaticToDocument(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const SvNumberFormatterMergeMap &rMap, ScTable *pDestTab)
Definition: table2.cxx:545
const T * GetAttr(SCCOL nCol, SCROW nRow, TypedWhichId< T > nWhich) const
Definition: table.hxx:721
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sc::ColumnSpanSet &rBroadcastSpans)
Definition: table2.cxx:1287
SCROW GetFirstEditTextRow(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: table2.cxx:1674
bool RowFiltered(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:841
OUString GetInputString(SCCOL nCol, SCROW nRow, const svl::SharedString **pShared=nullptr, bool bForceSystemLocale=false) const
Definition: table2.cxx:1782
void RegroupFormulaCells(SCCOL nCol)
Definition: table7.cxx:286
void SetLoadingMedium(bool bLoading)
Definition: table2.cxx:2164
bool HasStringCells(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const
Definition: table2.cxx:2079
bool IsManualRowHeight(SCROW nRow) const
Definition: table5.cxx:1004
SCROW GetNextManualBreak(SCROW nRow) const
Get the row position of the next manual break that occurs at or below specified row.
Definition: table5.cxx:388
bool HasStringData(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:2063
bool SetEditText(SCCOL nCol, SCROW nRow, std::unique_ptr< EditTextObject > pEditText)
Definition: table2.cxx:1655
bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bRefresh)
Definition: table2.cxx:2317
std::unique_ptr< ScRangeList > pScenarioRanges
Definition: table.hxx:224
void StyleSheetChanged(const SfxStyleSheetBase *pStyleSheet, bool bRemoved, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY)
Definition: table2.cxx:3114
The data type represents bits, manageable by bitwise operations.
void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
Definition: table2.cxx:2925
ScDirection
Definition: global.hxx:340
void FillAuto(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, sal_uInt64 nFillCount, FillDir eFillDir, ScProgress *pProgress)
Definition: table4.cxx:790
OUString aLinkTab
Definition: table.hxx:169
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:1126
ScDocument & rDocument
Definition: table.hxx:208
void QuickSort(ScSortInfoArray *, SCCOLROW nLo, SCCOLROW nHi)
Definition: table3.cxx:1689
void SetSheetEvents(std::unique_ptr< ScSheetEvents > pNew)
Definition: table2.cxx:121
sal_uLong AddCondFormat(std::unique_ptr< ScConditionalFormat > pNew)
Definition: table1.cxx:2440
void GetNextPos(SCCOL &rCol, SCROW &rRow, SCCOL nMovX, SCROW nMovY, bool bMarked, bool bUnprotected, const ScMarkData &rMark, SCCOL nTabStartCol) const
Definition: table1.cxx:1499
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:3073
bool GetCalcNotification() const
Definition: table.hxx:341
void CopyCellToDocument(SCCOL nSrcCol, SCROW nSrcRow, SCCOL nDestCol, SCROW nDestRow, ScTable &rDestTab)
Definition: table2.cxx:583
sal_uInt32 GetNumberFormat(const ScInterpreterContext &rContext, const ScAddress &rPos) const
Definition: table2.cxx:2245
void SyncColRowFlags()
Definition: table5.cxx:1059
void FillSparkline(bool bVertical, SCCOLROW nFixed, SCCOLROW nIteratingStart, SCCOLROW nIteratingEnd, SCCOLROW nFillStart, SCCOLROW nFillEnd)
Definition: table4.cxx:1217
void ApplyBlockFrame(const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow)
Definition: table2.cxx:2851
bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCCOL nCol)
Definition: table2.cxx:712
bool HasColPageBreak(SCCOL nCol) const
Definition: table5.cxx:364
void CreateAllNoteCaptions()
Definition: table2.cxx:1920
bool IsSorted(SCCOLROW nStart, SCCOLROW nEnd) const
Definition: table3.cxx:1768
void EndListeningIntersectedGroup(sc::EndListeningContext &rCxt, SCCOL nCol, SCROW nRow, std::vector< ScAddress > *pGroupPos)
Definition: table7.cxx:308
bool bActiveScenario
Definition: table.hxx:247
std::unique_ptr< ScBitMaskCompressedArray< SCROW, CRFlags > > pRowFlags
Definition: table.hxx:187
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
Definition: table2.cxx:3099
void DeleteEmptyBroadcasters()
Definition: table1.cxx:2583
void SetNote(SCCOL nCol, SCROW nRow, std::unique_ptr< ScPostIt > pNote)
Definition: table2.cxx:1896
bool RowHiddenLeaf(SCROW nRow, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: table5.cxx:510
bool bPageSizeValid
Definition: table.hxx:239
void SwapNonEmpty(sc::TableValues &rValues, sc::StartListeningContext &rStartCxt, sc::EndListeningContext &rEndCxt)
Definition: table7.cxx:216
bool bPrintEntireSheet
Definition: table.hxx:246
void StoreToCache(SvStream &rStrm) const
Definition: table7.cxx:459
std::unique_ptr< ScFlatBoolRowSegments > mpHiddenRows
Definition: table.hxx:189
const Color & GetTabBgColor() const
Definition: table.hxx:355
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:796
SCCOL GetAllocatedColumnsCount() const
Definition: table.hxx:1127
sal_uInt16 GetRowHeight(SCROW nRow, SCROW *pStartRow, SCROW *pEndRow, bool bHiddenAsZero=true) const
Definition: table2.cxx:3533
void RemoveManualBreaks()
Definition: table5.cxx:304
void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: table2.cxx:2871
CRFlags GetColFlags(SCCOL nCol) const
Definition: table2.cxx:3877
ScDBData * GetAnonymousDBData()
Definition: table.hxx:379
bool SearchRangeForAllEmptyCells(const ScRange &rRange, const SvxSearchItem &rSearchItem, ScRangeList &rMatchedRanges, OUString &rUndoStr, ScDocument *pUndoDoc)
Definition: table6.cxx:1068
void CompileDBFormula(sc::CompileFormulaContext &rCxt)
Definition: table4.cxx:2929
SCCOL GetLOKFreezeCol() const
Definition: table7.cxx:589
const OUString & GetUpperName() const
Definition: table1.cxx:359
std::unique_ptr< ScSheetEvents > pSheetEvents
Definition: table.hxx:200
void ExtendPrintArea(OutputDevice *pDev, SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW nEndRow)
Definition: table1.cxx:2056
double GetValue(SCCOL nCol, SCROW nRow) const
Definition: table2.cxx:1790
void StartOutlineTable()
Definition: table2.cxx:115
void SetError(SCCOL nCol, SCROW nRow, FormulaError nError)
Definition: table4.cxx:2877
Size aPageSizeTwips
Definition: table.hxx:175
bool ValidTab(SCTAB nTab)
Definition: address.hxx:111
sal_uLong nLinkRefreshDelay
Definition: table.hxx:170
bool IsMerged(SCCOL nCol, SCROW nRow) const
Definition: table7.cxx:27
SCROW GetLastFlaggedRow() const
Definition: table2.cxx:3893
Iterator(SCCOL nCol)
Definition: table.hxx:134
SCROW GetHiddenRowCount(SCROW nRow) const
Definition: table2.cxx:3676
void CopyColFiltered(const ScTable &rTable, SCCOL nStartCol, SCCOL nEndCol)
Definition: table5.cxx:892
void InsertCol(const sc::ColumnSet &rRegroupCols, SCCOL nStartCol, SCROW nStartRow, SCROW nEndRow, SCSIZE nSize)
Definition: table2.cxx:277
bool IsSortCollatorGlobal() const
Definition: table3.cxx:622
Use this to iterate through non-empty visible cells in a single column.
Definition: table.hxx:1349
void MixMarked(sc::MixDocContext &rCxt, const ScMarkData &rMark, ScPasteFunc nFunction, bool bSkipEmpty, const ScTable *pSrcTab)
Definition: table2.cxx:793
bool bScenario
Definition: table.hxx:236
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:3187
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, bool bShow)
Definition: table2.cxx:3964
bool SearchRangeForEmptyCell(const ScRange &rRange, const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow, OUString &rUndoStr)
Definition: table6.cxx:958
sal_Int16 SCTAB
Definition: types.hxx:22
void ChangeSelectionIndent(bool bIncrement, const ScMarkData &rMark)
Definition: table2.cxx:3211
ScRefCellValue GetCellValue(SCCOL nCol, sc::ColumnBlockPosition &rBlockPos, SCROW nRow)
Definition: table2.cxx:2021
css::uno::Sequence< css::sheet::TablePageBreakData > GetRowBreakData() const
Definition: table5.cxx:464
SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow) const
Definition: table5.cxx:705
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:796
bool bCalcNotification
Definition: table.hxx:244
ScColumnsRange GetWritableColumnsRange(SCCOL begin, SCCOL end)
Definition: table1.cxx:2686
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:2952
void ShowRow(SCROW nRow, bool bShow)
Definition: table2.cxx:3710
ScConditionalFormatList * GetCondFormList()
Definition: table1.cxx:2673
void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, bool bFiltered)
Definition: table5.cxx:921