LibreOffice Module sc (master) 1
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
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
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 .
18 */
20#pragma once
22#include <vcl/idle.hxx>
24#include <com/sun/star/uno/Reference.hxx>
25#include <vcl/vclptr.hxx>
26#include "patattr.hxx"
27#include "scdllapi.h"
29#include "rangelst.hxx"
30#include "rangenam.hxx"
31#include "recursionhelper.hxx"
32#include "tabopparams.hxx"
33#include "types.hxx"
34#include <formula/grammar.hxx>
35#include <formula/types.hxx>
36#include "typedstrdata.hxx"
37#include "calcmacros.hxx"
38#include "calcconfig.hxx"
39#include "sheetlimits.hxx"
40#include <o3tl/deleter.hxx>
42#include <svl/hint.hxx>
43#include <svl/typedwhich.hxx>
44#include <svl/zforlist.hxx>
45#include <tools/gen.hxx>
46#include <tools/solar.h>
48#include <cassert>
49#include <memory>
50#include <map>
51#include <shared_mutex>
52#include <optional>
53#include <set>
54#include <unordered_map>
55#include <vector>
57#include "markdata.hxx"
58#include "drwlayer.hxx"
60namespace com::sun::star::chart2 { class XChartDocument; }
62class Timer;
64enum class SvtScriptType : sal_uInt8;
65enum class ScMF;
66enum class FormulaError : sal_uInt16;
67enum class CharCompressType;
69namespace editeng { class SvxBorderLine; }
70namespace formula { struct VectorRefArray; }
71namespace svl {
72class SharedString;
73class SharedStringPool;
76namespace tools { class Guid; }
78namespace sc {
80struct BroadcasterState;
81struct FormulaGroupContext;
82class StartListeningContext;
83class EndListeningContext;
84class CopyFromClipContext;
85class ColumnSpanSet;
86class RangeColumnSpanSet;
87struct ColumnBlockPosition;
88struct RefUpdateContext;
89class EditTextIterator;
90struct NoteEntry;
91class DocumentStreamAccess;
92class DocumentLinkManager;
93class CellValues;
94class TableValues;
95class RowHeightContext;
96struct SetFormulaDirtyContext;
97class RefMovedHint;
98struct ReorderParam;
99class FormulaGroupAreaListener;
100class ColumnSet;
101class UpdatedRangeNames;
102class TableColumnBlockPositionSet;
103class ColumnIterator;
104class ExternalDataMapper;
105class Sparkline;
106class SparklineGroup;
107class SparklineList;
111class Fraction;
113class OutputDevice;
114class SdrObject;
115class SfxBroadcaster;
116class SfxListener;
117class SfxItemSet;
118class SfxObjectShell;
119class SfxBindings;
120class SfxPoolItem;
121class SfxItemPool;
122class SfxPrinter;
124class SvMemoryStream;
125class SvxBoxInfoItem;
126class SvxBoxItem;
128namespace sfx2 {
129 class LinkManager;
130 }
131class SvxSearchItem;
132class XColorList;
134class ScAutoFormatData;
138class ScClipOptions;
139class ScColumn;
142class ScDBCollection;
143class ScDBData;
144class ScDetOpData;
145class ScDetOpList;
146class ScDocOptions;
147class ScDocProtection;
148class ScDocumentPool;
149class ScDrawLayer;
150class ScExtDocOptions;
152class ScFormulaCell;
153class ScMacroManager;
154class ScOutlineTable;
156class ScStyleSheet;
157class ScStyleSheetPool;
158class ScTable;
160class ScTokenArray;
161class ScValidationData;
163class ScViewOptions;
164class ScChangeTrack;
167class ScNoteEditEngine;
168class ScDPObject;
169class ScDPCollection;
170class ScMatrix;
171class ScScriptTypeData;
172class ScPoolHelper;
173struct ScSortParam;
176class ScUnoRefList;
178struct RowInfo;
179struct ScTableInfo;
180struct ScTabOpParam;
181class VirtualDevice;
182class ScAutoNameCache;
184class ScLookupCache;
185struct ScLookupCacheMap;
188class ScUndoManager;
190struct ScClipParam;
192struct ScSetStringParam;
193struct ScColWidthParam;
194class ScSheetEvents;
195class ScProgress;
196class SvtListener;
197class ScEditDataArray;
198class EditTextObject;
199struct ScRefCellValue;
200class ScPostIt;
201struct ScSubTotalParam;
202struct ScQueryParam;
203class ScHint;
204class SvtBroadcaster;
205enum class ScDBDataPortion;
206enum class ScSheetEventId;
207class BitmapEx;
208class ScColumnsRange;
209struct ScFilterEntries;
211struct ScSheetLimits;
212struct ScDataAreaExtras;
215namespace sc {
217typedef std::map<OUString, BitmapEx> IconSetBitmapMap;
221namespace com::sun::star {
222 namespace lang {
223 struct EventObject;
224 }
225 namespace i18n {
226 class XBreakIterator;
227 }
228 namespace util {
229 class XModifyListener;
230 }
231 namespace embed {
232 class XEmbeddedObject;
233 }
234 namespace script::vba {
235 class XVBAEventProcessor;
236 }
237 namespace sheet {
238 struct TablePageBreakData;
239 }
242namespace weld {
244class Window;
248#define SC_DOC_NEW 0xFFFF
264 ALLSHOWN, // All comments captions are shown
265 ALLHIDDEN, // All comments captions are hidden
266 MIXED // There are comments in shown and hidden.
271 GLOBAL, // A range name can be defined
272 SHEET // with two scope on Manage Names dialog.
278 SIZES, // Column widths or row heights.
279 HIDDEN, // Hidden columns/rows.
280 FILTERED, // Filtered columns/rows.
281 GROUPS // Grouping of columns/rows.
286 OUString aDocName;
288 sal_uInt64 nCellCount;
289 sal_uInt64 nFormulaCount;
290 sal_uInt16 nPageCount;
292 : nTableCount(0)
293 , nCellCount(0)
294 , nFormulaCount(0)
295 , nPageCount(0)
296 {
297 }
300// DDE link modes
306// During threaded calculation fields being mutated are kept in this struct
309 std::unique_ptr<ScRecursionHelper> xRecursionHelper; // information for recursive and iterative cell formulas
310 ScInterpreterContext* pContext = nullptr; // references the context passed around for easier access
316 // Bit mask bits
317 CORE = 0x0001,
320typedef std::unique_ptr<ScTable, o3tl::default_delete<ScTable>> ScTableUniquePtr;
324friend class ScValueIterator;
327friend class ScCellIterator;
328template< ScQueryCellIteratorAccess accessType, ScQueryCellIteratorType queryType >
330template< ScQueryCellIteratorAccess accessType >
334friend class ScDocAttrIterator;
336friend class ScDocShell;
339friend class ScTable;
340friend class ScColumn;
341friend struct ScRefCellValue;
342friend class ScDocumentImport;
344friend struct ScMutationGuard;
345friend struct ScMutationDisable;
347 typedef std::vector<ScTableUniquePtr> TableContainer;
351 {
352 OFF,
355 };
360 std::shared_ptr<svl::SharedStringPool> mpCellStringPool;
361 std::unique_ptr<sc::DocumentLinkManager> mpDocLinkMgr;
363 std::shared_ptr<sc::FormulaGroupContext> mpFormulaGroupCxt;
369 std::unique_ptr<ScFieldEditEngine> mpEditEngine; // uses pEditPool from xPoolHelper
370 std::unique_ptr<ScNoteEditEngine> mpNoteEngine; // uses pEditPool from xPoolHelper
374 std::unique_ptr<ScDrawLayer> mpDrawLayer; // SdrModel
376 std::unique_ptr<ScValidationDataList> pValidationList; // validity
377 SvNumberFormatterIndexTable* pFormatExchangeList; // for application of number formats
380 std::vector<OUString> maTabNames; // for undo document, we need the information tab name <-> index
381 mutable std::unique_ptr<ScRangeName> pRangeName;
382 std::unique_ptr<ScDBCollection> pDBCollection;
383 std::unique_ptr<ScDPCollection> pDPCollection;
384 std::unique_ptr< ScTemporaryChartLock > apTemporaryChartLock;
385 std::unique_ptr<ScPatternAttr> pSelectionAttr; // Attributes of a block
386 ScFormulaCell* pFormulaTree; // formula tree (start)
387 ScFormulaCell* pEOFormulaTree; // formula tree (end), last cell
388 ScFormulaCell* pFormulaTrack; // BroadcastTrack (start)
389 ScFormulaCell* pEOFormulaTrack; // BroadcastTrack (end), last cell
390 std::unique_ptr<ScBroadcastAreaSlotMachine> pBASM; // BroadcastAreas
391 std::unique_ptr<ScChartListenerCollection> pChartListenerCollection;
392 std::unique_ptr<SvMemoryStream> pClipData;
393 std::unique_ptr<ScDetOpList> pDetOpList;
394 std::unique_ptr<ScChangeTrack> pChangeTrack;
395 std::unique_ptr<SfxBroadcaster> pUnoBroadcaster;
396 std::unique_ptr<ScUnoListenerCalls> pUnoListenerCalls;
397 std::unique_ptr<ScUnoRefList> pUnoRefUndoList;
398 std::unique_ptr<ScChangeViewSettings> pChangeViewSettings;
399 std::unique_ptr<ScScriptTypeData> pScriptTypeData;
400 std::unique_ptr<ScRefreshTimerControl> pRefreshTimerControl;
401 std::shared_ptr<SvxForbiddenCharactersTable> xForbiddenCharacters;
402 std::unique_ptr<ScDBData> mpAnonymousDBData;
403 std::unique_ptr<sc::ExternalDataMapper> mpDataMapper;
405 std::unique_ptr<ScFieldEditEngine> pCacheFieldEditEngine;
407 std::unique_ptr<ScDocProtection> pDocProtection;
408 std::unique_ptr<ScClipParam> mpClipParam;
410 std::unique_ptr<ScExternalRefManager> pExternalRefMgr;
411 std::unique_ptr<ScMacroManager> mpMacroMgr;
413 // mutable for lazy construction
414 mutable std::unique_ptr< ScFormulaParserPool >
417 OUString aDocName; // optional: name of document
418 OUString aDocCodeName; // optional: name of document (twice?)
419 OUString maFileURL; // file URL for copy & paste
423 std::unique_ptr<ScViewOptions> pViewOptions; // view options
424 std::unique_ptr<ScDocOptions> pDocOptions; // document options
425 std::unique_ptr<ScExtDocOptions> pExtDocOptions; // for import etc.
426 std::unique_ptr<ScClipOptions> mpClipOptions; // clipboard options
427 std::unique_ptr<ScConsolidateParam> pConsolidateDlgData;
429 std::unique_ptr<ScAutoNameCache> pAutoNameCache; // for automatic name lookup during CompileXML
431 std::unique_ptr<SfxItemSet> pPreviewFont; // convert to std::unique_ptr or whatever
434 sal_Int64 nUnoObjectId; // counted up for UNO objects
436 ErrCode nRangeOverflowType; // used in (xml) loading for overflow warnings
443 css::uno::Reference< css::script::vba::XVBAEventProcessor >
447 std::vector<ScInterpreterTableOpParams*> m_TableOpList;
452 LanguageType eLanguage; // default language
453 LanguageType eCjkLanguage; // default language for asian text
454 LanguageType eCtlLanguage; // default language for complex text
455 rtl_TextEncoding eSrcSet; // during reading: source character set
461 sal_uInt64 nFormulaCodeInTree; // formula RPN in the formula tree
462 sal_uInt64 nXMLImportedFormulaCount; // progress count during XML import
463 sal_uInt16 nInterpretLevel; // >0 if in interpreter
464 sal_uInt16 nMacroInterpretLevel; // >0 if macro in interpreter
465 sal_uInt16 nInterpreterTableOpLevel; // >0 if in interpreter TableOp
469 // There can be only one ScDocument being calculated in a thread at a time, so we can use a
470 // plain thread_local static member.
475 std::shared_mutex mScLookupMutex; // protection for thread-unsafe parts of handling ScLookup
476 std::unique_ptr<ScSortedRangeCacheMap> mxScSortedRangeCache; // cache for unsorted lookups
478 static const sal_uInt16 nSrcVer; // file version (load/save)
480 HardRecalcState eHardRecalcState; // off, temporary, eternal
481 SCTAB nVisibleTab; // for OLE etc., don't use inside ScDocument
482 SCCOL nPosLeft; // for OLE etc., don't use inside ScDocument
483 SCROW nPosTop; // for OLE etc., don't use inside ScDocument
487 bool bAutoCalc; // calculate automatically
488 bool bAutoCalcShellDisabled; // in/from/for ScDocShell disabled
489 // are there ForcedFormulas which have to be calculated
490 // in interaction with ScDocShell SetDocumentModified,
491 // AutoCalcShellDisabled and TrackFormulas
497 bool bIsVisible; // set from view ctor
499 bool bIsEmbedded; // display/adjust Embedded area?
501 // no broadcast, construct no listener during insert from a different
502 // Doc (per filter or the like ), not until CompileAll / CalcAfterLoad
505 bool bImportingXML; // special handling of formula text
506 bool bCalcingAfterLoad; // in CalcAfterLoad TRUE
507 // don't construct/destruct listeners temporarily
510 bool bInLinkUpdate; // TableLink or AreaLink
512 // are/were there RC_FORCED formula cells in the document (if set once to TRUE then set forever)
514 // is the Doc being destroyed? (no Notify-Tracking etc. needed anymore)
516 // expand reference if insert column/row takes place at the border
517 // of a reference
518 // is fetched in each UpdateReference from InputOptions,
519 // assigned, and restored at the end of UpdateReference
521 // for detective update, is set for each change of a formula
523 // If the pointer is set, formula cells will not be automatically grouped into shared formula groups,
524 // instead the range will be extended to contain all such cells.
525 std::unique_ptr< ScRange > pDelayedFormulaGrouping;
526 // If non-empty, ScColumn::StartListeningFormulaCells() calls may be delayed using this,
527 // avoiding repeated calling for the same cells in the given range. The function will be called once
528 // later for all the cells in the range.
529 std::unordered_map< ScColumn*, std::pair<SCROW, SCROW>> pDelayedStartListeningFormulaCells;
530 // Cells will not delete their broadcasters if delayed, avoiding possible extensive mdds vector changes.
533 bool bLinkFormulaNeedingCheck; // valid only after loading, for ocDde and ocWebservice
540 sal_uInt8 nInDdeLinkUpdate; // originating DDE links (stacked bool)
551 bool mbChangeReadOnlyEnabled:1; // allow changes in read-only document (for API import filters)
553 bool mbUserInteractionEnabled:1; // whether or not to launch any kind of interactive dialogs.
557 std::set<ScFormulaCell*> maSubTotalCells;
560 bool mbEmbedFonts : 1;
568 std::unique_ptr<sc::IconSetBitmapMap> m_pIconSetBitmapMap;
572 // This indicates if a ScDocShell::DoRecalc() or ScDocShell::DoHardRecalc() is in progress.
574 // This indicates if a ScOutputData::LayoutStrings() is in progress.
580 bool IsCellInChangeTrack(const ScAddress &cell,Color *pColCellBorder);
581 void GetCellChangeTrackNote(const ScAddress &cell, OUString &strTrackText, bool &pbLeftEdge);
583 bool IsEmbedFonts() const { return mbEmbedFonts; }
589 void SetEmbedFonts(bool bUse) { mbEmbedFonts = bUse; }
590 void SetEmbedUsedFontsOnly(bool bUse) { mbEmbedUsedFontsOnly = bUse; }
595 void SetImagePreferredDPI(sal_Int32 nValue) { mnImagePreferredDPI = nValue; }
598 SC_DLLPUBLIC sal_uInt64 GetCellCount() const; // all cells
599 SC_DLLPUBLIC sal_uInt64 GetFormulaGroupCount() const; // all cells
600 sal_uInt64 GetCodeCount() const; // RPN-Code in formulas
601 DECL_LINK( GetUserDefinedColor, sal_uInt16, Color* );
602 // number formatter
605 SfxObjectShell* pDocShell = nullptr );
608 void SetName( const OUString& r ) { aDocName = r; }
609 const OUString& GetCodeName() const { return aDocCodeName; }
610 void SetCodeName( const OUString& r ) { aDocCodeName = r; }
611 const OUString& GetFileURL() const { return maFileURL; }
613 void GetDocStat( ScDocStat& rDocStat );
615 SC_DLLPUBLIC void InitDrawLayer( SfxObjectShell* pDocShell = nullptr );
618 {
621 }
622 // Uses thread_local.
624 {
626 }
627 void SetupContextFromNonThreadedContext( ScInterpreterContext& threadedContext, int threadNumber );
628 void MergeContextBackIntoNonThreadedContext( ScInterpreterContext& threadedContext, int threadNumber );
639 SC_DLLPUBLIC void SetDocOptions( const ScDocOptions& rOpt );
641 SC_DLLPUBLIC void SetViewOptions( const ScViewOptions& rOpt );
642 void SetPrintOptions();
645 SC_DLLPUBLIC void SetExtDocOptions( std::unique_ptr<ScExtDocOptions> pNewOptions );
648 void SetClipOptions(std::unique_ptr<ScClipOptions> pClipOptions);
650 SC_DLLPUBLIC void GetLanguage( LanguageType& rLatin, LanguageType& rCjk, LanguageType& rCtl ) const;
651 void SetLanguage( LanguageType eLatin, LanguageType eCjk, LanguageType eCtl );
653 void SetConsolidateDlgData( std::unique_ptr<ScConsolidateParam> pData );
656 void Clear( bool bFromDestructor = false );
658 std::unique_ptr<ScFieldEditEngine> CreateFieldEditEngine();
659 void DisposeFieldEditEngine(std::unique_ptr<ScFieldEditEngine>& rpEditEngine);
666 SC_DLLPUBLIC void SetAllRangeNames(const std::map<OUString, ScRangeName>& rRangeMap);
667 SC_DLLPUBLIC void GetRangeNameMap(std::map<OUString, ScRangeName*>& rRangeName);
670 void SetRangeName(SCTAB nTab, std::unique_ptr<ScRangeName> pNew);
671 void SetRangeName( std::unique_ptr<ScRangeName> pNewRangeName );
672 bool IsAddressInRangeName( RangeNameScope eScope, const ScAddress& rAddress);
681 ScRangeData* FindRangeNameBySheetAndIndex( SCTAB nTab, sal_uInt16 nIndex ) const;
727 SCTAB nTokenTab, const sal_uInt16 nTokenIndex,
728 SCTAB nGlobalRefTab, SCTAB nLocalRefTab, SCTAB nOldTokenTab, SCTAB nOldTokenTabReplacement,
729 bool bSameDoc, int nRecursion ) const;
771 bool CopyAdjustRangeName( SCTAB& rSheet, sal_uInt16& rIndex, ScRangeData*& rpRangeData, ScDocument& rNewDoc,
772 const ScAddress& rNewPos, const ScAddress& rOldPos, const bool bGlobalNamesToLocal,
773 const bool bUsedByFormula ) const;
778 SC_DLLPUBLIC void PreprocessAllRangeNamesUpdate( const std::map<OUString, ScRangeName>& rRangeMap );
796 bool InsertNewRangeName( const OUString& rName, const ScAddress& rPos, const OUString& rExpr );
809 bool InsertNewRangeName( SCTAB nTab, const OUString& rName, const ScAddress& rPos, const OUString& rExpr );
817 SCTAB GetMaxTableNumber() const { return static_cast<SCTAB>(maTabs.size()) - 1; }
828 void SetDBCollection( std::unique_ptr<ScDBCollection> pNewDBCollection,
829 bool bRemoveAutoFilter = false );
830 const ScDBData* GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab, ScDBDataPortion ePortion) const;
831 ScDBData* GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab, ScDBDataPortion ePortion);
832 SC_DLLPUBLIC const ScDBData* GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const;
833 SC_DLLPUBLIC ScDBData* GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2);
837 SC_DLLPUBLIC const ScRangeData* GetRangeAtBlock( const ScRange& rBlock, OUString& rName,
838 bool* pSheetLocal = nullptr ) const;
840 SC_DLLPUBLIC bool HasPivotTable() const;
843 SC_DLLPUBLIC ScDPObject* GetDPAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const;
845 {
846 return GetDPAtCursor(rAddress.Col(), rAddress.Row(), rAddress.Tab());
847 }
849 {
850 return GetDPAtCursor(rAddress) != nullptr;
851 }
852 ScDPObject* GetDPAtBlock( const ScRange& rBlock ) const;
856 void EnsureGraphicNames();
858 SdrObject* GetObjectAtPoint( SCTAB nTab, const Point& rPos );
859 bool HasChartAtPoint( SCTAB nTab, const Point& rPos, OUString& rName );
861 css::uno::Reference< css::chart2::XChartDocument > GetChartByName( std::u16string_view rChartName );
863 SC_DLLPUBLIC void GetChartRanges( std::u16string_view rChartName, std::vector< ScRangeList >& rRanges, const ScDocument& rSheetNameDoc );
864 void SetChartRanges( std::u16string_view rChartName, const std::vector< ScRangeList >& rRanges );
866 void UpdateChartArea( const OUString& rChartName, const ScRange& rNewArea,
867 bool bColHeaders, bool bRowHeaders, bool bAdd );
868 void UpdateChartArea( const OUString& rChartName,
869 const ScRangeListRef& rNewList,
870 bool bColHeaders, bool bRowHeaders, bool bAdd );
871 void GetOldChartParameters( std::u16string_view rName,
872 ScRangeList& rRanges, bool& rColHeaders, bool& rRowHeaders );
873 css::uno::Reference<
874 css::embed::XEmbeddedObject >
875 FindOleObjectByName( std::u16string_view rName );
877 SC_DLLPUBLIC void MakeTable( SCTAB nTab,bool _bNeedsNameCheck = true );
879 SCTAB GetVisibleTab() const { return nVisibleTab; }
881 SCCOL GetPosLeft() const { return nPosLeft; }
882 SC_DLLPUBLIC void SetPosLeft(SCCOL nCol) { nPosLeft = nCol; }
883 SCROW GetPosTop() const { return nPosTop; }
884 SC_DLLPUBLIC void SetPosTop(SCROW nRow) { nPosTop = nRow; }
886 SC_DLLPUBLIC bool HasTable( SCTAB nTab ) const;
887 SC_DLLPUBLIC bool GetHashCode( SCTAB nTab, sal_Int64& rHashCode) const;
888 SC_DLLPUBLIC bool GetName( SCTAB nTab, OUString& rName ) const;
889 SC_DLLPUBLIC bool GetCodeName( SCTAB nTab, OUString& rName ) const;
890 SC_DLLPUBLIC bool SetCodeName( SCTAB nTab, const OUString& rName );
891 SC_DLLPUBLIC bool GetTable( const OUString& rName, SCTAB& rTab ) const;
892 SC_DLLPUBLIC SCCOL MaxCol() const { return mxSheetLimits->mnMaxCol; }
893 SC_DLLPUBLIC SCROW MaxRow() const { return mxSheetLimits->mnMaxRow; }
894 SC_DLLPUBLIC SCCOL GetMaxColCount() const { return mxSheetLimits->GetMaxColCount(); }
895 SC_DLLPUBLIC SCROW GetMaxRowCount() const { return mxSheetLimits->GetMaxRowCount(); }
896 SC_DLLPUBLIC OUString MaxRowAsString() const { return mxSheetLimits->MaxRowAsString(); }
897 SC_DLLPUBLIC OUString MaxColAsString() const { return mxSheetLimits->MaxColAsString(); }
899 [[nodiscard]] bool ValidCol(SCCOL nCol) const { return ::ValidCol(nCol, mxSheetLimits->mnMaxCol); }
900 [[nodiscard]] bool ValidRow(SCROW nRow) const { return ::ValidRow(nRow, mxSheetLimits->mnMaxRow); }
901 [[nodiscard]] bool ValidColRow(SCCOL nCol, SCROW nRow) const { return ::ValidColRow(nCol, nRow, MaxCol(), MaxRow()); }
902 [[nodiscard]] bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab) const { return ::ValidColRowTab(nCol, nRow, nTab, MaxCol(), MaxRow()); }
903 [[nodiscard]] bool ValidRange(const ScRange& rRange) const { return ::ValidRange(rRange, MaxCol(), MaxRow()); }
904 [[nodiscard]] bool ValidAddress(const ScAddress& rAddress) const { return ::ValidAddress(rAddress, MaxCol(), MaxRow()); }
905 [[nodiscard]] SCCOL SanitizeCol( SCCOL nCol ) const { return ::SanitizeCol(nCol, MaxCol()); }
906 [[nodiscard]] SCROW SanitizeRow( SCROW nRow ) const { return ::SanitizeRow(nRow, MaxRow()); }
908 SC_DLLPUBLIC std::vector<OUString> GetAllTableNames() const;
910 OUString GetCopyTabName(SCTAB nTab) const;
912 SC_DLLPUBLIC void SetAnonymousDBData(SCTAB nTab, std::unique_ptr<ScDBData> pDBData);
919 SC_DLLPUBLIC void SetAnonymousDBData(std::unique_ptr<ScDBData> pDBData);
926 SC_DLLPUBLIC void SetDocProtection(const ScDocProtection* pProtect);
927 SC_DLLPUBLIC bool IsDocProtected() const;
928 bool IsDocEditable() const;
929 SC_DLLPUBLIC bool IsTabProtected( SCTAB nTab ) const;
931 SC_DLLPUBLIC void SetTabProtection(SCTAB nTab, const ScTableProtection* pProtect);
932 void CopyTabProtection(SCTAB nTabSrc, SCTAB nTabDest);
934 void LockTable(SCTAB nTab);
935 void UnlockTable(SCTAB nTab);
937 bool IsBlockEditable( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow,
938 SCCOL nEndCol, SCROW nEndRow,
939 bool* pOnlyNotBecauseOfMatrix = nullptr,
940 bool bNoMatrixAtAll = false ) const;
941 bool IsSelectionEditable( const ScMarkData& rMark,
942 bool* pOnlyNotBecauseOfMatrix = nullptr ) const;
943 bool HasSelectedBlockMatrixFragment( SCCOL nStartCol, SCROW nStartRow,
944 SCCOL nEndCol, SCROW nEndRow,
945 const ScMarkData& rMark ) const;
947 bool IsEditActionAllowed( sc::ColRowEditAction eAction, SCTAB nTab, SCCOLROW nStart, SCCOLROW nEnd ) const;
948 bool IsEditActionAllowed( sc::ColRowEditAction eAction, const ScMarkData& rMark, SCCOLROW nStart, SCCOLROW nEnd ) const;
950 SC_DLLPUBLIC bool GetMatrixFormulaRange( const ScAddress& rCellPos, ScRange& rMatrix );
952 bool IsEmbedded() const { return bIsEmbedded;}
953 void GetEmbedded( ScRange& rRange ) const;
954 void SetEmbedded( const ScRange& rRange );
955 void ResetEmbedded();
956 tools::Rectangle GetEmbeddedRect() const; // 1/100 mm
957 void SetEmbedded( SCTAB nTab, const tools::Rectangle& rRect ); // from VisArea (1/100 mm)
959 static SC_DLLPUBLIC bool ValidTabName( const OUString& rName );
961 SC_DLLPUBLIC bool ValidNewTabName( const OUString& rName ) const;
962 SC_DLLPUBLIC void CreateValidTabName(OUString& rName) const;
963 SC_DLLPUBLIC void CreateValidTabNames(std::vector<OUString>& aNames, SCTAB nCount) const;
965 void AppendTabOnLoad(const OUString& rName);
966 void SetTabNameOnLoad(SCTAB nTab, const OUString& rName);
969 SC_DLLPUBLIC bool InsertTab( SCTAB nPos, const OUString& rName,
970 bool bExternalDocument = false, bool bUndoDeleteTab = false );
972 SC_DLLPUBLIC bool InsertTabs( SCTAB nPos, const std::vector<OUString>& rNames,
973 bool bNamesValid = false );
974 SC_DLLPUBLIC bool DeleteTabs( SCTAB nTab, SCTAB nSheets );
975 SC_DLLPUBLIC bool DeleteTab( SCTAB nTab );
976 SC_DLLPUBLIC bool RenameTab( SCTAB nTab, const OUString& rName,
977 bool bExternalDocument = false );
978 bool MoveTab( SCTAB nOldPos, SCTAB nNewPos, ScProgress* pProgress = nullptr );
979 SC_DLLPUBLIC bool CopyTab( SCTAB nOldPos, SCTAB nNewPos,
980 const ScMarkData* pOnlyMarked = nullptr );
981 SC_DLLPUBLIC sal_uLong TransferTab(ScDocument& rSrcDoc, SCTAB nSrcPos, SCTAB nDestPos,
982 bool bInsertNew = true,
983 bool bResultsOnly = false );
984 SC_DLLPUBLIC void TransferDrawPage(const ScDocument& rSrcDoc, SCTAB nSrcPos, SCTAB nDestPos);
985 SC_DLLPUBLIC void SetVisible( SCTAB nTab, bool bVisible );
986 SC_DLLPUBLIC bool IsVisible( SCTAB nTab ) const;
987 bool IsStreamValid( SCTAB nTab ) const;
988 void SetStreamValid( SCTAB nTab, bool bSet, bool bIgnoreLock = false );
989 void LockStreamValid( bool bLock );
991 bool IsPendingRowHeights( SCTAB nTab ) const;
992 void SetPendingRowHeights( SCTAB nTab, bool bSet );
993 sal_uInt16 GetSheetOptimalMinRowHeight(SCTAB nTab) const;
994 SC_DLLPUBLIC void SetLayoutRTL( SCTAB nTab, bool bRTL, ScObjectHandling eObjectHandling = ScObjectHandling::RecalcPosMode);
995 SC_DLLPUBLIC bool IsLayoutRTL( SCTAB nTab ) const;
996 SC_DLLPUBLIC bool IsNegativePage( SCTAB nTab ) const;
997 SC_DLLPUBLIC void SetScenario( SCTAB nTab, bool bFlag );
998 SC_DLLPUBLIC bool IsScenario( SCTAB nTab ) const;
999 SC_DLLPUBLIC void GetScenarioData(SCTAB nTab, OUString& rComment,
1000 Color& rColor, ScScenarioFlags &rFlags) const;
1001 SC_DLLPUBLIC void SetScenarioData(SCTAB nTab, const OUString& rComment,
1002 const Color& rColor, ScScenarioFlags nFlags);
1003 SC_DLLPUBLIC Color GetTabBgColor( SCTAB nTab ) const;
1004 SC_DLLPUBLIC void SetTabBgColor( SCTAB nTab, const Color& rColor );
1005 SC_DLLPUBLIC bool IsDefaultTabBgColor( SCTAB nTab ) const;
1006 void GetScenarioFlags(SCTAB nTab, ScScenarioFlags &rFlags) const;
1007 SC_DLLPUBLIC bool IsActiveScenario( SCTAB nTab ) const;
1008 SC_DLLPUBLIC void SetActiveScenario( SCTAB nTab, bool bActive ); // only for Undo etc.
1013 bool IsLinked( SCTAB nTab ) const;
1014 SC_DLLPUBLIC OUString GetLinkDoc( SCTAB nTab ) const;
1015 OUString GetLinkFlt( SCTAB nTab ) const;
1016 OUString GetLinkOpt( SCTAB nTab ) const;
1017 SC_DLLPUBLIC OUString GetLinkTab( SCTAB nTab ) const;
1018 sal_uLong GetLinkRefreshDelay( SCTAB nTab ) const;
1019 void SetLink( SCTAB nTab, ScLinkMode nMode, const OUString& rDoc,
1020 const OUString& rFilter, const OUString& rOptions,
1021 const OUString& rTabName, sal_uLong nRefreshDelay );
1022 bool HasLink( std::u16string_view rDoc,
1023 std::u16string_view rFilter, std::u16string_view rOptions ) const;
1024 SC_DLLPUBLIC bool LinkExternalTab( SCTAB& nTab, const OUString& aDocTab,
1025 const OUString& aFileName,
1026 const OUString& aTabName );
1028 bool HasExternalRefManager() const { return bool(pExternalRefMgr); }
1030 bool IsInExternalReferenceMarking() const;
1032 bool MarkUsedExternalReferences( const ScTokenArray& rArr, const ScAddress& rPos );
1038 bool HasAreaLinks() const;
1040 void UpdateAreaLinks();
1042 // originating DDE links
1045 bool IsInDdeLinkUpdate() const { return nInDdeLinkUpdate != 0; }
1047 SC_DLLPUBLIC void CopyDdeLinks( ScDocument& rDestDoc ) const;
1052 SC_DLLPUBLIC bool FindDdeLink( std::u16string_view rAppl, std::u16string_view rTopic,
1053 std::u16string_view rItem, sal_uInt8 nMode, size_t& rnDdePos );
1061 bool GetDdeLinkData( size_t nDdePos, OUString& rAppl, OUString& rTopic, OUString& rItem ) const;
1066 bool GetDdeLinkMode( size_t nDdePos, sal_uInt8& rnMode ) const;
1070 SC_DLLPUBLIC const ScMatrix* GetDdeLinkResultMatrix( size_t nDdePos ) const;
1075 SC_DLLPUBLIC bool CreateDdeLink( const OUString& rAppl, const OUString& rTopic, const OUString& rItem, sal_uInt8 nMode, const ScMatrixRef& pResults );
1080 bool SetDdeLinkResultMatrix( size_t nDdePos, const ScMatrixRef& pResults );
1085 SC_DLLPUBLIC const ScDrawLayer* GetDrawLayer() const { return mpDrawLayer.get(); }
1086 SfxBroadcaster* GetDrawBroadcaster(); // to avoid header
1087 void BeginDrawUndo();
1089 void BeginUnoRefUndo();
1090 bool HasUnoRefUndo() const { return ( pUnoRefUndoList != nullptr ); }
1091 [[nodiscard]]
1092 std::unique_ptr<ScUnoRefList> EndUnoRefUndo(); // must be deleted by caller!
1093 sal_Int64 GetNewUnoId() { return ++nUnoObjectId; }
1094 void AddUnoRefChange( sal_Int64 nId, const ScRangeList& rOldRanges );
1096 static bool IsChart( const SdrObject* pObject );
1098 void UpdateChartRef( UpdateRefMode eUpdateRefMode,
1099 SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
1100 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
1101 SCCOL nDx, SCROW nDy, SCTAB nDz );
1103 void SetChartRangeList( std::u16string_view rChartName,
1104 const ScRangeListRef& rNewRangeListRef );
1106 void StartAnimations( SCTAB nTab );
1108 bool HasBackgroundDraw( SCTAB nTab, const tools::Rectangle& rMMRect ) const;
1109 bool HasAnyDraw( SCTAB nTab, const tools::Rectangle& rMMRect ) const;
1111 const ScSheetEvents* GetSheetEvents( SCTAB nTab ) const;
1112 void SetSheetEvents( SCTAB nTab, std::unique_ptr<ScSheetEvents> pNew );
1113 bool HasSheetEventScript( SCTAB nTab, ScSheetEventId nEvent, bool bWithVbaEvents = false ) const;
1114 bool HasAnySheetEventScript( ScSheetEventId nEvent, bool bWithVbaEvents = false ) const; // on any sheet
1116 bool HasAnyCalcNotification() const;
1117 bool HasCalcNotification( SCTAB nTab ) const;
1118 void SetCalcNotification( SCTAB nTab );
1121 SC_DLLPUBLIC ScOutlineTable* GetOutlineTable( SCTAB nTab, bool bCreate = false );
1122 bool SetOutlineTable( SCTAB nTab, const ScOutlineTable* pNewOutline );
1124 void DoAutoOutline( SCCOL nStartCol, SCROW nStartRow,
1125 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
1127 bool DoSubTotals( SCTAB nTab, ScSubTotalParam& rParam );
1128 void RemoveSubTotals( SCTAB nTab, ScSubTotalParam& rParam );
1129 bool TestRemoveSubTotals( SCTAB nTab, const ScSubTotalParam& rParam );
1130 bool HasSubTotalCells( const ScRange& rRange );
1132 SC_DLLPUBLIC void EnsureTable( SCTAB nTab );
1134 // return TRUE = number format is set
1135 SC_DLLPUBLIC bool SetString( SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString& rString,
1136 const ScSetStringParam * pParam = nullptr );
1137 SC_DLLPUBLIC bool SetString( const ScAddress& rPos, const OUString& rString,
1138 const ScSetStringParam* pParam = nullptr );
1149 SC_DLLPUBLIC bool SetEditText( const ScAddress& rPos, std::unique_ptr<EditTextObject> pEditText );
1150 void SetEditText( const ScAddress& rPos, const EditTextObject& rEditText, const SfxItemPool* pEditPool );
1151 SC_DLLPUBLIC void SetEditText( const ScAddress& rPos, const OUString& rStr );
1152 SC_DLLPUBLIC SCROW GetFirstEditTextRow( const ScRange& rRange ) const;
1158 SC_DLLPUBLIC void SetTextCell( const ScAddress& rPos, const OUString& rStr );
1159 void SetEmptyCell( const ScAddress& rPos );
1160 SC_DLLPUBLIC void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
1161 SC_DLLPUBLIC void SetValue( const ScAddress& rPos, double fVal );
1162 void SetValues( const ScAddress& rPos, const std::vector<double>& rVals );
1163 void SetError( SCCOL nCol, SCROW nRow, SCTAB nTab, const FormulaError nError);
1164 SC_DLLPUBLIC void SetFormula( const ScAddress& rPos, const ScTokenArray& rArray );
1165 SC_DLLPUBLIC void SetFormula( const ScAddress& rPos, const OUString& rFormula,
1177 bool SetFormulaCells( const ScAddress& rPos, std::vector<ScFormulaCell*>& rCells );
1182 bool HasFormulaCell( const ScRange& rRange ) const;
1183 SC_DLLPUBLIC void InsertMatrixFormula(SCCOL nCol1, SCROW nRow1,
1184 SCCOL nCol2, SCROW nRow2,
1185 const ScMarkData& rMark,
1186 const OUString& rFormula,
1187 const ScTokenArray* p = nullptr,
1189 SC_DLLPUBLIC void InsertTableOp(const ScTabOpParam& rParam, // multi-operation
1190 SCCOL nCol1, SCROW nRow1,
1191 SCCOL nCol2, SCROW nRow2, const ScMarkData& rMark);
1193 SC_DLLPUBLIC OUString GetString( SCCOL nCol, SCROW nRow, SCTAB nTab,
1194 const ScInterpreterContext* pContext = nullptr ) const;
1195 SC_DLLPUBLIC OUString GetString( const ScAddress& rPos,
1196 const ScInterpreterContext* pContext = nullptr ) const;
1206 SC_DLLPUBLIC double* GetValueCell( const ScAddress& rPos );
1211 svl::SharedString GetSharedString( const ScAddress& rPos ) const;
1213 std::shared_ptr<sc::FormulaGroupContext>& GetFormulaGroupContext();
1218 // Note that if pShared is set and a value is returned that way, the returned OUString is empty.
1219 SC_DLLPUBLIC OUString GetInputString( SCCOL nCol, SCROW nRow, SCTAB nTab, bool bForceSystemLocale = false ) const;
1220 FormulaError GetStringForFormula( const ScAddress& rPos, OUString& rString );
1221 SC_DLLPUBLIC double GetValue( const ScAddress& rPos ) const;
1222 SC_DLLPUBLIC double GetValue( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1223 SC_DLLPUBLIC const EditTextObject* GetEditText( const ScAddress& rPos ) const;
1224 void RemoveEditTextCharAttribs( const ScAddress& rPos, const ScPatternAttr& rAttr );
1225 SC_DLLPUBLIC double RoundValueAsShown( double fVal, sal_uInt32 nFormat, const ScInterpreterContext* pContext = nullptr ) const;
1226 SC_DLLPUBLIC sal_uInt32 GetNumberFormat( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1227 sal_uInt32 GetNumberFormat( const ScRange& rRange ) const;
1228 SC_DLLPUBLIC sal_uInt32 GetNumberFormat( const ScInterpreterContext& rContext, const ScAddress& ) const;
1229 SC_DLLPUBLIC void SetNumberFormat( const ScAddress& rPos, sal_uInt32 nNumberFormat );
1231 void GetNumberFormatInfo( const ScInterpreterContext& rContext, SvNumFormatType& nType, sal_uInt32& nIndex, const ScAddress& rPos ) const;
1232 SC_DLLPUBLIC const ScFormulaCell* GetFormulaCell( const ScAddress& rPos ) const;
1234 SC_DLLPUBLIC OUString GetFormula( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1235 SC_DLLPUBLIC CellType GetCellType( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1236 SC_DLLPUBLIC CellType GetCellType( const ScAddress& rPos ) const;
1238 SC_DLLPUBLIC bool HasData( SCCOL nCol, SCROW nRow, SCTAB nTab );
1239 SC_DLLPUBLIC bool HasStringData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1240 SC_DLLPUBLIC bool HasValueData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1241 SC_DLLPUBLIC bool HasValueData( const ScAddress& rPos ) const;
1242 bool HasStringCells( const ScRange& rRange ) const;
1245 bool HasSelectionData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1246 bool HasValidationData( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1256 // Spaklines
1258 SC_DLLPUBLIC std::shared_ptr<sc::Sparkline> GetSparkline(ScAddress const & rPosition);
1259 SC_DLLPUBLIC bool HasSparkline(ScAddress const & rPosition);
1260 SC_DLLPUBLIC sc::Sparkline* CreateSparkline(ScAddress const & rPosition, std::shared_ptr<sc::SparklineGroup> const& pSparklineGroup);
1262 SC_DLLPUBLIC bool DeleteSparkline(ScAddress const& rPosition);
1268 SC_DLLPUBLIC bool GetSparklineGroupInRange(ScRange const& rRange, std::shared_ptr<sc::SparklineGroup>& rGroup);
1269 SC_DLLPUBLIC bool HasOneSparklineGroup(ScRange const& rRange);
1270 SC_DLLPUBLIC std::shared_ptr<sc::SparklineGroup> SearchSparklineGroup(tools::Guid const& rGuid);
1272 // Notes
1273 SC_DLLPUBLIC ScPostIt* GetNote(const ScAddress& rPos);
1274 SC_DLLPUBLIC ScPostIt* GetNote(SCCOL nCol, SCROW nRow, SCTAB nTab);
1275 void SetNote(const ScAddress& rPos, std::unique_ptr<ScPostIt> pNote);
1276 void SetNote(SCCOL nCol, SCROW nRow, SCTAB nTab, std::unique_ptr<ScPostIt> pNote);
1277 SC_DLLPUBLIC bool HasNote(const ScAddress& rPos) const;
1278 bool HasNote(SCCOL nCol, SCROW nRow, SCTAB nTab) const;
1279 bool HasNote(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow) const;
1280 SC_DLLPUBLIC bool HasColNotes(SCCOL nCol, SCTAB nTab) const;
1281 SC_DLLPUBLIC bool HasTabNotes(SCTAB nTab) const;
1282 bool HasNotes() const;
1283 SC_DLLPUBLIC std::unique_ptr<ScPostIt> ReleaseNote(const ScAddress& rPos);
1286 size_t GetNoteCount( SCTAB nTab, SCCOL nCol ) const;
1292 void CreateAllNoteCaptions();
1293 void ForgetNoteCaptions( const ScRangeList& rRanges, bool bPreserveData );
1296 ScAddress GetNotePosition( size_t nIndex ) const;
1297 ScAddress GetNotePosition( size_t nIndex, SCTAB nTab ) const;
1298 SCROW GetNotePosition( SCTAB nTab, SCCOL nCol, size_t nIndex ) const;
1300 SC_DLLPUBLIC void GetAllNoteEntries( std::vector<sc::NoteEntry>& rNotes ) const;
1301 SC_DLLPUBLIC void GetAllNoteEntries( SCTAB nTab, std::vector<sc::NoteEntry>& rNotes ) const;
1302 void GetNotesInRange( const ScRangeList& rRange, std::vector<sc::NoteEntry>& rNotes ) const;
1304 bool ContainsNotesInRange( const ScRangeList& rRange ) const;
1308 bool IsMerged( const ScAddress& rPos ) const;
1310 void ExtendMergeSel( SCCOL nStartCol, SCROW nStartRow,
1311 SCCOL& rEndCol, SCROW& rEndRow, const ScMarkData& rMark,
1312 bool bRefresh = false );
1313 SC_DLLPUBLIC bool ExtendMerge( SCCOL nStartCol, SCROW nStartRow,
1314 SCCOL& rEndCol, SCROW& rEndRow, SCTAB nTab,
1315 bool bRefresh = false );
1316 bool ExtendMerge( ScRange& rRange, bool bRefresh = false );
1317 SC_DLLPUBLIC void ExtendTotalMerge( ScRange& rRange ) const;
1318 SC_DLLPUBLIC void ExtendOverlapped( SCCOL& rStartCol, SCROW& rStartRow,
1319 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab ) const;
1320 SC_DLLPUBLIC void ExtendOverlapped( ScRange& rRange ) const;
1322 bool RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
1323 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
1325 SC_DLLPUBLIC void DoMergeContents( SCCOL nStartCol, SCROW nStartRow,
1326 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
1327 SC_DLLPUBLIC void DoEmptyBlock( SCCOL nStartCol, SCROW nStartRow,
1328 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab );
1329 // without checking:
1330 SC_DLLPUBLIC void DoMerge( SCCOL nStartCol, SCROW nStartRow,
1331 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bDeleteCaptions = true );
1332 void RemoveMerge( SCCOL nCol, SCROW nRow, SCTAB nTab );
1334 // This also includes e.g. notes. Use IsEmptyData() for cell data only.
1335 bool IsBlockEmpty( SCCOL nStartCol, SCROW nStartRow,
1336 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab ) const;
1337 bool IsPrintEmpty( SCCOL nStartCol, SCROW nStartRow,
1338 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
1339 bool bLeftIsEmpty = false,
1340 ScRange* pLastRange = nullptr,
1341 tools::Rectangle* pLastMM = nullptr ) const;
1343 void SkipOverlapped( SCCOL& rCol, SCROW& rRow, SCTAB nTab ) const;
1344 bool IsHorOverlapped( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1345 bool IsVerOverlapped( SCCOL nCol, SCROW nRow, SCTAB nTab,
1346 SCROW* nStartRow = nullptr, SCROW* nEndRow = nullptr ) const;
1348 SC_DLLPUBLIC bool HasAttrib( SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
1349 SCCOL nCol2, SCROW nRow2, SCTAB nTab2, HasAttrFlags nMask ) const;
1350 SC_DLLPUBLIC bool HasAttrib( const ScRange& rRange, HasAttrFlags nMask ) const;
1351 bool HasAttrib( SCCOL nCol, SCROW nRow, SCTAB nTab, HasAttrFlags nMask,
1352 SCROW* nStartRow = nullptr, SCROW* nEndRow = nullptr ) const;
1354 SC_DLLPUBLIC void GetBorderLines( SCCOL nCol, SCROW nRow, SCTAB nTab,
1355 const ::editeng::SvxBorderLine** ppLeft,
1356 const ::editeng::SvxBorderLine** ppTop,
1357 const ::editeng::SvxBorderLine** ppRight,
1358 const ::editeng::SvxBorderLine** ppBottom ) const;
1360 void ResetChanged( const ScRange& rRange );
1364 void SetDirty( const ScRange&, bool bIncludeEmptyCells );
1365 void SetTableOpDirty( const ScRange& ); // for Interpreter TableOp
1366 void InterpretDirtyCells( const ScRangeList& rRanges );
1367 // Interprets cells that have NeedsInterpret(), i.e. the same like calling MaybeInterpret() on them.
1368 // Returns false if some couldn't be interpreted (i.e. they still have NeedsInterpret()).
1369 // Useful to ensure that the given cells will not need interpreting.
1370 bool InterpretCellsIfNeeded( const ScRangeList& rRanges );
1371 SC_DLLPUBLIC void CalcAll();
1372 SC_DLLPUBLIC void CalcAfterLoad( bool bStartListening = true );
1373 void CompileAll();
1374 void CompileXML();
1386 bool CompileErrorCells(FormulaError nErrCode);
1389 void SetPreviewFont( std::unique_ptr<SfxItemSet> pFontSet );
1391 SfxItemSet* GetPreviewFont( SCCOL nCol, SCROW nRow, SCTAB nTab );
1393 void SetPreviewSelection( const ScMarkData& rSel );
1395 ScStyleSheet* GetPreviewCellStyle( SCCOL nCol, SCROW nRow, SCTAB nTab );
1397 SC_DLLPUBLIC void SetAutoNameCache( std::unique_ptr<ScAutoNameCache> pCache );
1401 ScLookupCache & GetLookupCache( const ScRange & rRange, ScInterpreterContext* pContext );
1402 ScSortedRangeCache & GetSortedRangeCache( const ScRange & rRange, const ScQueryParam& param,
1403 ScInterpreterContext* pContext );
1406 void RemoveLookupCache( ScLookupCache & rCache );
1409 void ClearLookupCaches();
1411 // calculate automatically
1412 SC_DLLPUBLIC void SetAutoCalc( bool bNewAutoCalc );
1413 SC_DLLPUBLIC bool GetAutoCalc() const { return bAutoCalc; }
1414 // calculate automatically in/from/for ScDocShell disabled
1417 // ForcedFormulas are to be calculated
1420 // if CalcFormulaTree() is currently running
1424 void DelayFormulaGrouping( bool delay );
1427 void AddDelayedFormulaGroupingCell( const ScFormulaCell* cell );
1431 void EnableDelayStartListeningFormulaCells( ScColumn* column, bool delay );
1435 bool CanDelayStartListeningFormulaCells( ScColumn* column, SCROW row1, SCROW row2 );
1438 void EnableDelayDeletingBroadcasters(bool set);
1441 FormulaError GetErrCode( const ScAddress& ) const;
1455 bool ShrinkToDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow, SCCOL& rEndCol, SCROW& rEndRow ) const;
1476 bool ShrinkToUsedDataArea( bool& o_bShrunk,
1477 SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
1478 SCCOL& rEndCol, SCROW& rEndRow, bool bColumnsOnly,
1479 bool bStickyTopRow = false, bool bStickyLeftCol = false,
1480 ScDataAreaExtras* pDataAreaExtras = nullptr ) const;
1492 SC_DLLPUBLIC SCROW GetLastDataRow( SCTAB nTab, SCCOL nCol1, SCCOL nCol2, SCROW nLastRow ) const;
1507 SC_DLLPUBLIC void GetDataArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
1508 SCCOL& rEndCol, SCROW& rEndRow,
1509 bool bIncludeOld, bool bOnlyDown ) const;
1518 bool GetDataAreaSubrange(ScRange& rRange) const;
1520 SC_DLLPUBLIC bool GetCellArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow ) const;
1521 SC_DLLPUBLIC bool GetTableArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
1522 bool bCalcHiddens = false) const;
1523 SC_DLLPUBLIC bool GetPrintArea( SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow,
1524 bool bNotes = true) const;
1525 SC_DLLPUBLIC bool GetPrintAreaHor( SCTAB nTab, SCROW nStartRow, SCROW nEndRow,
1526 SCCOL& rEndCol ) const;
1527 SC_DLLPUBLIC bool GetPrintAreaVer( SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol,
1528 SCROW& rEndRow, bool bNotes ) const;
1529 void InvalidateTableArea();
1532 SC_DLLPUBLIC void GetTiledRenderingArea(SCTAB nTab, SCCOL& rEndCol, SCROW& rEndRow) const;
1534 SC_DLLPUBLIC bool GetDataStart( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow ) const;
1541 void ExtendPrintArea( OutputDevice* pDev, SCTAB nTab,
1542 SCCOL nStartCol, SCROW nStartRow,
1543 SCCOL& rEndCol, SCROW nEndRow ) const;
1544 SC_DLLPUBLIC bool IsEmptyData(SCCOL nStartCol, SCROW nStartRow,
1545 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab) const;
1546 // I think this returns the number of empty cells starting from the given direction.
1547 SC_DLLPUBLIC SCSIZE GetEmptyLinesInBlock( SCCOL nStartCol, SCROW nStartRow, SCTAB nStartTab,
1548 SCCOL nEndCol, SCROW nEndRow, SCTAB nEndTab,
1549 ScDirection eDir );
1551 void FindAreaPos( SCCOL& rCol, SCROW& rRow, SCTAB nTab, ScMoveDirection eDirection ) const;
1552 SC_DLLPUBLIC void GetNextPos( SCCOL& rCol, SCROW& rRow, SCTAB nTab, SCCOL nMovX, SCROW nMovY,
1553 bool bMarked, bool bUnprotected, const ScMarkData& rMark,
1554 SCCOL nTabStartCol = SC_TABSTART_NONE ) const;
1556 bool GetNextMarkedCell( SCCOL& rCol, SCROW& rRow, SCTAB nTab,
1557 const ScMarkData& rMark );
1559 void LimitChartArea( SCTAB nTab, SCCOL& rStartCol, SCROW& rStartRow,
1560 SCCOL& rEndCol, SCROW& rEndRow );
1561 void LimitChartIfAll( ScRangeListRef& rRangeList );
1563 bool InsertRow( SCCOL nStartCol, SCTAB nStartTab,
1564 SCCOL nEndCol, SCTAB nEndTab,
1565 SCROW nStartRow, SCSIZE nSize, ScDocument* pRefUndoDoc = nullptr,
1566 const ScMarkData* pTabMark = nullptr );
1567 SC_DLLPUBLIC bool InsertRow( const ScRange& rRange );
1568 void DeleteRow( SCCOL nStartCol, SCTAB nStartTab,
1569 SCCOL nEndCol, SCTAB nEndTab,
1570 SCROW nStartRow, SCSIZE nSize,
1571 ScDocument* pRefUndoDoc = nullptr, bool* pUndoOutline = nullptr,
1572 const ScMarkData* pTabMark = nullptr );
1573 SC_DLLPUBLIC void DeleteRow( const ScRange& rRange );
1574 bool InsertCol( SCROW nStartRow, SCTAB nStartTab,
1575 SCROW nEndRow, SCTAB nEndTab,
1576 SCCOL nStartCol, SCSIZE nSize, ScDocument* pRefUndoDoc = nullptr,
1577 const ScMarkData* pTabMark = nullptr );
1578 SC_DLLPUBLIC bool InsertCol( const ScRange& rRange );
1579 void DeleteCol( SCROW nStartRow, SCTAB nStartTab,
1580 SCROW nEndRow, SCTAB nEndTab,
1581 SCCOL nStartCol, SCSIZE nSize,
1582 ScDocument* pRefUndoDoc = nullptr, bool* pUndoOutline = nullptr,
1583 const ScMarkData* pTabMark = nullptr );
1584 void DeleteCol( const ScRange& rRange );
1586 bool CanInsertRow( const ScRange& rRange ) const;
1587 bool CanInsertCol( const ScRange& rRange ) const;
1589 void FitBlock( const ScRange& rOld, const ScRange& rNew, bool bClear = true );
1590 bool CanFitBlock( const ScRange& rOld, const ScRange& rNew );
1592 bool IsClipOrUndo() const { return bIsClip || bIsUndo; }
1593 bool IsUndo() const { return bIsUndo; }
1594 bool IsClipboard() const { return bIsClip; }
1595 bool IsUndoEnabled() const { return mbUndoEnabled; }
1596 SC_DLLPUBLIC void EnableUndo( bool bVal );
1597 bool IsFunctionAccess() const { return bIsFunctionAccess; }
1599 bool IsAdjustHeightLocked() const { return nAdjustHeightLock != 0; }
1603 void EnableExecuteLink( bool bVal ) { mbExecuteLinkEnabled = bVal; }
1605 void EnableChangeReadOnly( bool bVal ) { mbChangeReadOnlyEnabled = bVal; }
1607 SC_DLLPUBLIC void EnableUserInteraction( bool bVal );
1610 SC_DLLPUBLIC void ResetClip( ScDocument* pSourceDoc, const ScMarkData* pMarks );
1611 SC_DLLPUBLIC void ResetClip( ScDocument* pSourceDoc, SCTAB nTab );
1612 void SetCutMode( bool bCut );
1613 bool IsCutMode();
1614 void SetClipArea( const ScRange& rArea, bool bCut = false );
1616 SC_DLLPUBLIC bool IsDocVisible() const { return bIsVisible; }
1617 SC_DLLPUBLIC void SetDocVisible( bool bSet );
1619 bool HasOLEObjectsInArea( const ScRange& rRange, const ScMarkData* pTabMark = nullptr );
1621 void DeleteObjectsInArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1622 const ScMarkData& rMark, bool bAnchored = false );
1623 void DeleteObjectsInSelection( const ScMarkData& rMark );
1625 SC_DLLPUBLIC void DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData& rMark,
1626 InsertDeleteFlags nDelFlag, bool bBroadcast = true,
1627 sc::ColumnSpanSet* pBroadcastSpans = nullptr );
1629 SC_DLLPUBLIC void DeleteAreaTab(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1630 SCTAB nTab, InsertDeleteFlags nDelFlag);
1631 void DeleteAreaTab(const ScRange& rRange, InsertDeleteFlags nDelFlag);
1633 SC_DLLPUBLIC void CopyToClip( const ScClipParam& rClipParam, ScDocument* pClipDoc,
1634 const ScMarkData* pMarks, bool bKeepScenarioFlags,
1635 bool bIncludeObjects );
1646 SC_DLLPUBLIC void CopyStaticToDocument(const ScRange& rSrcRange, SCTAB nDestTab, ScDocument& rDestDoc);
1655 void CopyCellToDocument( const ScAddress& rSrcPos, const ScAddress& rDestPos, ScDocument& rDestDoc );
1657 void CopyTabToClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1658 SCTAB nTab, ScDocument* pClipDoc);
1663 sc::ColumnSpanSet& rBroadcastSpans );
1666 SCCOL nCol2, SCROW nRow2 );
1667 void CopyBlockFromClip( sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1,
1668 SCCOL nCol2, SCROW nRow2, const ScMarkData& rMark,
1669 SCCOL nDx, SCROW nDy );
1674 SCCOL nCol2, SCROW nRow2, const ScMarkData& rMark, SCCOL nDx,
1675 SCROW& rClipStartRow, SCROW nClipEndRow);
1679 SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
1680 void StartListeningFromClip( SCCOL nCol1, SCROW nRow1,
1681 SCCOL nCol2, SCROW nRow2,
1682 const ScMarkData& rMark, InsertDeleteFlags nInsFlag );
1684 void SetDirtyFromClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1685 const ScMarkData& rMark, InsertDeleteFlags nInsFlag,
1686 sc::ColumnSpanSet& rBroadcastSpans );
1700 const ScRange& rDestRange, const ScMarkData& rMark, InsertDeleteFlags nInsFlag,
1701 ScDocument* pRefUndoDoc, ScDocument* pClipDoc,
1702 bool bResetCut = true, bool bAsLink = false,
1703 bool bIncludeFiltered = true, bool bSkipEmptyCells = false,
1704 const ScRangeList* pDestRanges = nullptr );
1706 void CopyMultiRangeFromClip(const ScAddress& rDestPos, const ScMarkData& rMark,
1707 InsertDeleteFlags nInsFlag, ScDocument* pClipDoc,
1708 bool bResetCut = true, bool bAsLink = false,
1709 bool bIncludeFiltered = true,
1710 bool bSkipAttrForEmpty = false);
1712 void GetClipArea(SCCOL& nClipX, SCROW& nClipY, bool bIncludeFiltered);
1713 void GetClipStart(SCCOL& nClipX, SCROW& nClipY);
1715 bool HasClipFilteredRows();
1717 bool IsClipboardSource() const;
1719 SC_DLLPUBLIC void TransposeClip(ScDocument* pTransClip, InsertDeleteFlags nFlags, bool bAsLink,
1720 bool bIncludeFiltered);
1723 void SetClipParam(const ScClipParam& rParam);
1732 void MixDocument( const ScRange& rRange, ScPasteFunc nFunction, bool bSkipEmpty,
1733 ScDocument& rSrcDoc );
1735 void FillTab( const ScRange& rSrcArea, const ScMarkData& rMark,
1736 InsertDeleteFlags nFlags, ScPasteFunc nFunction,
1737 bool bSkipEmpty, bool bAsLink );
1738 void FillTabMarked( SCTAB nSrcTab, const ScMarkData& rMark,
1739 InsertDeleteFlags nFlags, ScPasteFunc nFunction,
1740 bool bSkipEmpty, bool bAsLink );
1742 void TransliterateText( const ScMarkData& rMultiMark, TransliterationFlags nType );
1744 SC_DLLPUBLIC void InitUndo( const ScDocument& rSrcDoc, SCTAB nTab1, SCTAB nTab2,
1745 bool bColInfo = false, bool bRowInfo = false );
1746 void AddUndoTab( SCTAB nTab1, SCTAB nTab2,
1747 bool bColInfo = false, bool bRowInfo = false );
1748 SC_DLLPUBLIC void InitUndoSelected( const ScDocument& rSrcDoc, const ScMarkData& rTabSelection,
1749 bool bColInfo = false, bool bRowInfo = false );
1751 // don't use anymore:
1752 void CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
1753 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
1754 InsertDeleteFlags nFlags, bool bMarked, ScDocument& rDestDoc,
1755 const ScMarkData* pMarks = nullptr, bool bColRowFlags = true);
1756 void UndoToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
1757 SCCOL nCol2, SCROW nRow2, SCTAB nTab2,
1758 InsertDeleteFlags nFlags, bool bMarked, ScDocument& rDestDoc);
1760 SC_DLLPUBLIC void CopyToDocument(const ScRange& rRange,
1761 InsertDeleteFlags nFlags, bool bMarked, ScDocument& rDestDoc,
1762 const ScMarkData* pMarks = nullptr, bool bColRowFlags = true);
1763 void UndoToDocument(const ScRange& rRange,
1764 InsertDeleteFlags nFlags, bool bMarked, ScDocument& rDestDoc);
1766 void CopyScenario( SCTAB nSrcTab, SCTAB nDestTab, bool bNewScenario = false );
1767 bool TestCopyScenario( SCTAB nSrcTab, SCTAB nDestTab ) const;
1768 void MarkScenario(SCTAB nSrcTab, SCTAB nDestTab,
1769 ScMarkData& rDestMark, bool bResetMark = true,
1770 ScScenarioFlags nNeededBits = ScScenarioFlags::NONE) const;
1771 bool HasScenarioRange( SCTAB nTab, const ScRange& rRange ) const;
1772 SC_DLLPUBLIC const ScRangeList* GetScenarioRanges( SCTAB nTab ) const;
1774 SC_DLLPUBLIC void CopyUpdated( ScDocument* pPosDoc, ScDocument* pDestDoc );
1777 pUndoDoc = nullptr, bool bIncludeDraw = true,
1778 bool bUpdateNoteCaptionPos = true );
1783 SC_DLLPUBLIC void UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDoc,
1784 const ScMarkData& rMark, ScDocument* pUndoDoc );
1786 void UpdateGrow( const ScRange& rArea, SCCOL nGrowX, SCROW nGrowY );
1788 SC_DLLPUBLIC void Fill( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
1789 ScProgress* pProgress, const ScMarkData& rMark,
1790 sal_uInt64 nFillCount, FillDir eFillDir = FILL_TO_BOTTOM,
1791 FillCmd eFillCmd = FILL_LINEAR, FillDateCmd eFillDateCmd = FILL_DAY,
1792 double nStepValue = 1.0, double nMaxValue = 1E307 );
1793 OUString GetAutoFillPreview( const ScRange& rSource, SCCOL nEndX, SCROW nEndY );
1796 const ScAddress& rCursor, const ScMarkData& rMark,
1797 double& rResult );
1799 SC_DLLPUBLIC const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich ) const;
1800 template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedWhichId<T> nWhich ) const
1801 {
1802 return static_cast<const T*>(GetAttr(nCol, nRow, nTab, sal_uInt16(nWhich)));
1803 }
1804 SC_DLLPUBLIC const SfxPoolItem* GetAttr( SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich,
1805 SCROW& nStartRow, SCROW& nEndRow ) const;
1806 template<class T> const T* GetAttr( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedWhichId<T> nWhich,
1807 SCROW& nStartRow, SCROW& nEndRow ) const
1808 {
1809 return static_cast<const T*>(GetAttr(nCol, nRow, nTab, sal_uInt16(nWhich), nStartRow, nEndRow));
1810 }
1811 SC_DLLPUBLIC const SfxPoolItem* GetAttr( const ScAddress& rPos, sal_uInt16 nWhich ) const;
1812 template<class T> const T* GetAttr( const ScAddress& rPos, TypedWhichId<T> nWhich ) const
1813 {
1814 return static_cast<const T*>(GetAttr(rPos, sal_uInt16(nWhich)));
1815 }
1816 SC_DLLPUBLIC const ScPatternAttr* GetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1817 SC_DLLPUBLIC const ScPatternAttr* GetPattern( const ScAddress& rPos ) const;
1818 SC_DLLPUBLIC const ScPatternAttr* GetMostUsedPattern( SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab ) const;
1819 const ScPatternAttr* GetSelectionPattern( const ScMarkData& rMark );
1820 std::unique_ptr<ScPatternAttr> CreateSelectionPattern( const ScMarkData& rMark, bool bDeep = true );
1821 SC_DLLPUBLIC void AddCondFormatData( const ScRangeList& rRange, SCTAB nTab, sal_uInt32 nIndex );
1822 void RemoveCondFormatData( const ScRangeList& rRange, SCTAB nTab, sal_uInt32 nIndex );
1825 // pCell is an optimization, must point to rPos
1826 SC_DLLPUBLIC const SfxItemSet* GetCondResult( SCCOL nCol, SCROW nRow, SCTAB nTab,
1827 ScRefCellValue* pCell = nullptr ) const;
1828 const SfxItemSet* GetCondResult( ScRefCellValue& rCell, const ScAddress& rPos,
1829 const ScConditionalFormatList& rList,
1830 const ScCondFormatIndexes& rIndex ) const;
1831 const SfxPoolItem* GetEffItem( SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich ) const;
1832 template<class T> const T* GetEffItem( SCCOL nCol, SCROW nRow, SCTAB nTab, TypedWhichId<T> nWhich ) const
1833 {
1834 return static_cast<const T*>(GetEffItem(nCol, nRow, nTab, sal_uInt16(nWhich)));
1835 }
1837 SC_DLLPUBLIC const css::uno::Reference< css::i18n::XBreakIterator >& GetBreakIterator();
1838 bool HasStringWeakCharacters( const OUString& rString );
1839 SC_DLLPUBLIC SvtScriptType GetStringScriptType( const OUString& rString );
1840 // pCell is an optimization, must point to rPos
1841 SC_DLLPUBLIC SvtScriptType GetCellScriptType( const ScAddress& rPos, sal_uInt32 nNumberFormat,
1842 const ScRefCellValue* pCell = nullptr );
1843 // pCell is an optimization, must point to nCol,nRow,nTab
1845 const ScRefCellValue* pCell = nullptr );
1846 SvtScriptType GetRangeScriptType( sc::ColumnBlockPosition& rBlockPos, const ScAddress& rPos, SCROW nLength );
1849 bool HasDetectiveOperations() const;
1850 void AddDetectiveOperation( const ScDetOpData& rData );
1852 ScDetOpList* GetDetOpList() const { return pDetOpList.get(); }
1853 void SetDetOpList(std::unique_ptr<ScDetOpList> pNew);
1855 bool HasDetectiveObjects(SCTAB nTab) const;
1857 void GetSelectionFrame( const ScMarkData& rMark,
1858 SvxBoxItem& rLineOuter,
1859 SvxBoxInfoItem& rLineInner );
1860 void ApplySelectionFrame(const ScMarkData& rMark,
1861 const SvxBoxItem& rLineOuter,
1862 const SvxBoxInfoItem* pLineInner);
1863 void ApplyFrameAreaTab(const ScRange& rRange,
1864 const SvxBoxItem& rLineOuter,
1865 const SvxBoxInfoItem& rLineInner);
1867 void ClearSelectionItems( const sal_uInt16* pWhich, const ScMarkData& rMark );
1868 void ChangeSelectionIndent( bool bIncrement, const ScMarkData& rMark );
1870 SC_DLLPUBLIC sal_uLong AddCondFormat( std::unique_ptr<ScConditionalFormat> pNew, SCTAB nTab );
1871 void DeleteConditionalFormat( sal_uLong nIndex, SCTAB nTab );
1873 void SetCondFormList( ScConditionalFormatList* pList, SCTAB nTab );
1875 SC_DLLPUBLIC const ScValidationData* GetValidationEntry( sal_uInt32 nIndex ) const;
1882 SC_DLLPUBLIC void ApplyAttr( SCCOL nCol, SCROW nRow, SCTAB nTab,
1883 const SfxPoolItem& rAttr );
1884 SC_DLLPUBLIC void ApplyPattern( SCCOL nCol, SCROW nRow, SCTAB nTab,
1885 const ScPatternAttr& rAttr );
1886 SC_DLLPUBLIC void ApplyPatternArea( SCCOL nStartCol, SCROW nStartRow,
1887 SCCOL nEndCol, SCROW nEndRow,
1888 const ScMarkData& rMark, const ScPatternAttr& rAttr,
1889 ScEditDataArray* pDataArray = nullptr,
1890 bool* const pIsChanged = nullptr );
1891 SC_DLLPUBLIC void ApplyPatternAreaTab( SCCOL nStartCol, SCROW nStartRow,
1892 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
1893 const ScPatternAttr& rAttr );
1896 const ScMarkData& rMark,
1897 const ScPatternAttr& rPattern,
1898 SvNumFormatType nNewType );
1900 void ApplyStyle( SCCOL nCol, SCROW nRow, SCTAB nTab,
1901 const ScStyleSheet& rStyle);
1902 void ApplyStyleArea( SCCOL nStartCol, SCROW nStartRow,
1903 SCCOL nEndCol, SCROW nEndRow,
1904 const ScMarkData& rMark, const ScStyleSheet& rStyle);
1905 SC_DLLPUBLIC void ApplyStyleAreaTab( SCCOL nStartCol, SCROW nStartRow,
1906 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab,
1907 const ScStyleSheet& rStyle);
1909 SC_DLLPUBLIC void ApplySelectionStyle( const ScStyleSheet& rStyle, const ScMarkData& rMark );
1910 void ApplySelectionLineStyle( const ScMarkData& rMark,
1911 const ::editeng::SvxBorderLine* pLine, bool bColorOnly );
1913 const ScStyleSheet* GetStyle( SCCOL nCol, SCROW nRow, SCTAB nTab ) const;
1914 const ScStyleSheet* GetSelectionStyle( const ScMarkData& rMark ) const;
1916 void StyleSheetChanged( const SfxStyleSheetBase* pStyleSheet, bool bRemoved,
1917 OutputDevice* pDev,
1918 double nPPTX, double nPPTY,
1919 const Fraction& rZoomX, const Fraction& rZoomY );
1921 bool IsStyleSheetUsed( const ScStyleSheet& rStyle ) const;
1923 SC_DLLPUBLIC bool ApplyFlagsTab( SCCOL nStartCol, SCROW nStartRow,
1924 SCCOL nEndCol, SCROW nEndRow,
1925 SCTAB nTab, ScMF nFlags );
1926 SC_DLLPUBLIC bool RemoveFlagsTab( SCCOL nStartCol, SCROW nStartRow,
1927 SCCOL nEndCol, SCROW nEndRow,
1928 SCTAB nTab, ScMF nFlags );
1930 SC_DLLPUBLIC void SetPattern( const ScAddress&, const ScPatternAttr& rAttr );
1931 SC_DLLPUBLIC const ScPatternAttr* SetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab, std::unique_ptr<ScPatternAttr> pAttr );
1932 SC_DLLPUBLIC const ScPatternAttr* SetPattern( const ScAddress& rPos, std::unique_ptr<ScPatternAttr> pAttr );
1933 SC_DLLPUBLIC void SetPattern( SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr& rAttr );
1935 void AutoFormat( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1936 sal_uInt16 nFormatNo, const ScMarkData& rMark );
1937 void GetAutoFormatData( SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
1938 ScAutoFormatData& rData );
1939 bool SearchAndReplace( const SvxSearchItem& rSearchItem,
1940 SCCOL& rCol, SCROW& rRow, SCTAB& rTab,
1941 const ScMarkData& rMark, ScRangeList& rMatchedRanges,
1942 OUString& rUndoStr, ScDocument* pUndoDoc, bool& bMatchedRangesWereClamped );
1943 static bool IsEmptyCellSearch( const SvxSearchItem& rSearchItem );
1945 // determine Col/Row of subsequent calls
1946 // (e.g. not found from the beginning, or subsequent tables)
1947 // meaning of explanation in "()" was already unclear in German
1948 void GetSearchAndReplaceStart( const SvxSearchItem& rSearchItem,
1949 SCCOL& rCol, SCROW& rRow );
1951 bool Solver( SCCOL nFCol, SCROW nFRow, SCTAB nFTab,
1952 SCCOL nVCol, SCROW nVRow, SCTAB nVTab,
1953 const OUString& sValStr, double& nX);
1955 SC_DLLPUBLIC void ApplySelectionPattern( const ScPatternAttr& rAttr, const ScMarkData& rMark,
1956 ScEditDataArray* pDataArray = nullptr, bool* pIsChanged = nullptr );
1957 SC_DLLPUBLIC void DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark, bool bBroadcast = true );
1958 void DeleteSelectionTab( SCTAB nTab, InsertDeleteFlags nDelFlag, const ScMarkData& rMark );
1960 SC_DLLPUBLIC void SetColWidth( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
1961 SC_DLLPUBLIC void SetColWidthOnly( SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth );
1962 SC_DLLPUBLIC void SetRowHeight( SCROW nRow, SCTAB nTab, sal_uInt16 nNewHeight );
1963 SC_DLLPUBLIC void SetRowHeightRange( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
1964 sal_uInt16 nNewHeight );
1966 SC_DLLPUBLIC void SetRowHeightOnly( SCROW nStartRow, SCROW nEndRow, SCTAB nTab,
1967 sal_uInt16 nNewHeight );
1968 SC_DLLPUBLIC void SetManualHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bManual );
1970 SC_DLLPUBLIC sal_uInt16 GetColWidth( SCCOL nCol, SCTAB nTab, bool bHiddenAsZero = true ) const;
1971 SC_DLLPUBLIC tools::Long GetColWidth( SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab ) const;
1972 SC_DLLPUBLIC sal_uInt16 GetRowHeight( SCROW nRow, SCTAB nTab, bool bHiddenAsZero = true ) const;
1973 SC_DLLPUBLIC sal_uInt16 GetRowHeight( SCROW nRow, SCTAB nTab, SCROW* pStartRow, SCROW* pEndRow, bool bHiddenAsZero = true ) const;
1974 SC_DLLPUBLIC tools::Long GetRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bHiddenAsZero = true ) const;
1981 SCROW GetRowForHeight( SCTAB nTab, tools::Long nHeight ) const;
1982 tools::Long GetScaledRowHeight( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale ) const;
1983 SC_DLLPUBLIC tools::Long GetColOffset( SCCOL nCol, SCTAB nTab, bool bHiddenAsZero = true ) const;
1984 SC_DLLPUBLIC tools::Long GetRowOffset( SCROW nRow, SCTAB nTab, bool bHiddenAsZero = true ) const;
1986 SC_DLLPUBLIC sal_uInt16 GetOriginalWidth( SCCOL nCol, SCTAB nTab ) const;
1987 SC_DLLPUBLIC sal_uInt16 GetOriginalHeight( SCROW nRow, SCTAB nTab ) const;
1989 sal_uInt16 GetCommonWidth( SCCOL nEndCol, SCTAB nTab ) const;
1991 SCROW GetHiddenRowCount( SCROW nRow, SCTAB nTab ) const;
1993 sal_uInt16 GetOptimalColWidth( SCCOL nCol, SCTAB nTab, OutputDevice* pDev,
1994 double nPPTX, double nPPTY,
1995 const Fraction& rZoomX, const Fraction& rZoomY,
1996 bool bFormula,
1997 const ScMarkData* pMarkData = nullptr,
1998 const ScColWidthParam* pParam = nullptr );
2001 SCROW nEndRow, SCTAB nTab, bool bApi );
2003 void UpdateAllRowHeights( sc::RowHeightContext& rCxt, const ScMarkData* pTabMark );
2005 tools::Long GetNeededSize( SCCOL nCol, SCROW nRow, SCTAB nTab,
2006 OutputDevice* pDev,
2007 double nPPTX, double nPPTY,
2008 const Fraction& rZoomX, const Fraction& rZoomY,
2009 bool bWidth, bool bTotalSize = false,
2010 bool bInPrintTwips = false );
2012 SC_DLLPUBLIC void ShowCol(SCCOL nCol, SCTAB nTab, bool bShow);
2013 SC_DLLPUBLIC void ShowRow(SCROW nRow, SCTAB nTab, bool bShow);
2014 SC_DLLPUBLIC void ShowRows(SCROW nRow1, SCROW nRow2, SCTAB nTab, bool bShow);
2015 SC_DLLPUBLIC void SetRowFlags( SCROW nRow, SCTAB nTab, CRFlags nNewFlags );
2016 SC_DLLPUBLIC void SetRowFlags( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, CRFlags nNewFlags );
2018 SC_DLLPUBLIC CRFlags GetColFlags( SCCOL nCol, SCTAB nTab ) const;
2019 SC_DLLPUBLIC CRFlags GetRowFlags( SCROW nRow, SCTAB nTab ) const;
2021 SC_DLLPUBLIC void GetAllRowBreaks(std::set<SCROW>& rBreaks, SCTAB nTab, bool bPage, bool bManual) const;
2022 SC_DLLPUBLIC void GetAllColBreaks(std::set<SCCOL>& rBreaks, SCTAB nTab, bool bPage, bool bManual) const;
2025 SC_DLLPUBLIC void SetRowBreak(SCROW nRow, SCTAB nTab, bool bPage, bool bManual);
2026 SC_DLLPUBLIC void SetColBreak(SCCOL nCol, SCTAB nTab, bool bPage, bool bManual);
2027 void RemoveRowBreak(SCROW nRow, SCTAB nTab, bool bPage, bool bManual);
2028 void RemoveColBreak(SCCOL nCol, SCTAB nTab, bool bPage, bool bManual);
2029 css::uno::Sequence<
2030 css::sheet::TablePageBreakData> GetRowBreakData(SCTAB nTab) const;
2032 SC_DLLPUBLIC bool RowHidden(SCROW nRow, SCTAB nTab, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
2033 SC_DLLPUBLIC bool HasHiddenRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2034 SC_DLLPUBLIC bool ColHidden(SCCOL nCol, SCTAB nTab, SCCOL* pFirstCol = nullptr, SCCOL* pLastCol = nullptr) const;
2035 SC_DLLPUBLIC void SetRowHidden(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bHidden);
2036 SC_DLLPUBLIC void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, bool bHidden);
2037 SC_DLLPUBLIC SCROW FirstVisibleRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2038 SC_DLLPUBLIC SCROW LastVisibleRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2039 SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2041 SC_DLLPUBLIC bool RowFiltered(SCROW nRow, SCTAB nTab, SCROW* pFirstRow = nullptr, SCROW* pLastRow = nullptr) const;
2042 bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2043 bool ColFiltered(SCCOL nCol, SCTAB nTab) const;
2044 SC_DLLPUBLIC void SetRowFiltered(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bFiltered);
2045 SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2046 SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2047 SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const;
2049 SC_DLLPUBLIC bool IsManualRowHeight(SCROW nRow, SCTAB nTab) const;
2051 bool HasUniformRowHeight( SCTAB nTab, SCROW nRow1, SCROW nRow2 ) const;
2058 void SyncColRowFlags();
2072 // returns whether to export a Default style for this col or not
2073 // nDefault is set to one position in the current row where the Default style is
2074 void GetColDefault( SCTAB nTab, SCCOL nCol, SCROW nLastRow, SCROW& nDefault);
2076 bool UpdateOutlineCol( SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, bool bShow );
2077 bool UpdateOutlineRow( SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bShow );
2079 void StripHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2, SCTAB nTab );
2080 void ExtendHidden( SCCOL& rX1, SCROW& rY1, SCCOL& rX2, SCROW& rY2, SCTAB nTab );
2085 void GetUnprotectedCells( ScRangeList& rRange, SCTAB nTab ) const;
2087 // PageStyle:
2088 SC_DLLPUBLIC OUString GetPageStyle( SCTAB nTab ) const;
2089 SC_DLLPUBLIC void SetPageStyle( SCTAB nTab, const OUString& rName );
2090 Size GetPageSize( SCTAB nTab ) const;
2091 void SetPageSize( SCTAB nTab, const Size& rSize );
2092 void SetRepeatArea( SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol, SCROW nStartRow, SCROW nEndRow );
2093 void InvalidatePageBreaks(SCTAB nTab);
2094 void UpdatePageBreaks( SCTAB nTab, const ScRange* pUserArea = nullptr );
2095 void RemoveManualBreaks( SCTAB nTab );
2096 bool HasManualBreaks( SCTAB nTab ) const;
2098 bool IsPageStyleInUse( std::u16string_view rStrPageStyle, SCTAB* pInTab );
2099 bool RemovePageStyleInUse( std::u16string_view rStrPageStyle );
2100 bool RenamePageStyleInUse( std::u16string_view rOld, const OUString& rNew );
2101 void ModifyStyleSheet( SfxStyleSheetBase& rPageStyle,
2102 const SfxItemSet& rChanges );
2104 void PageStyleModified( SCTAB nTab, const OUString& rNewName );
2106 SC_DLLPUBLIC bool NeedPageResetAfterTab( SCTAB nTab ) const;
2108 // Was stored in PageStyle previously. Now it exists for every table:
2110 SC_DLLPUBLIC sal_uInt16 GetPrintRangeCount( SCTAB nTab );
2111 SC_DLLPUBLIC const ScRange* GetPrintRange( SCTAB nTab, sal_uInt16 nPos );
2112 SC_DLLPUBLIC std::optional<ScRange> GetRepeatColRange( SCTAB nTab );
2113 SC_DLLPUBLIC std::optional<ScRange> GetRepeatRowRange( SCTAB nTab );
2115 bool IsPrintEntireSheet( SCTAB nTab ) const;
2118 SC_DLLPUBLIC void ClearPrintRanges( SCTAB nTab );
2120 SC_DLLPUBLIC void AddPrintRange( SCTAB nTab, const ScRange& rNew );
2123 SC_DLLPUBLIC void SetRepeatColRange( SCTAB nTab, std::optional<ScRange> oNew );
2124 SC_DLLPUBLIC void SetRepeatRowRange( SCTAB nTab, std::optional<ScRange> oNew );
2125 std::unique_ptr<ScPrintRangeSaver> CreatePrintRangeSaver() const;
2126 void RestorePrintRanges( const ScPrintRangeSaver& rSaver );
2128 SC_DLLPUBLIC tools::Rectangle GetMMRect( SCCOL nStartCol, SCROW nStartRow,
2129 SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bHiddenAsZero = true ) const;
2130 SC_DLLPUBLIC ScRange GetRange( SCTAB nTab, const tools::Rectangle& rMMRect, bool bHiddenAsZero = true ) const;
2132 void UpdStlShtPtrsFrmNms();
2133 void StylesToNames();
2135 SC_DLLPUBLIC void CopyStdStylesFrom( const ScDocument& rSrcDoc );
2137 static sal_uInt16 GetSrcVersion() { return nSrcVer; }
2139 void SetSrcCharSet( rtl_TextEncoding eNew ) { eSrcSet = eNew; }
2140 void UpdateFontCharSet();
2142 void FillInfo( ScTableInfo& rTabInfo, SCCOL nCol1, SCROW nRow1,
2143 SCCOL nCol2, SCROW nRow2, SCTAB nTab, double fColScale,
2144 double fRowScale, bool bPageMode, bool bFormulaMode,
2145 const ScMarkData* pMarkData = nullptr );
2150 void Sort( SCTAB nTab, const ScSortParam& rSortParam,
2151 bool bKeepQuery, bool bUpdateRefs,
2152 ScProgress* pProgress, sc::ReorderParam* pUndo );
2154 void Reorder( const sc::ReorderParam& rParam );
2156 void PrepareQuery( SCTAB nTab, ScQueryParam& rQueryParam );
2157 SCSIZE Query( SCTAB nTab, const ScQueryParam& rQueryParam, bool bKeepSub );
2158 SC_DLLPUBLIC bool CreateQueryParam( const ScRange& rRange, ScQueryParam& rQueryParam );
2159 OUString GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab);
2167 void GetFilterEntries( SCCOL nCol, SCROW nRow,
2168 SCTAB nTab, ScFilterEntries& rFilterEntries );
2170 SC_DLLPUBLIC void GetFilterEntriesArea( SCCOL nCol, SCROW nStartRow, SCROW nEndRow,
2171 SCTAB nTab, bool bCaseSens,
2172 ScFilterEntries& rFilterEntries );
2174 void GetDataEntries( SCCOL nCol, SCROW nRow, SCTAB nTab,
2175 std::vector<ScTypedStrData>& rStrings, bool bValidation = false );
2176 void GetFormulaEntries( ScTypedCaseStrSet& rStrings );
2178 bool HasAutoFilter( SCCOL nCol, SCROW nRow, SCTAB nTab );
2179 void GetFilterSelCount( SCCOL nCol, SCROW nRow, SCTAB nTab, SCSIZE& nSelected, SCSIZE& nTotal );
2181 SC_DLLPUBLIC bool HasColHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
2182 SCTAB nTab );
2183 SC_DLLPUBLIC bool HasRowHeader( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
2184 SCTAB nTab );
2186 SfxPrinter* GetPrinter( bool bCreateIfNotExist = true );
2187 void SetPrinter( VclPtr<SfxPrinter> const & pNewPrinter );
2189 SC_DLLPUBLIC OutputDevice* GetRefDevice(); // WYSIWYG: Printer, otherwise VirtualDevice...
2191 bool GetNextSpellingCell( SCCOL& nCol, SCROW& nRow, SCTAB nTab,
2192 bool bInSel, const ScMarkData& rMark) const;
2194 void ReplaceStyle( const SvxSearchItem& rSearchItem,
2195 SCCOL nCol, SCROW nRow, SCTAB nTab,
2196 const ScMarkData& rMark);
2198 void InvalidateTextWidth( std::u16string_view rStyleName );
2199 void InvalidateTextWidth( SCTAB nTab );
2200 void InvalidateTextWidth( const ScAddress* pAdrFrom, const ScAddress* pAdrTo, bool bNumFormatChanged );
2202 bool IdleCalcTextWidth();
2204 void RepaintRange( const ScRange& rRange );
2205 void RepaintRange( const ScRangeList& rRange );
2207 bool IsIdleEnabled() const { return mbIdleEnabled; }
2208 void EnableIdle(bool bDo) { mbIdleEnabled = bDo; }
2210 bool IsDetectiveDirty() const { return bDetectiveDirty; }
2211 void SetDetectiveDirty(bool bSet) { bDetectiveDirty = bSet; }
2222 // for broadcasting/listening
2225 void SetLoadingMedium( bool bVal );
2226 SC_DLLPUBLIC void SetImportingXML( bool bVal );
2227 bool IsImportingXML() const { return bImportingXML; }
2228 bool IsCalcingAfterLoad() const { return bCalcingAfterLoad; }
2229 void SetNoListening( bool bVal ) { bNoListening = bVal; }
2230 bool GetNoListening() const { return bNoListening; }
2231 ScBroadcastAreaSlotMachine* GetBASM() const { return pBASM.get(); }
2234 void SetChartListenerCollection( std::unique_ptr<ScChartListenerCollection>,
2235 bool bSetChartRangeLists );
2236 void UpdateChart( const OUString& rName );
2237 void RestoreChartListener( const OUString& rName );
2241 void AddOLEObjectToCollection(const OUString& rName);
2246 const std::shared_ptr<SvxForbiddenCharactersTable>& GetForbiddenCharacters() const;
2247 void SetForbiddenCharacters(const std::shared_ptr<SvxForbiddenCharactersTable>& rNew);
2250 bool IsValidAsianCompression() const;
2253 bool GetAsianKerning() const;
2254 bool IsValidAsianKerning() const;
2255 void SetAsianKerning(bool bNew);
2258 EEHorizontalTextDirection GetEditTextDirection(SCTAB nTab) const; // EEHorizontalTextDirection values
2261 void SetLinkMode( ScLkUpdMode nSet ) { eLinkMode = nSet;}
2265 void FillMatrix( ScMatrix& rMat, SCTAB nTab, SCCOL nCol1,
2266 SCROW nRow1, SCCOL nCol2, SCROW nRow2,
2267 svl::SharedStringPool* pPool = nullptr) const;
2277 void SC_DLLPUBLIC SetFormulaResults( const ScAddress& rTopPos, const double* pResults, size_t nLen );
2279 void CalculateInColumnInThread( ScInterpreterContext& rContext, const ScRange& rCalcRange, unsigned nThisThread, unsigned nThreadsTotal);
2280 void HandleStuffAfterParallelCalculation( SCCOL nColStart, SCCOL nColEnd, SCROW nRow, size_t nLen, SCTAB nTab, ScInterpreter* pInterpreter );
2287 void TransferCellValuesTo( const ScAddress& rTopPos, size_t nLen, sc::CellValues& rDest );
2288 void CopyCellValuesFrom( const ScAddress& rTopPos, const sc::CellValues& rSrc );
2290 std::set<Color> GetDocColors();
2293 std::set<SCCOL> QueryColumnsWithFormulaCells( SCTAB nTab ) const;
2301 void CheckIntegrity( SCTAB nTab ) const;
2304 ScDocument(const ScDocument& r) = delete;
2306 void FindMaxRotCol( SCTAB nTab, RowInfo* pRowInfo, SCSIZE nArrCount,
2307 SCCOL nX1, SCCOL nX2 ) const;
2309 sal_uInt16 RowDifferences( SCROW nThisRow, SCTAB nThisTab,
2310 ScDocument& rOtherDoc,
2311 SCROW nOtherRow, SCTAB nOtherTab,
2312 SCCOL nMaxCol, const SCCOLROW* pOtherCols );
2313 sal_uInt16 ColDifferences( SCCOL nThisCol, SCTAB nThisTab,
2314 ScDocument& rOtherDoc,
2315 SCCOL nOtherCol, SCTAB nOtherTab,
2316 SCROW nMaxRow, const SCCOLROW* pOtherRows );
2317 void FindOrder( SCCOLROW* pOtherRows, SCCOLROW nThisEndRow, SCCOLROW nOtherEndRow,
2318 bool bColumns,
2319 ScDocument& rOtherDoc, SCTAB nThisTab, SCTAB nOtherTab,
2320 SCCOLROW nEndCol, const SCCOLROW* pTranslate,
2321 ScProgress* pProgress, sal_uInt64 nProAdd );
2323 DECL_LINK(TrackTimeHdl, Timer *, void);
2340 bool LimitRangeToAvailableSheets( const ScRange& rRange, ScRange& o_rRange,
2341 bool& o_bEntirelyOutOfBounds ) const;
2344 void StartListeningArea( const ScRange& rRange, bool bGroupListening, SvtListener* pListener );
2346 void EndListeningArea( const ScRange& rRange, bool bGroupListening, SvtListener* pListener );
2352 void Broadcast( const ScHint& rHint );
2354 void BroadcastCells( const ScRange& rRange, SfxHintId nHint, bool bBroadcastSingleBroadcasters = true );
2357 void AreaBroadcast( const ScHint& rHint );
2358 void DelBroadcastAreasInRange( const ScRange& rRange );
2359 void UpdateBroadcastAreas( UpdateRefMode eUpdateRefMode,
2360 const ScRange& rRange,
2361 SCCOL nDx, SCROW nDy, SCTAB nDz );
2363 void StartListeningCell( const ScAddress& rAddress,
2364 SvtListener* pListener );
2365 void EndListeningCell( const ScAddress& rAddress,
2366 SvtListener* pListener );
2368 void StartListeningCell( sc::StartListeningContext& rCxt, const ScAddress& rPos, SvtListener& rListener );
2369 void EndListeningCell( sc::EndListeningContext& rCxt, const ScAddress& rPos, SvtListener& rListener );
2371 void EndListeningFormulaCells( std::vector<ScFormulaCell*>& rCells );
2375 void PutInFormulaTree( ScFormulaCell* pCell );
2376 void RemoveFromFormulaTree( ScFormulaCell* pCell );
2391 SC_DLLPUBLIC void CalcFormulaTree( bool bOnlyForced = false, bool bProgressBar = true, bool bSetAllDirty = true );
2392 void ClearFormulaTree();
2393 void AppendToFormulaTrack( ScFormulaCell* pCell );
2395 void TrackFormulas( SfxHintId nHintId = SfxHintId::ScDataChanged );
2398 void FinalTrackFormulas( SfxHintId nHintId );
2400 inline bool IsInFormulaTree( const ScFormulaCell* pCell ) const;
2401 inline bool IsInFormulaTrack( const ScFormulaCell* pCell ) const;
2404 void StartAllListeners();
2405 void StartNeededListeners();
2406 void StartNeededListeners( const std::shared_ptr<const sc::ColumnSet>& rpColSet );
2407 SC_DLLPUBLIC void StartAllListeners( const ScRange& rRange );
2409 void SetForcedFormulas( bool bVal ) { bHasForcedFormulas = bVal; }
2410 sal_uInt64 GetFormulaCodeInTree() const { return nFormulaCodeInTree; }
2412 bool IsInInterpreter() const { return nInterpretLevel != 0; }
2415 {
2417 if ( nInterpretLevel < USHRT_MAX )
2419 }
2421 {
2423 if ( nInterpretLevel )
2425 }
2426 sal_uInt16 GetMacroInterpretLevel() const { return nMacroInterpretLevel; }
2428 {
2430 if ( nMacroInterpretLevel < USHRT_MAX )
2432 }
2434 {
2438 }
2441 {
2442 if ( nInterpreterTableOpLevel < USHRT_MAX )
2444 }
2446 {
2449 }
2451 // add a formula to be remembered for TableOp broadcasts
2455 bool IsInDtorClear() const { return bInDtorClear; }
2456 void SetExpandRefs( bool bVal );
2457 bool IsExpandRefs() const { return bExpandRefs; }
2460 void IncXMLImportedFormulaCount( sal_uInt64 nVal )
2461 {
2464 }
2465 void DecXMLImportedFormulaCount( sal_uInt64 nVal )
2466 {
2467 if ( nVal <= nXMLImportedFormulaCount )
2469 else
2471 }
2473 void StartTrackTimer();
2475 void CompileDBFormula();
2482 sal_Int32 GetMaxStringLen( SCTAB nTab, SCCOL nCol,
2483 SCROW nRowStart, SCROW nRowEnd,
2484 rtl_TextEncoding eCharSet ) const;
2488 sal_Int32 GetMaxNumberStringLen( sal_uInt16& nPrecision,
2489 SCTAB nTab, SCCOL nCol,
2490 SCROW nRowStart, SCROW nRowEnd ) const;
2492 void KeyInput(); // TimerDelays etc.
2494 ScChangeTrack* GetChangeTrack() const { return pChangeTrack.get(); }
2498 SC_DLLPUBLIC void SetChangeTrack( std::unique_ptr<ScChangeTrack> pTrack );
2500 void StartChangeTracking();
2501 void EndChangeTracking();
2503 SC_DLLPUBLIC void CompareDocument( ScDocument& rOtherDoc );
2505 void AddUnoObject( SfxListener& rObject );
2506 void RemoveUnoObject( SfxListener& rObject );
2507 void BroadcastUno( const SfxHint &rHint );
2508 void AddUnoListenerCall( const css::uno::Reference<
2509 css::util::XModifyListener >& rListener,
2510 const css::lang::EventObject& rEvent );
2512 void SetInLinkUpdate(bool bSet); // TableLink or AreaLink
2513 bool IsInLinkUpdate() const; // including DdeLink
2520 std::unique_ptr<EditTextObject> CreateSharedStringTextObject( const svl::SharedString& rSS );
2522 std::unique_ptr<ScRefreshTimerControl> const & GetRefreshTimerControlAddress() const
2523 { return pRefreshTimerControl; }
2526 { bPastingDrawFromOtherDoc = bVal; }
2528 { return bPastingDrawFromOtherDoc; }
2531 sal_uInt32 GetDocumentID() const;
2534 void SC_DLLPUBLIC GetSortParam( ScSortParam& rParam, SCTAB nTab );
2535 void SC_DLLPUBLIC SetSortParam( const ScSortParam& rParam, SCTAB nTab );
2537 void SetVbaEventProcessor( const css::uno::Reference< css::script::vba::XVBAEventProcessor >& rxVbaEvents )
2538 { mxVbaEvents = rxVbaEvents; }
2539 const css::uno::Reference< css::script::vba::XVBAEventProcessor >& GetVbaEventProcessor() const { return mxVbaEvents; }
2546 bool IsInVBAMode() const;
2549 void AddSubTotalCell(ScFormulaCell* pCell);
2550 void RemoveSubTotalCell(ScFormulaCell* pCell);
2551 void SetSubTotalCellsDirty(const ScRange& rDirtyRange);
2553 sal_uInt16 GetTextWidth( const ScAddress& rPos ) const;
2555 SvtScriptType GetScriptType( const ScAddress& rPos ) const;
2556 void SetScriptType( const ScAddress& rPos, SvtScriptType nType );
2557 void UpdateScriptTypes( const ScAddress& rPos, SCCOL nColSize, SCROW nRowSize );
2569 void UnshareFormulaCells( SCTAB nTab, SCCOL nCol, std::vector<SCROW>& rRows );
2570 void RegroupFormulaCells( SCTAB nTab, SCCOL nCol );
2571 SC_DLLPUBLIC void RegroupFormulaCells( const ScRange& range );
2577 bool HandleRefArrayForParallelism( const ScAddress& rPos, SCROW nLength, const ScFormulaCellGroupRef& mxGroup );
2578#ifdef DBG_UTIL
2579 void AssertNoInterpretNeeded( const ScAddress& rPos, SCROW nLength );
2586 void PrepareFormulaCalc();
2602 SC_DLLPUBLIC bool EnsureFormulaCellResults( const ScRange& rRange, bool bSkipRunning = false );
2604 SvtBroadcaster* GetBroadcaster( const ScAddress& rPos );
2605 const SvtBroadcaster* GetBroadcaster( const ScAddress& rPos ) const;
2606 void DeleteBroadcasters( sc::ColumnBlockPosition& rBlockPos, const ScAddress& rTopPos, SCROW nLength );
2608 std::optional<sc::ColumnIterator> GetColumnIterator( SCTAB nTab, SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
2609 void CreateColumnIfNotExists( SCTAB nTab, SCCOL nCol );
2611 SC_DLLPUBLIC void StoreTabToCache(SCTAB nTab, SvStream& rStrm) const;
2612 SC_DLLPUBLIC void RestoreTabFromCache(SCTAB nTab, SvStream& rStream);
2615 SC_DLLPUBLIC void DumpColumnStorage( SCTAB nTab, SCCOL nCol ) const;
2618 SC_DLLPUBLIC void SetCalcConfig( const ScCalcConfig& rConfig );
2619 const ScCalcConfig& GetCalcConfig() const { return maCalcConfig; }
2620 void ConvertFormulaToValue( const ScRange& rRange, sc::TableValues* pUndo );
2621 void SwapNonEmpty( sc::TableValues& rValues );
2622 void finalizeOutlineImport();
2624 // Returns the given column range, first allocating all the columns if necessary.
2626 // Returns a column range, clamped to the allocated columns.
2627 SC_DLLPUBLIC ScColumnsRange GetAllocatedColumnsRange(SCTAB nTab, SCCOL nColBegin, SCCOL nColEnd) const;
2628 // Returns the given range, without any adjustments. One of the variants above may return
2629 // a smaller range (better performance) if the use case is known.
2630 SC_DLLPUBLIC ScColumnsRange GetColumnsRange(SCTAB nTab, SCCOL nColBegin, SCCOL nColEnd) const;
2632 bool IsInDocShellRecalc() const { return mbDocShellRecalc; }
2633 void SetDocShellRecalc(bool bSet) { mbDocShellRecalc = bSet; }
2635 bool IsInLayoutStrings() const { return mbLayoutStrings; }
2636 void SetLayoutStrings(bool bSet) { mbLayoutStrings = bSet; }
2646 OString dumpSheetGeomData(SCTAB nTab, bool bColumns, SheetGeomType eGeomType);
2648 SCCOL GetLOKFreezeCol(SCTAB nTab) const;
2649 SCROW GetLOKFreezeRow(SCTAB nTab) const;
2650 bool SetLOKFreezeCol(SCCOL nFreezeCol, SCTAB nTab);
2651 bool SetLOKFreezeRow(SCROW nFreezeRow, SCTAB nTab);
2661 {
2662 public:
2663 explicit NumFmtMergeHandler(ScDocument& rDoc, const ScDocument& rSrcDoc);
2666 private:
2668 };
2670 void MergeNumberFormatter(const ScDocument& rSrcDoc);
2672 void ImplCreateOptions(); // Suggestion: switch to on-demand?
2673 void ImplDeleteOptions();
2675 SC_DLLPUBLIC bool DrawGetPrintArea( ScRange& rRange, bool bSetHor, bool bSetVer ) const;
2677 void UpdateDrawPrinter();
2678 void UpdateDrawLanguages();
2679 SC_DLLPUBLIC void InitClipPtrs( ScDocument* pSourceDoc );
2681 void LoadDdeLinks(SvStream& rStream);
2682 void SaveDdeLinks(SvStream& rStream) const;
2684 void DeleteAreaLinksOnTab( SCTAB nTab );
2685 void UpdateRefAreaLinks( UpdateRefMode eUpdateRefMode,
2686 const ScRange& r, SCCOL nDx, SCROW nDy, SCTAB nDz );
2688 void CopyRangeNamesToClip(ScDocument* pClipDoc, const ScRange& rClipRange, const ScMarkData* pMarks);
2690 bool HasPartOfMerged( const ScRange& rRange );
2694 const ScTable* FetchTable( SCTAB nTab ) const;
2700 std::map< SCTAB, ScSortParam > mSheetSortParams;
2702 SCSIZE GetPatternCount( SCTAB nTab, SCCOL nCol ) const;
2703 SCSIZE GetPatternCount( SCTAB nTab, SCCOL nCol, SCROW nRow1, SCROW nRow2 ) const;
2704 void ReservePatternCount( SCTAB nTab, SCCOL nCol, SCSIZE nReserve );
2706 void SharePooledResources( const ScDocument* pSrcDoc );
2709 sc::EndListeningContext& rCxt, const ScAddress& rPos, std::vector<ScAddress>* pGroupPos );
2712 sc::EndListeningContext& rCxt, const ScRange& rRange, std::vector<ScAddress>* pGroupPos );
2714 void EndListeningGroups( const std::vector<ScAddress>& rPosArray );
2715 void SetNeedsListeningGroups( const std::vector<ScAddress>& rPosArray );
2717 bool BroadcastHintInternal( const ScHint &rHint );
2720typedef std::unique_ptr<ScDocument, o3tl::default_delete<ScDocument>> ScDocumentUniquePtr;
2729#ifndef NDEBUG
2731 : mnFlagRestore(rDocument.mnMutationGuardFlags)
2732 , mrDocument(rDocument)
2733 {
2734 assert((mnFlagRestore & nFlags) == 0);
2735 mrDocument.mnMutationGuardFlags |= static_cast<size_t>(nFlags);
2736 }
2738 {
2740 }
2745 {
2746 (void)rDocument; (void)nFlags;
2747 }
2762#ifndef NDEBUG
2764 : mnFlags(static_cast<size_t>(nFlags))
2765 , mrDocument(rDocument)
2766 {
2767 assert((mrDocument.mnMutationGuardFlags & mnFlags) == 0);
2768 }
2771 {
2772 assert((mrDocument.mnMutationGuardFlags & mnFlags) == 0);
2773 }
2774 size_t mnFlags;
2778 {
2779 (void)rDocument; (void)nFlags;
2780 }
2790 : mrDoc(rDoc)
2791 {
2792 assert(!mrDoc.IsInDocShellRecalc());
2794 }
2797 {
2798 mrDoc.SetDocShellRecalc(false);
2799 }
2802/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool ValidColRow(SCCOL nCol, SCROW nRow, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:121
SCROW SanitizeRow(SCROW nRow, SCROW nMaxRow)
Definition: address.hxx:139
bool ValidAddress(const ScAddress &rAddress, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:488
bool ValidRange(const ScRange &rRange, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:786
Definition: address.hxx:95
SCCOL SanitizeCol(SCCOL nCol, SCCOL nMaxCol)
Definition: address.hxx:133
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
bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab, SCCOL nMaxCol, SCROW nMaxRow)
Definition: address.hxx:127
bool ValidRow(SCROW nRow, SCROW nMaxRow)
Definition: address.hxx:105
bool ValidCol(SCCOL nCol, SCCOL nMaxCol)
Definition: address.hxx:99
Definition: attrib.hxx:34
SCTAB Tab() const
Definition: address.hxx:283
SCROW Row() const
Definition: address.hxx:274
SCCOL Col() const
Definition: address.hxx:279
Cache for faster lookup of automatic names during CompileXML (during CompileXML, no document content ...
BroadcastAreaSlots and their management, once per document.
Definition: bcaslot.hxx:249
Walk through all cells in an area.
Definition: dociter.hxx:206
Stores options which are only relevant for clipboard documents.
Definition: clipoptions.hxx:22
ScDocShellRecalcGuard(ScDocument &rDoc)
Definition: document.hxx:2789
ScDocument & mrDoc
Definition: document.hxx:2786
Accessor class to ScDocument.
Use this class as a locale variable to merge number formatter from another document,...
Definition: document.hxx:2661
NumFmtMergeHandler(ScDocument &rDoc, const ScDocument &rSrcDoc)
Definition: document.cxx:2446
SC_DLLPUBLIC bool InsertTab(SCTAB nPos, const OUString &rName, bool bExternalDocument=false, bool bUndoDeleteTab=false)
Definition: document.cxx:485
void StartAllListeners()
Definition: documen7.cxx:582
bool IsInFormulaTree(const ScFormulaCell *pCell) const
void ResetChanged(const ScRange &rRange)
Definition: document.cxx:4074
SC_DLLPUBLIC bool IsScenario(SCTAB nTab) const
Definition: documen3.cxx:432
SCROW CountNonFilteredRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4516
void SetEmptyCell(const ScAddress &rPos)
Definition: document.cxx:3471
SC_DLLPUBLIC SCCOL GetAllocatedColumnsCount(SCTAB nTab) const
Definition: documen3.cxx:2139
sal_Int32 GetMaxNumberStringLen(sal_uInt16 &nPrecision, SCTAB nTab, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd) const
Maximum string length of numerical cells of a column, e.g.
Definition: documen4.cxx:594
void UpdateAreaLinks()
Definition: documen8.cxx:1044
bool IsValidAsianKerning() const
Definition: documen9.cxx:640
std::unique_ptr< sc::ExternalDataMapper > mpDataMapper
Definition: document.hxx:403
void TrackFormulas(SfxHintId nHintId=SfxHintId::ScDataChanged)
Definition: documen7.cxx:524
void CompileAll()
Definition: document.cxx:3963
SC_DLLPUBLIC SfxItemPool * GetEnginePool() const
Definition: documen2.cxx:478
void FinalTrackFormulas(SfxHintId nHintId)
Definition: documen7.cxx:503
SCROW SanitizeRow(SCROW nRow) const
Definition: document.hxx:906
SCROW CountVisibleRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4468
void SetThreadedGroupCalcInProgress(bool set)
Definition: document.hxx:629
SC_DLLPUBLIC bool SetEditText(const ScAddress &rPos, std::unique_ptr< EditTextObject > pEditText)
This method manages the lifecycle of the passed edit text object.
Definition: document.cxx:3422
bool IsCalculatingFormulaTree() const
Definition: document.hxx:1421
SC_DLLPUBLIC bool RemoveFlagsTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, ScMF nFlags)
Definition: document.cxx:4980
ScSheetLimits & GetSheetLimits() const
Definition: document.hxx:898
const ScStyleSheet * GetSelectionStyle(const ScMarkData &rMark) const
Definition: document.cxx:4875
bool IsUndo() const
Definition: document.hxx:1593
SC_DLLPUBLIC ScColumnsRange GetWritableColumnsRange(SCTAB nTab, SCCOL nColBegin, SCCOL nColEnd)
Definition: document.cxx:2525
SCTAB GetVisibleTab() const
Definition: document.hxx:879
bool bAutoCalc
Definition: document.hxx:487
bool SetDdeLinkResultMatrix(size_t nDdePos, const ScMatrixRef &pResults)
Sets a result matrix for the specified DDE link.
Definition: documen8.cxx:1019
std::shared_ptr< svl::SharedStringPool > mpCellStringPool
Definition: document.hxx:360
Definition: document.hxx:483
SC_DLLPUBLIC sal_uInt16 GetRowHeight(SCROW nRow, SCTAB nTab, bool bHiddenAsZero=true) const
Definition: document.cxx:4161
void UpdateGrow(const ScRange &rArea, SCCOL nGrowX, SCROW nGrowY)
Definition: documen3.cxx:1143
SC_DLLPUBLIC std::shared_ptr< sc::Sparkline > GetSparkline(ScAddress const &rPosition)
Returns sparkline at the address if it exists.
Definition: document.cxx:6495
bool IsAddressInRangeName(RangeNameScope eScope, const ScAddress &rAddress)
Definition: documen3.cxx:196
void SetTrackFormulasPending()
Definition: document.hxx:2396
bool IsEmbedUsedFontsOnly() const
Definition: document.hxx:584
SC_DLLPUBLIC void CopyFromClip(const ScRange &rDestRange, const ScMarkData &rMark, InsertDeleteFlags nInsFlag, ScDocument *pRefUndoDoc, ScDocument *pClipDoc, bool bResetCut=true, bool bAsLink=false, bool bIncludeFiltered=true, bool bSkipEmptyCells=false, const ScRangeList *pDestRanges=nullptr)
Paste data from a clipboard document into this document.
Definition: document.cxx:2814
bool bDelayedDeletingBroadcasters
Definition: document.hxx:531
rtl::Reference< ScSheetLimits > mxSheetLimits
Definition: document.hxx:379
void ModifyStyleSheet(SfxStyleSheetBase &rPageStyle, const SfxItemSet &rChanges)
Definition: documen8.cxx:210
SCROW FirstNonFilteredRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4502
SC_DLLPUBLIC ~ScDocument()
Definition: documen2.cxx:346
SC_DLLPUBLIC sal_uInt32 GetNumberFormat(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: document.cxx:3640
SC_DLLPUBLIC void GetRangeNameMap(std::map< OUString, ScRangeName * > &rRangeName)
Definition: documen3.cxx:149
bool UpdateOutlineCol(SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, bool bShow)
Adapt Outline.
Definition: documen3.cxx:1415
std::set< SCCOL > QueryColumnsWithFormulaCells(SCTAB nTab) const
css::uno::Reference< css::chart2::XChartDocument > GetChartByName(std::u16string_view rChartName)
Definition: documen5.cxx:138
bool IsPrintEmpty(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bLeftIsEmpty=false, ScRange *pLastRange=nullptr, tools::Rectangle *pLastMM=nullptr) const
Definition: documen9.cxx:423
sc::MultiDataCellState HasMultipleDataCells(const ScRange &rRange) const
Check if the specified range contains either: 1) one non-empty cell, 2) more than one non-empty cells...
Definition: document10.cxx:43
SC_DLLPUBLIC void DumpColumnStorage(SCTAB nTab, SCCOL nCol) const
std::unique_ptr< ScFieldEditEngine > pCacheFieldEditEngine
Definition: document.hxx:405
void GetAutoFormatData(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, ScAutoFormatData &rData)
Definition: documen3.cxx:1202
OUString maFileURL
Definition: document.hxx:419
bool GetAsianKerning() const
Definition: documen9.cxx:645
bool BroadcastHintInternal(const ScHint &rHint)
Definition: documen7.cxx:137
void EnableDelayStartListeningFormulaCells(ScColumn *column, bool delay)
If set, ScColumn::StartListeningFormulaCells() calls may be delayed using CanDelayStartListeningFormu...
Definition: document10.cxx:401
bool IsCellInChangeTrack(const ScAddress &cell, Color *pColCellBorder)
Definition: documen2.cxx:1317
bool IsInFormulaTrack(const ScFormulaCell *pCell) const
void IncInterpreterTableOpLevel()
Definition: document.hxx:2440
ScFormulaCell * pFormulaTree
Definition: document.hxx:386
void InvalidateTextWidth(std::u16string_view rStyleName)
Definition: documen8.cxx:295
void AddOLEObjectToCollection(const OUString &rName)
Definition: documen5.cxx:646
bool IsHorOverlapped(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: document.cxx:5717
ScInterpreterContext & GetThreadedContext() const
Definition: document.hxx:623
SC_DLLPUBLIC bool GetMatrixFormulaRange(const ScAddress &rCellPos, ScRange &rMatrix)
Definition: document.cxx:5416
void SC_DLLPUBLIC SetFormulaResults(const ScAddress &rTopPos, const double *pResults, size_t nLen)
Set an array of numerical formula results to a group of contiguous formula cells.
Definition: documen8.cxx:402
void UndoToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, InsertDeleteFlags nFlags, bool bMarked, ScDocument &rDestDoc)
Definition: document.cxx:2053
std::unique_ptr< SvMemoryStream > pClipData
Definition: document.hxx:392
bool bInLinkUpdate
Definition: document.hxx:510
std::unique_ptr< ScConsolidateParam > pConsolidateDlgData
Definition: document.hxx:427
SC_DLLPUBLIC ScRange GetRange(SCTAB nTab, const tools::Rectangle &rMMRect, bool bHiddenAsZero=true) const
Definition: documen3.cxx:1797
const OUString & GetFileURL() const
Definition: document.hxx:611
bool RefreshAutoFilter(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
Definition: document.cxx:5660
bool IsStreamValidLocked() const
Definition: document.hxx:990
SC_DLLPUBLIC void SetChangeTrack(std::unique_ptr< ScChangeTrack > pTrack)
only for import filter, deletes any existing ChangeTrack via EndChangeTracking() and takes ownership ...
Definition: documen2.cxx:294
ScLkUpdMode eLinkMode
Definition: document.hxx:485
tools::Rectangle GetEmbeddedRect() const
Definition: documen3.cxx:1708
SC_DLLPUBLIC ScFormulaCell * SetFormulaCell(const ScAddress &rPos, ScFormulaCell *pCell)
Set formula cell, and transfer its ownership to the document.
Definition: documen2.cxx:1149
bool bForcedFormulaPending
Definition: document.hxx:492
void IncMacroInterpretLevel()
Definition: document.hxx:2427
SC_DLLPUBLIC void CreateValidTabNames(std::vector< OUString > &aNames, SCTAB nCount) const
Definition: document.cxx:420
SC_DLLPUBLIC bool LinkExternalTab(SCTAB &nTab, const OUString &aDocTab, const OUString &aFileName, const OUString &aTabName)
Definition: documen3.cxx:566
SvtBroadcaster * GetBroadcaster(const ScAddress &rPos)
Definition: document.cxx:2464
bool IsCalcingAfterLoad() const
Definition: document.hxx:2228
SC_DLLPUBLIC sal_uInt16 GetColWidth(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const
Definition: document.cxx:4122
SC_DLLPUBLIC sal_uInt64 GetCellCount() const
Definition: document.cxx:6125
void ClosingClipboardSource()
To be called at the clipboard document when closing a document that is the current clipboard source t...
Definition: documen2.cxx:338
void LoadDdeLinks(SvStream &rStream)
Definition: documen8.cxx:747
bool bPastingDrawFromOtherDoc
Definition: document.hxx:538
SC_DLLPUBLIC ScPatternAttr * GetDefPattern() const
Definition: document.cxx:6045
bool IsInInterpreterTableOp() const
Definition: document.hxx:2439
void SetValues(const ScAddress &rPos, const std::vector< double > &rVals)
Definition: document10.cxx:160
static sal_uInt16 GetSrcVersion()
Definition: document.hxx:2137
SC_DLLPUBLIC double * GetValueCell(const ScAddress &rPos)
Return a pointer to the double value stored in value cell.
Definition: document.cxx:3519
bool IsInDocShellRecalc() const
Definition: document.hxx:2632
void SC_DLLPUBLIC GetSortParam(ScSortParam &rParam, SCTAB nTab)
Definition: documen3.cxx:2124
std::unique_ptr< ScFieldEditEngine > mpEditEngine
Definition: document.hxx:369
SC_DLLPUBLIC void SetAllRangeNames(const std::map< OUString, ScRangeName > &rRangeMap)
Definition: documen3.cxx:126
SC_DLLPUBLIC OUString GetLinkTab(SCTAB nTab) const
Definition: documen3.cxx:530
void DeleteBroadcasters(sc::ColumnBlockPosition &rBlockPos, const ScAddress &rTopPos, SCROW nLength)
Definition: document.cxx:2482
bool ValidRow(SCROW nRow) const
Definition: document.hxx:900
SC_DLLPUBLIC const ScTableProtection * GetTabProtection(SCTAB nTab) const
Definition: documen3.cxx:1914
void UpdateRefAreaLinks(UpdateRefMode eUpdateRefMode, const ScRange &r, SCCOL nDx, SCROW nDy, SCTAB nDz)
Definition: documen8.cxx:1078
void UpdateDrawPrinter()
Definition: documen9.cxx:193
void Clear(bool bFromDestructor=false)
Definition: documen9.cxx:489
CommentCaptionState GetAllNoteCaptionsState(const ScRangeList &rRanges)
Definition: document.cxx:6742
SC_DLLPUBLIC void EnableUserInteraction(bool bVal)
Definition: document.cxx:6472
sc::BroadcasterState GetBroadcasterState() const
SC_DLLPUBLIC void SetLayoutRTL(SCTAB nTab, bool bRTL, ScObjectHandling eObjectHandling=ScObjectHandling::RecalcPosMode)
Definition: document.cxx:937
bool HasPartOfMerged(const ScRange &rRange)
Definition: document.cxx:1723
bool RemovePageStyleInUse(std::u16string_view rStrPageStyle)
Definition: documen8.cxx:325
void UpdatePageBreaks(SCTAB nTab, const ScRange *pUserArea=nullptr)
Definition: document.cxx:6210
SCTAB nVisibleTab
Definition: document.hxx:481
void ApplyFrameAreaTab(const ScRange &rRange, const SvxBoxItem &rLineOuter, const SvxBoxInfoItem &rLineInner)
Definition: document.cxx:5851
SC_DLLPUBLIC void CopyUpdated(ScDocument *pPosDoc, ScDocument *pDestDoc)
From this document this method copies the cells of positions at which there are also cells in pPosDoc...
Definition: documen3.cxx:803
bool FindRangeNamesReferencingSheet(sc::UpdatedRangeNames &rIndexes, SCTAB nTokenTab, const sal_uInt16 nTokenIndex, SCTAB nGlobalRefTab, SCTAB nLocalRefTab, SCTAB nOldTokenTab, SCTAB nOldTokenTabReplacement, bool bSameDoc, int nRecursion) const
Recursively find all named expressions that directly or indirectly (nested) reference a given sheet,...
Definition: document10.cxx:594
void GetColDefault(SCTAB nTab, SCCOL nCol, SCROW nLastRow, SCROW &nDefault)
Definition: document.cxx:4623
bool bInDtorClear
Definition: document.hxx:515
bool SetOutlineTable(SCTAB nTab, const ScOutlineTable *pNewOutline)
Definition: documen3.cxx:754
bool CanInsertCol(const ScRange &rRange) const
Definition: document.cxx:1456
SC_DLLPUBLIC ScRangeName * GetRangeName() const
Definition: documen3.cxx:178
SC_DLLPUBLIC sal_uLong TransferTab(ScDocument &rSrcDoc, SCTAB nSrcPos, SCTAB nDestPos, bool bInsertNew=true, bool bResultsOnly=false)
Definition: documen2.cxx:946
SC_DLLPUBLIC ScTable * FetchTable(SCTAB nTab)
Definition: document.cxx:2509
ScFormulaParserPool & GetFormulaParserPool() const
Returns the pool containing external formula parsers.
Definition: documen3.cxx:654
SC_DLLPUBLIC bool IsDocProtected() const
Definition: documen3.cxx:1894
bool IsFinalTrackFormulas() const
Definition: document.hxx:2399
void SetRangeName(SCTAB nTab, std::unique_ptr< ScRangeName > pNew)
Definition: documen3.cxx:185
std::unique_ptr< ScUnoListenerCalls > pUnoListenerCalls
Definition: document.hxx:396
bool HasSelectionData(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Returns true, if there is any data to create a selection list for rPos.
Definition: document.cxx:3781
SC_DLLPUBLIC void Fill(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, ScProgress *pProgress, const ScMarkData &rMark, sal_uInt64 nFillCount, FillDir eFillDir=FILL_TO_BOTTOM, FillCmd eFillCmd=FILL_LINEAR, FillDateCmd eFillDateCmd=FILL_DAY, double nStepValue=1.0, double nMaxValue=1E307)
Definition: documen3.cxx:1156
svl::SharedString GetSharedString(const ScAddress &rPos) const
Definition: document.cxx:3526
SC_DLLPUBLIC bool ExtendMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, SCTAB nTab, bool bRefresh=false)
Definition: document.cxx:5556
bool IsDetectiveDirty() const
Definition: document.hxx:2210
SC_DLLPUBLIC void SetFormula(const ScAddress &rPos, const ScTokenArray &rArray)
Definition: documen2.cxx:1135
void SetNote(const ScAddress &rPos, std::unique_ptr< ScPostIt > pNote)
Definition: document.cxx:6599
bool SetLOKFreezeCol(SCCOL nFreezeCol, SCTAB nTab)
SC_DLLPUBLIC void InsertMatrixFormula(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, const OUString &rFormula, const ScTokenArray *p=nullptr, const formula::FormulaGrammar::Grammar=formula::FormulaGrammar::GRAM_DEFAULT)
Definition: documen4.cxx:259
void CopyBlockFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, SCCOL nDx, SCROW nDy)
Definition: document.cxx:2635
void TransliterateText(const ScMarkData &rMultiMark, TransliterationFlags nType)
Definition: documen8.cxx:1205
ScClipParam & GetClipParam()
Definition: document.cxx:2564
SC_DLLPUBLIC void UpdateChartListenerCollection()
Definition: documen5.cxx:571
SC_DLLPUBLIC tools::Long GetColOffset(SCCOL nCol, SCTAB nTab, bool bHiddenAsZero=true) const
Definition: document.cxx:4224
SCROW CopyNonFilteredFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, SCCOL nDx, SCROW &rClipStartRow, SCROW nClipEndRow)
Definition: document.cxx:2736
SC_DLLPUBLIC bool InsertTabs(SCTAB nPos, const std::vector< OUString > &rNames, bool bNamesValid=false)
Definition: document.cxx:573
std::unique_ptr< ScClipOptions > mpClipOptions
Definition: document.hxx:426
SC_DLLPUBLIC Color GetTabBgColor(SCTAB nTab) const
Definition: documen3.cxx:449
const ScCalcConfig & GetCalcConfig() const
Definition: document.hxx:2619
bool bLinkFormulaNeedingCheck
Definition: document.hxx:533
void PrepareQuery(SCTAB nTab, ScQueryParam &rQueryParam)
Definition: documen3.cxx:1458
SC_DLLPUBLIC bool GetTable(const OUString &rName, SCTAB &rTab) const
Definition: document.cxx:244
ScAddress aCurTextWidthCalcPos
Definition: document.hxx:439
SC_DLLPUBLIC ScDPObject * GetDPAtCursor(ScAddress const &rAddress) const
Definition: document.hxx:844
std::unique_ptr< ScDocOptions > pDocOptions
Definition: document.hxx:424
VclPtr< SfxPrinter > mpPrinter
Definition: document.hxx:372
EEHorizontalTextDirection GetEditTextDirection(SCTAB nTab) const
Definition: documen8.cxx:355
SC_DLLPUBLIC ScColumnsRange GetAllocatedColumnsRange(SCTAB nTab, SCCOL nColBegin, SCCOL nColEnd) const
Definition: document.cxx:2534
bool HasStringWeakCharacters(const OUString &rString)
Definition: documen6.cxx:51
SC_DLLPUBLIC void InsertTableOp(const ScTabOpParam &rParam, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark)
Definition: documen4.cxx:356
tools::Long GetScaledRowHeight(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, double fScale) const
Definition: document.cxx:4198
std::unique_ptr< ScDBData > mpAnonymousDBData
Definition: document.hxx:402
void InvalidateTableArea()
Definition: documen4.cxx:574
void BeginDrawUndo()
Definition: documen9.cxx:61
SC_DLLPUBLIC void CompileHybridFormula()
Call this immediately after updating named ranges.
Definition: document10.cxx:319
bool CompileErrorCells(FormulaError nErrCode)
Re-compile formula cells with error.
Definition: document.cxx:4016
SC_DLLPUBLIC bool IsTabProtected(SCTAB nTab) const
Definition: documen3.cxx:1905
SC_DLLPUBLIC void InitDrawLayer(SfxObjectShell *pDocShell=nullptr)
Definition: documen9.cxx:105
sal_uInt64 GetFormulaCodeInTree() const
Definition: document.hxx:2410
SC_DLLPUBLIC bool HasColNotes(SCCOL nCol, SCTAB nTab) const
Definition: document.cxx:6652
void SetDetectiveDirty(bool bSet)
Definition: document.hxx:2211
bool IsIdleEnabled() const
Definition: document.hxx:2207
LanguageType eCtlLanguage
Definition: document.hxx:454
void GetUnprotectedCells(ScRangeList &rRange, SCTAB nTab) const
Definition: document.cxx:6864
ScRange aEmbedRange
Definition: document.hxx:438
SC_DLLPUBLIC bool ValidNewTabName(const OUString &rName) const
Definition: document.cxx:357
ScRangePairList * GetRowNameRanges()
Definition: document.hxx:820
void EndListeningArea(const ScRange &rRange, bool bGroupListening, SvtListener *pListener)
Definition: documen7.cxx:61
ScStyleSheet * pPreviewCellStyle
Definition: document.hxx:432
SC_DLLPUBLIC void SetColHidden(SCCOL nStartCol, SCCOL nEndCol, SCTAB nTab, bool bHidden)
Definition: document.cxx:4448
void MarkScenario(SCTAB nSrcTab, SCTAB nDestTab, ScMarkData &rDestMark, bool bResetMark=true, ScScenarioFlags nNeededBits=ScScenarioFlags::NONE) const
Definition: documen3.cxx:854
void RemoveSubTotals(SCTAB nTab, ScSubTotalParam &rParam)
Definition: documen3.cxx:773
bool IsEditActionAllowed(sc::ColRowEditAction eAction, SCTAB nTab, SCCOLROW nStart, SCCOLROW nEnd) const
Definition: document10.cxx:966
bool ShrinkToDataArea(SCTAB nTab, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow) const
Shrink a range to only include data area.
Definition: document.cxx:1018
void DecInterpreterTableOpLevel()
Definition: document.hxx:2445
bool bChartListenerCollectionNeedsUpdate
Definition: document.hxx:511
void EnableDelayDeletingBroadcasters(bool set)
If set, cells will not delete their empty broadcasters, avoiding possible extensive mdds vector chang...
Definition: document10.cxx:449
void InvalidatePageBreaks(SCTAB nTab)
Definition: document.cxx:6204
bool SetFormulaCells(const ScAddress &rPos, std::vector< ScFormulaCell * > &rCells)
Definition: documen2.cxx:1158
bool IsSelectionEditable(const ScMarkData &rMark, bool *pOnlyNotBecauseOfMatrix=nullptr) const
Definition: document.cxx:5340
ScDocumentThreadSpecific maNonThreaded
Definition: document.hxx:467
Definition: document.hxx:892
void SetVbaEventProcessor(const css::uno::Reference< css::script::vba::XVBAEventProcessor > &rxVbaEvents)
Definition: document.hxx:2537
void IncInDdeLinkUpdate()
Definition: document.hxx:1043
bool mbFinalTrackFormulas
Definition: document.hxx:571
std::unique_ptr< SfxItemSet > pPreviewFont
Definition: document.hxx:431
SC_DLLPUBLIC void SetVisibleTab(SCTAB nTab)
Definition: document.hxx:880
ScDPObject * GetDPAtBlock(const ScRange &rBlock) const
Definition: documen3.cxx:391
std::unique_ptr< ScDPCollection > pDPCollection
Definition: document.hxx:383
void finalizeOutlineImport()
Definition: document10.cxx:585
void SetNeedsListeningGroups(const std::vector< ScAddress > &rPosArray)
Definition: document10.cxx:520
sal_uInt16 nInterpreterTableOpLevel
Definition: document.hxx:465
SC_DLLPUBLIC void SetScenarioData(SCTAB nTab, const OUString &rComment, const Color &rColor, ScScenarioFlags nFlags)
Definition: documen3.cxx:438
SC_DLLPUBLIC const ScValidationData * GetValidationEntry(sal_uInt32 nIndex) const
Definition: documen4.cxx:873
std::vector< ScTableUniquePtr > TableContainer
Definition: document.hxx:347
SC_DLLPUBLIC bool GetPrintAreaVer(SCTAB nTab, SCCOL nStartCol, SCCOL nEndCol, SCROW &rEndRow, bool bNotes) const
Definition: documen2.cxx:657
size_t GetNoteCount(SCTAB nTab, SCCOL nCol) const
Definition: document.cxx:6711
void SharePooledResources(const ScDocument *pSrcDoc)
Definition: document10.cxx:330
bool IsClipboard() const
Definition: document.hxx:1594
const ScDBData * GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab, ScDBDataPortion ePortion) const
Definition: documen3.cxx:322
bool HasUniformRowHeight(SCTAB nTab, SCROW nRow1, SCROW nRow2) const
Definition: document10.cxx:346
SC_DLLPUBLIC SCROW GetLastFlaggedRow(SCTAB nTab) const
Definition: document.cxx:4539
bool HasManualBreaks(SCTAB nTab) const
Definition: document.cxx:6222
std::unique_ptr< ScSortedRangeCacheMap > mxScSortedRangeCache
Definition: document.hxx:476
SC_DLLPUBLIC bool RenameTab(SCTAB nTab, const OUString &rName, bool bExternalDocument=false)
Definition: document.cxx:837
const ScSheetEvents * GetSheetEvents(SCTAB nTab) const
Definition: documen3.cxx:661
ScInterpreterTableOpParams aLastTableOpParams
Definition: document.hxx:448
void EnsureGraphicNames()
Definition: documen9.cxx:381
std::unique_ptr< ScFormulaParserPool > mxFormulaParserPool
Definition: document.hxx:415
SC_DLLPUBLIC SCROW GetMaxRowCount() const
Definition: document.hxx:895
sal_uInt16 RowDifferences(SCROW nThisRow, SCTAB nThisTab, ScDocument &rOtherDoc, SCROW nOtherRow, SCTAB nOtherTab, SCCOL nMaxCol, const SCCOLROW *pOtherCols)
Definition: documen4.cxx:918
SC_DLLPUBLIC void DoMergeContents(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
Definition: documen3.cxx:2026
static const sal_uInt16 nSrcVer
Definition: document.hxx:478
void AppendTabOnLoad(const OUString &rName)
Definition: document.cxx:453
HardRecalcState GetHardRecalcState() const
Definition: document.hxx:2402
void SetEmbedFontScriptComplex(bool bUse)
Definition: document.hxx:593
formula::FormulaGrammar::Grammar eGrammar
Definition: document.hxx:545
OUString GetLinkOpt(SCTAB nTab) const
Definition: documen3.cxx:523
bool HasFilteredRows(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4482
SC_DLLPUBLIC bool RowFiltered(SCROW nRow, SCTAB nTab, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: document.cxx:4475
formula::VectorRefArray FetchVectorRefArray(const ScAddress &rPos, SCROW nLength)
Definition: document.cxx:1763
SC_DLLPUBLIC bool SetOptimalHeight(sc::RowHeightContext &rCxt, SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bApi)
Definition: document.cxx:4267
rtl::Reference< ScPoolHelper > mxPoolHelper
Definition: document.hxx:358
SC_DLLPUBLIC ScMacroManager * GetMacroManager()
Definition: documen8.cxx:377
void DiscardFormulaGroupContext()
Definition: document.cxx:3542
SC_DLLPUBLIC void CopyStaticToDocument(const ScRange &rSrcRange, SCTAB nDestTab, ScDocument &rDestDoc)
Copy only raw cell values to another document.
Definition: document.cxx:2214
SC_DLLPUBLIC void AddPrintRange(SCTAB nTab, const ScRange &rNew)
Adds a new print ranges.
Definition: document.cxx:6297
SCROW GetRowForHeight(SCTAB nTab, tools::Long nHeight) const
Given the height i.e.
Definition: document.cxx:4193
void FillTabMarked(SCTAB nSrcTab, const ScMarkData &rMark, InsertDeleteFlags nFlags, ScPasteFunc nFunction, bool bSkipEmpty, bool bAsLink)
Definition: document.cxx:3325
sal_uInt8 nAsianKerning
Definition: document.hxx:536
SC_DLLPUBLIC void SetTextCell(const ScAddress &rPos, const OUString &rStr)
Call this if you are not sure whether to put this as an edit text or a simple text.
Definition: document.cxx:3452
bool InsertNewRangeName(const OUString &rName, const ScAddress &rPos, const OUString &rExpr)
Insert a new named expression to the global scope.
Definition: documen3.cxx:218
void SetSrcCharSet(rtl_TextEncoding eNew)
Definition: document.hxx:2139
sal_uInt16 nInterpretLevel
Definition: document.hxx:463
ScInterpreterContext maInterpreterContext
Definition: document.hxx:473
static SC_DLLPUBLIC bool ValidTabName(const OUString &rName)
Definition: document.cxx:318
SC_DLLPUBLIC ScDocumentPool * GetPool()
Definition: document.cxx:6050
SC_DLLPUBLIC void EnsureTable(SCTAB nTab)
Definition: documen2.cxx:577
sal_Int32 mnImagePreferredDPI
Definition: document.hxx:566
DECL_LINK(TrackTimeHdl, Timer *, void)
bool IsCutMode()
Definition: document.cxx:2030
SC_DLLPUBLIC void ApplyPatternAreaTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, const ScPatternAttr &rAttr)
Definition: document.cxx:4770
void GetSearchAndReplaceStart(const SvxSearchItem &rSearchItem, SCCOL &rCol, SCROW &rRow)
Definition: documen3.cxx:1213
bool ValidAddress(const ScAddress &rAddress) const
Definition: document.hxx:904
const SfxPoolItem * GetEffItem(SCCOL nCol, SCROW nRow, SCTAB nTab, sal_uInt16 nWhich) const
Definition: documen4.cxx:751
void InvalidateLastTableOpParams()
Definition: document.hxx:2453
void SetExpandRefs(bool bVal)
Definition: documen2.cxx:327
void SetCalcNotification(SCTAB nTab)
Definition: documen3.cxx:722
void DecXMLImportedFormulaCount(sal_uInt64 nVal)
Definition: document.hxx:2465
SC_DLLPUBLIC formula::FormulaGrammar::AddressConvention GetAddressConvention() const
Definition: documen3.cxx:492
ScRangeData * FindRangeNameBySheetAndIndex(SCTAB nTab, sal_uInt16 nIndex) const
Find a named expression / range name in either global or a local scope.
Definition: documen3.cxx:269
std::unique_ptr< ScBroadcastAreaSlotMachine > pBASM
Definition: document.hxx:390
Definition: document.hxx:893
const ScStyleSheet * GetStyle(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: document.cxx:4868
bool IsAdjustHeightLocked() const
Definition: document.hxx:1599
SC_DLLPUBLIC bool HasPivotTable() const
Definition: documen3.cxx:360
bool ColFiltered(SCCOL nCol, SCTAB nTab) const
Definition: document.cxx:4489
bool ValidColRowTab(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: document.hxx:902
SC_DLLPUBLIC void ClearPrintRanges(SCTAB nTab)
Removes all print ranges.
Definition: document.cxx:6291
void BeginUnoRefUndo()
Definition: documen3.cxx:990
SC_DLLPUBLIC void CompareDocument(ScDocument &rOtherDoc)
Definition: documen4.cxx:1095
bool IsPageStyleInUse(std::u16string_view rStrPageStyle, SCTAB *pInTab)
Definition: documen8.cxx:310
SC_DLLPUBLIC void ShowRow(SCROW nRow, SCTAB nTab, bool bShow)
Definition: document.cxx:4303
SC_DLLPUBLIC void CopyStdStylesFrom(const ScDocument &rSrcDoc)
Definition: documen8.cxx:288
void RemoveFromFormulaTree(ScFormulaCell *pCell)
Definition: documen7.cxx:281
std::unique_ptr< ScChangeViewSettings > pChangeViewSettings
Definition: document.hxx:398
ScValidationDataList * GetValidationList()
Definition: document.hxx:1880
SC_DLLPUBLIC void CheckLinkFormulaNeedingCheck(const ScTokenArray &rCode)
Check token array and set link check if ocDde/ocWebservice is contained.
Definition: documen8.cxx:1149
SC_DLLPUBLIC ScDocument(ScDocumentMode eMode=SCDOCMODE_DOCUMENT, SfxObjectShell *pDocShell=nullptr)
Definition: documen2.cxx:114
SC_DLLPUBLIC ScDBData * GetAnonymousDBData()
Definition: document.cxx:313
std::shared_ptr< sc::FormulaGroupContext > & GetFormulaGroupContext()
Definition: document.cxx:3533
SC_DLLPUBLIC void GetChartRanges(std::u16string_view rChartName, std::vector< ScRangeList > &rRanges, const ScDocument &rSheetNameDoc)
Definition: documen5.cxx:168
SC_DLLPUBLIC ScFieldEditEngine & GetEditEngine()
Definition: documen2.cxx:483
css::uno::Sequence< css::sheet::TablePageBreakData > GetRowBreakData(SCTAB nTab) const
Definition: document.cxx:4408
ScDetOpList * GetDetOpList() const
Definition: document.hxx:1852
bool HasLink(std::u16string_view rDoc, std::u16string_view rFilter, std::u16string_view rOptions) const
Definition: documen3.cxx:552
rtl::Reference< XColorList > pColorList
Definition: document.hxx:375
std::unique_ptr< ScMacroManager > mpMacroMgr
Definition: document.hxx:411
SCROW GetLastChangedRowFlagsWidth(SCTAB nTab) const
Definition: document.cxx:4553
void AddUnoRefChange(sal_Int64 nId, const ScRangeList &rOldRanges)
Definition: documen3.cxx:1002
void SetTableOpDirty(const ScRange &)
Definition: document.cxx:3862
SC_DLLPUBLIC void CalcAfterLoad(bool bStartListening=true)
Definition: document.cxx:4029
std::vector< ScInterpreterTableOpParams * > m_TableOpList
list of ScInterpreterTableOpParams currently in use
Definition: document.hxx:447
SC_DLLPUBLIC void DoMerge(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, bool bDeleteCaptions=true)
Definition: documen3.cxx:2063
bool mbEmbedUsedFontsOnly
Definition: document.hxx:561
SC_DLLPUBLIC double GetValue(const ScAddress &rPos) const
Definition: document.cxx:3626
SC_DLLPUBLIC std::vector< OUString > GetAllTableNames() const
Definition: document.cxx:270
SC_DLLPUBLIC ScChartListenerCollection * GetChartListenerCollection() const
Definition: document.hxx:2233
bool ContainsNotesInRange(const ScRangeList &rRange) const
Definition: document.cxx:6870
void UpdateReference(sc::RefUpdateContext &rCxt, ScDocument *pUndoDoc=nullptr, bool bIncludeDraw=true, bool bUpdateNoteCaptionPos=true)
Definition: documen3.cxx:1008
void BroadcastCells(const ScRange &rRange, SfxHintId nHint, bool bBroadcastSingleBroadcasters=true)
Definition: documen7.cxx:158
SC_DLLPUBLIC ScPostIt * GetNote(const ScAddress &rPos)
Definition: document.cxx:6587
bool DoSubTotals(SCTAB nTab, ScSubTotalParam &rParam)
Definition: documen3.cxx:779
ScSortedRangeCache & GetSortedRangeCache(const ScRange &rRange, const ScQueryParam &param, ScInterpreterContext *pContext)
Definition: documen2.cxx:1237
bool IsEmbedFonts() const
Definition: document.hxx:583
bool HasDetectiveOperations() const
Definition: documen4.cxx:887
void AddDetectiveOperation(const ScDetOpData &rData)
Definition: documen4.cxx:892
bool Solver(SCCOL nFCol, SCROW nFRow, SCTAB nFTab, SCCOL nVCol, SCROW nVRow, SCTAB nVTab, const OUString &sValStr, double &nX)
(Goal Seek) Find a value of x that is a root of f(x)
Definition: documen4.cxx:72
bool bHasForcedFormulas
Definition: document.hxx:513
std::unique_ptr< ScRefreshTimerControl > const & GetRefreshTimerControlAddress() const
Definition: document.hxx:2522
bool mbFormulaGroupCxtBlockDiscard
Definition: document.hxx:364
SC_DLLPUBLIC sc::Sparkline * CreateSparkline(ScAddress const &rPosition, std::shared_ptr< sc::SparklineGroup > const &pSparklineGroup)
Definition: document.cxx:6508
void DeleteConditionalFormat(sal_uLong nIndex, SCTAB nTab)
Definition: documen4.cxx:881
void CompileXML()
Definition: document.cxx:3976
SC_DLLPUBLIC const ScDrawLayer * GetDrawLayer() const
Definition: document.hxx:1085
std::unique_ptr< ScAutoNameCache > pAutoNameCache
Definition: document.hxx:429
bool HasClipFilteredRows()
Definition: document.cxx:3216
SCROW GetNextDifferentChangedRowFlagsWidth(SCTAB nTab, SCROW nStart) const
Definition: document.cxx:4580
SC_DLLPUBLIC void TransposeClip(ScDocument *pTransClip, InsertDeleteFlags nFlags, bool bAsLink, bool bIncludeFiltered)
Definition: document.cxx:2295
SC_DLLPUBLIC void SetPrintEntireSheet(SCTAB nTab)
Marks the specified sheet to be printed completely.
Definition: document.cxx:6303
SC_DLLPUBLIC bool CreateDdeLink(const OUString &rAppl, const OUString &rTopic, const OUString &rItem, sal_uInt8 nMode, const ScMatrixRef &pResults)
Tries to find a DDE link or creates a new, if not extant.
Definition: documen8.cxx:988
CharCompressType GetAsianCompression() const
Definition: documen9.cxx:623
void CreateColumnIfNotExists(SCTAB nTab, SCCOL nCol)
Definition: document10.cxx:992
SC_DLLPUBLIC const ScDBData * GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) const
Definition: documen3.cxx:338
void FillInfo(ScTableInfo &rTabInfo, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, SCTAB nTab, double fColScale, double fRowScale, bool bPageMode, bool bFormulaMode, const ScMarkData *pMarkData=nullptr)
Definition: fillinfo.cxx:355
SC_DLLPUBLIC sal_Int16 GetNamedRangesLockCount() const
Definition: document.hxx:1608
bool IsInDdeLinkUpdate() const
Definition: document.hxx:1045
SC_DLLPUBLIC const ScRange * GetPrintRange(SCTAB nTab, sal_uInt16 nPos)
Definition: document.cxx:6268
SC_DLLPUBLIC bool InitColumnBlockPosition(sc::ColumnBlockPosition &rBlockPos, SCTAB nTab, SCCOL nCol)
Definition: document.cxx:2628
SC_DLLPUBLIC void EnableUndo(bool bVal)
Definition: document.cxx:6456
SfxBindings * GetViewBindings()
Definition: documen8.cxx:1183
const T * GetEffItem(SCCOL nCol, SCROW nRow, SCTAB nTab, TypedWhichId< T > nWhich) const
Definition: document.hxx:1832
std::unique_ptr< ScPatternAttr > pSelectionAttr
Definition: document.hxx:385
std::set< Color > GetDocColors()
Definition: document10.cxx:187
ScLookupCache & GetLookupCache(const ScRange &rRange, ScInterpreterContext *pContext)
Creates a ScLookupCache cache for the range if it doesn't already exist.
Definition: documen2.cxx:1214
ScAutoNameCache * GetAutoNameCache()
Definition: document.hxx:1388
std::unique_ptr< SfxBroadcaster > pUnoBroadcaster
Definition: document.hxx:395
bool IsDelayedDeletingBroadcasters() const
Definition: document.hxx:1439
void PrepareFormulaCalc()
Call this before any operations that might trigger one or more formula cells to get calculated.
Definition: document.cxx:2458
void KeyInput()
Definition: documen8.cxx:1175
void MergeContextBackIntoNonThreadedContext(ScInterpreterContext &threadedContext, int threadNumber)
Definition: document.cxx:6915
SC_DLLPUBLIC void DeleteSelection(InsertDeleteFlags nDelFlag, const ScMarkData &rMark, bool bBroadcast=true)
Definition: document.cxx:5921
bool HasFormulaCell(const ScRange &rRange) const
Check if there is at least one formula cell in specified range.
Definition: document10.cxx:462
sal_uInt16 GetSheetOptimalMinRowHeight(SCTAB nTab) const
Definition: document.cxx:928
void PageStyleModified(SCTAB nTab, const OUString &rNewName)
Definition: document.cxx:6164
SC_DLLPUBLIC void PreprocessDBDataUpdate()
Definition: document10.cxx:307
SC_DLLPUBLIC void SetDocOptions(const ScDocOptions &rOpt)
Definition: documen3.cxx:1942
bool HasScenarioRange(SCTAB nTab, const ScRange &rRange) const
Definition: documen3.cxx:866
SC_DLLPUBLIC void SetColBreak(SCCOL nCol, SCTAB nTab, bool bPage, bool bManual)
Definition: document.cxx:4390
void AddTableOpFormulaCell(ScFormulaCell *)
Definition: document.cxx:3919
SC_DLLPUBLIC bool IsNegativePage(SCTAB nTab) const
Definition: document.cxx:982
SC_DLLPUBLIC void ApplySelectionStyle(const ScStyleSheet &rStyle, const ScMarkData &rMark)
Definition: document.cxx:4830
void SetStorageGrammar(formula::FormulaGrammar::Grammar eGrammar)
Should only be GRAM_PODF or GRAM_ODFF.
Definition: documen2.cxx:251
bool mbExecuteLinkEnabled
Definition: document.hxx:550
void DelayFormulaGrouping(bool delay)
If set, joining cells into shared formula groups will be delayed until reset again (RegroupFormulaCel...
Definition: document10.cxx:380
SC_DLLPUBLIC bool ApplyFlagsTab(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab, ScMF nFlags)
Definition: document.cxx:4970
void RepaintRange(const ScRange &rRange)
Definition: documen8.cxx:689
SC_DLLPUBLIC double RoundValueAsShown(double fVal, sal_uInt32 nFormat, const ScInterpreterContext *pContext=nullptr) const
Definition: documen4.cxx:627
SC_DLLPUBLIC SCROW GetLastDataRow(SCTAB nTab, SCCOL nCol1, SCCOL nCol2, SCROW nLastRow) const
Return the last non-empty row position in given columns that's no greater than the initial last row p...
Definition: document.cxx:1063
ScInterpreterContext & GetNonThreadedContext() const
Definition: document.hxx:617
SC_DLLPUBLIC void PreprocessRangeNameUpdate()
Definition: document10.cxx:295
void SetLayoutStrings(bool bSet)
Definition: document.hxx:2636
void SetClipArea(const ScRange &rArea, bool bCut=false)
Definition: document.cxx:3132
bool IsEmbedFontScriptComplex() const
Definition: document.hxx:587
bool HasDetectiveObjects(SCTAB nTab) const
Definition: documen9.cxx:504
formula::FormulaGrammar::Grammar GetStorageGrammar() const
Definition: document.hxx:2543
std::unique_ptr< ScValidationDataList > pValidationList
Definition: document.hxx:376
void CopyScenario(SCTAB nSrcTab, SCTAB nDestTab, bool bNewScenario=false)
Definition: documen3.cxx:811
bool IsDocEditable() const
Definition: documen3.cxx:1899
void SetConsolidateDlgData(std::unique_ptr< ScConsolidateParam > pData)
Definition: documen2.cxx:1168
bool ShrinkToUsedDataArea(bool &o_bShrunk, SCTAB nTab, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow, bool bColumnsOnly, bool bStickyTopRow=false, bool bStickyLeftCol=false, ScDataAreaExtras *pDataAreaExtras=nullptr) const
Shrink a range to only include used data area.
Definition: document.cxx:1049
void RemoveLookupCache(ScLookupCache &rCache)
Only ScLookupCache dtor uses RemoveLookupCache(), do not use elsewhere!
Definition: documen2.cxx:1271
SC_DLLPUBLIC ScBreakType HasRowBreak(SCROW nRow, SCTAB nTab) const
Definition: document.cxx:4355
ScRangePairListRef xRowNameRanges
Definition: document.hxx:421
ScRowBreakIterator * GetRowBreakIterator(SCTAB nTab) const
Definition: document.cxx:6379
void SetSubTotalCellsDirty(const ScRange &rDirtyRange)
Definition: document.cxx:6412
SC_DLLPUBLIC SvtScriptType GetStringScriptType(const OUString &rString)
Definition: documen6.cxx:76
bool bImportingXML
Definition: document.hxx:505
SC_DLLPUBLIC ScExternalRefManager * GetExternalRefManager() const
Definition: documen3.cxx:625
SC_DLLPUBLIC sal_uInt16 GetOriginalHeight(SCROW nRow, SCTAB nTab) const
Definition: document.cxx:4153
bool IsInLayoutStrings() const
Definition: document.hxx:2635
sal_Int32 GetMaxStringLen(SCTAB nTab, SCCOL nCol, SCROW nRowStart, SCROW nRowEnd, rtl_TextEncoding eCharSet) const
Maximum string length of a column, e.g.
Definition: documen4.cxx:586
SC_DLLPUBLIC OutputDevice * GetRefDevice()
Definition: documen8.cxx:199
SC_DLLPUBLIC OUString MaxRowAsString() const
Definition: document.hxx:896
void SetTabNameOnLoad(SCTAB nTab, const OUString &rName)
Definition: document.cxx:465
SC_DLLPUBLIC void GetTiledRenderingArea(SCTAB nTab, SCCOL &rEndCol, SCROW &rEndRow) const
Return the number of columns / rows that should be visible for the tiled rendering.
Definition: documen2.cxx:702
void UpdateExternalRefLinks(weld::Window *pWin)
Definition: documen8.cxx:789
SC_DLLPUBLIC bool DeleteSparkline(ScAddress const &rPosition)
Definition: document.cxx:6516
SC_DLLPUBLIC void SetChangeViewSettings(const ScChangeViewSettings &rNew)
Definition: documen2.cxx:1173
size_t mnMutationGuardFlags
Definition: document.hxx:577
SC_DLLPUBLIC void SetAutoNameCache(std::unique_ptr< ScAutoNameCache > pCache)
Definition: document.cxx:6886
std::unique_ptr< ScUnoRefList > EndUnoRefUndo()
Definition: documen3.cxx:996
SC_DLLPUBLIC void GetScenarioData(SCTAB nTab, OUString &rComment, Color &rColor, ScScenarioFlags &rFlags) const
Definition: documen3.cxx:469
SC_DLLPUBLIC void GetAllTabRangeNames(ScRangeName::TabNameCopyMap &rRangeNames) const
Get all range names that are local to each table.
Definition: documen3.cxx:107
bool HasOLEObjectsInArea(const ScRange &rRange, const ScMarkData *pTabMark=nullptr)
Definition: documen9.cxx:264
bool IsEmbedded() const
Definition: document.hxx:952
std::unique_ptr< sc::DocumentLinkManager > mpDocLinkMgr
Definition: document.hxx:361
bool IsDelayedFormulaGrouping() const
Definition: document.hxx:1425
sal_uInt32 nAdjustHeightLock
Definition: document.hxx:544
void EnableExecuteLink(bool bVal)
Definition: document.hxx:1603
void LimitChartArea(SCTAB nTab, SCCOL &rStartCol, SCROW &rStartRow, SCCOL &rEndCol, SCROW &rEndRow)
Definition: document.cxx:1091
ScFormulaCell * pEOFormulaTree
Definition: document.hxx:387
SC_DLLPUBLIC bool EnsureFormulaCellResults(const ScRange &rRange, bool bSkipRunning=false)
Make sure all of the formula cells in the specified range have been fully calculated.
void RemoveMerge(SCCOL nCol, SCROW nRow, SCTAB nTab)
Definition: documen3.cxx:2080
void EndListeningGroups(const std::vector< ScAddress > &rPosArray)
Definition: document10.cxx:505
SCROW GetHiddenRowCount(SCROW nRow, SCTAB nTab) const
Definition: document.cxx:4216
bool mbIdleEnabled
Definition: document.hxx:509
SC_DLLPUBLIC void GetFilterEntriesArea(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bCaseSens, ScFilterEntries &rFilterEntries)
Entries for Filter dialog.
Definition: documen3.cxx:1608
ScRangePairListRef & GetRowNameRangesRef()
Definition: document.hxx:822
void CopyTabProtection(SCTAB nTabSrc, SCTAB nTabDest)
Definition: documen3.cxx:1928
void UnshareFormulaCells(SCTAB nTab, SCCOL nCol, std::vector< SCROW > &rRows)
Make specified formula cells non-grouped.
Definition: document10.cxx:355
void SetStreamValid(SCTAB nTab, bool bSet, bool bIgnoreLock=false)
Definition: document.cxx:904
void AddDelayedFormulaGroupingCell(const ScFormulaCell *cell)
To be used only by SharedFormulaUtil::joinFormulaCells().
Definition: document10.cxx:395
OUString GetCopyTabName(SCTAB nTab) const
Definition: document.cxx:215
void StylesToNames()
Definition: document.cxx:6112
void ReservePatternCount(SCTAB nTab, SCCOL nCol, SCSIZE nReserve)
Definition: documen3.cxx:2118
void FillTab(const ScRange &rSrcArea, const ScMarkData &rMark, InsertDeleteFlags nFlags, ScPasteFunc nFunction, bool bSkipEmpty, bool bAsLink)
Definition: document.cxx:3257
SC_DLLPUBLIC void CopyToClip(const ScClipParam &rClipParam, ScDocument *pClipDoc, const ScMarkData *pMarks, bool bKeepScenarioFlags, bool bIncludeObjects)
Definition: document.cxx:2142
bool IsInLinkUpdate() const
Definition: documen8.cxx:784
bool mbTrackFormulasPending
Definition: document.hxx:570
ScDocument(const ScDocument &r)=delete
SC_DLLPUBLIC const ScViewOptions & GetViewOptions() const
Definition: documen3.cxx:1951
SC_DLLPUBLIC void DoEmptyBlock(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
Definition: documen3.cxx:2050
SC_DLLPUBLIC const ScMatrix * GetDdeLinkResultMatrix(size_t nDdePos) const
Returns the result matrix of the specified DDE link.
Definition: documen8.cxx:982
void AddUnoObject(SfxListener &rObject)
Definition: documen3.cxx:901
bool SetLOKFreezeRow(SCROW nFreezeRow, SCTAB nTab)
SC_DLLPUBLIC void SetRowHeightRange(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, sal_uInt16 nNewHeight)
Definition: document.cxx:4104
SC_DLLPUBLIC bool IsUserInteractionEnabled() const
Definition: document.hxx:1606
void UpdStlShtPtrsFrmNms()
Definition: document.cxx:6099
bool GetNoListening() const
Definition: document.hxx:2230
void SetDocShellRecalc(bool bSet)
Definition: document.hxx:2633
void AddSubTotalCell(ScFormulaCell *pCell)
Definition: document.cxx:6386
ScRecursionHelper & GetRecursionHelper()
Definition: document.cxx:6893
bool mbUserInteractionEnabled
Definition: document.hxx:553
SC_DLLPUBLIC void ApplyPattern(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScPatternAttr &rAttr)
Definition: document.cxx:4747
void ResetCalcNotifications()
Definition: documen3.cxx:729
void SetChartListenerCollection(std::unique_ptr< ScChartListenerCollection >, bool bSetChartRangeLists)
Definition: documen3.cxx:412
bool HasLinkFormulaNeedingCheck() const
Definition: document.hxx:2213
void SetInLinkUpdate(bool bSet)
Definition: documen8.cxx:776
void SetEmbedFontScriptAsian(bool bUse)
Definition: document.hxx:592
SC_DLLPUBLIC SfxItemPool * GetEditPool() const
Definition: documen2.cxx:473
std::unique_ptr< ScDetOpList > pDetOpList
Definition: document.hxx:393
void SetCondFormList(ScConditionalFormatList *pList, SCTAB nTab)
Definition: documen4.cxx:867
std::unique_ptr< ScFieldEditEngine > CreateFieldEditEngine()
Definition: documen2.cxx:1181
SC_DLLPUBLIC void ShowCol(SCCOL nCol, SCTAB nTab, bool bShow)
Definition: document.cxx:4297
void Broadcast(const ScHint &rHint)
Broadcast wrapper, calls rHint.GetCell()->Broadcast() and AreaBroadcast() and TrackFormulas() Preferr...
Definition: documen7.cxx:117
SC_DLLPUBLIC bool CreateQueryParam(const ScRange &rRange, ScQueryParam &rQueryParam)
Definition: documen3.cxx:1485
SC_DLLPUBLIC bool GetAutoCalc() const
Definition: document.hxx:1413
SCCOL GetLastChangedColFlagsWidth(SCTAB nTab) const
Definition: document.cxx:4546
OUString GetUpperCellString(SCCOL nCol, SCROW nRow, SCTAB nTab)
Definition: documen3.cxx:1477
SC_DLLPUBLIC bool HasStringData(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: document.cxx:3743
void SetCodeName(const OUString &r)
Definition: document.hxx:610
SC_DLLPUBLIC void GetAllNoteEntries(std::vector< sc::NoteEntry > &rNotes) const
Definition: document.cxx:6837
bool IsValidAsianCompression() const
Definition: documen9.cxx:618
void SetEmbedFonts(bool bUse)
Definition: document.hxx:589
bool IsInVBAMode() const
Definition: document.cxx:6477
SC_DLLPUBLIC const ScPatternAttr * GetMostUsedPattern(SCCOL nCol, SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4734
void SetLanguage(LanguageType eLatin, LanguageType eCjk, LanguageType eCtl)
Definition: documen3.cxx:1970
std::unique_ptr< ScPatternAttr > CreateSelectionPattern(const ScMarkData &rMark, bool bDeep=true)
Definition: document.cxx:5015
SC_DLLPUBLIC void InitUndoSelected(const ScDocument &rSrcDoc, const ScMarkData &rTabSelection, bool bColInfo=false, bool bRowInfo=false)
Definition: document.cxx:1943
SC_DLLPUBLIC void CalcFormulaTree(bool bOnlyForced=false, bool bProgressBar=true, bool bSetAllDirty=true)
Calculate formula cells that are on the formula tree either partially, or in full.
Definition: documen7.cxx:328
bool IsStyleSheetUsed(const ScStyleSheet &rStyle) const
Definition: document.cxx:4938
bool bLoadingMedium
Definition: document.hxx:504
ScChangeViewSettings * GetChangeViewSettings() const
Definition: document.hxx:2243
std::unique_ptr< ScExtDocOptions > pExtDocOptions
Definition: document.hxx:425
bool HasRangeOverflow() const
Definition: document.hxx:2219
SC_DLLPUBLIC std::unique_ptr< ScPostIt > ReleaseNote(const ScAddress &rPos)
Definition: document.cxx:6689
SC_DLLPUBLIC void SetNumberFormat(const ScAddress &rPos, sal_uInt32 nNumberFormat)
Definition: document.cxx:3682
SC_DLLPUBLIC bool SetString(SCCOL nCol, SCROW nRow, SCTAB nTab, const OUString &rString, const ScSetStringParam *pParam=nullptr)
Definition: document.cxx:3391
void StartTrackTimer()
Definition: documen2.cxx:332
void RestorePrintRanges(const ScPrintRangeSaver &rSaver)
Definition: document.cxx:6331
void ReplaceStyle(const SvxSearchItem &rSearchItem, SCCOL nCol, SCROW nRow, SCTAB nTab, const ScMarkData &rMark)
Definition: documen4.cxx:546
ScRangePairList * GetColNameRanges()
Definition: document.hxx:819
void GetFilterEntries(SCCOL nCol, SCROW nRow, SCTAB nTab, ScFilterEntries &rFilterEntries)
Get a list of unique strings to use in filtering criteria.
Definition: documen3.cxx:1556
void StartChangeTracking()
Definition: documen2.cxx:277
bool bExpandRefs
Definition: document.hxx:520
void ApplySelectionLineStyle(const ScMarkData &rMark, const ::editeng::SvxBorderLine *pLine, bool bColorOnly)
Definition: document.cxx:4852
TableContainer maTabs
Definition: document.hxx:378
SC_DLLPUBLIC bool HasSparkline(ScAddress const &rPosition)
Definition: document.cxx:6503
ScExtDocOptions * GetExtDocOptions()
Definition: document.hxx:644
SCCOL GetLOKFreezeCol(SCTAB nTab) const
void EndListeningIntersectedGroups(sc::EndListeningContext &rCxt, const ScRange &rRange, std::vector< ScAddress > *pGroupPos)
Definition: document10.cxx:490
SC_DLLPUBLIC sc::ExternalDataMapper & GetExternalDataMapper()
Definition: documen5.cxx:529
SC_DLLPUBLIC OUString GetPageStyle(SCTAB nTab) const
Definition: document.cxx:6176
void SetName(const OUString &r)
Definition: document.hxx:608
SC_DLLPUBLIC void SetGrammar(formula::FormulaGrammar::Grammar eGram)
Definition: documen3.cxx:497
bool HasAnyCalcNotification() const
Definition: documen3.cxx:706
LanguageType eLanguage
Definition: document.hxx:452
bool bIsClip
Definition: document.hxx:494
bool IsStreamValid(SCTAB nTab) const
Definition: document.cxx:897
void LimitChartIfAll(ScRangeListRef &rRangeList)
Definition: document.cxx:1098
SC_DLLPUBLIC void InitUndo(const ScDocument &rSrcDoc, SCTAB nTab1, SCTAB nTab2, bool bColInfo=false, bool bRowInfo=false)
Definition: document.cxx:1975
bool IsFunctionAccess() const
Definition: document.hxx:1597
SC_DLLPUBLIC bool CopyOneCellFromClip(sc::CopyFromClipContext &rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2)
Definition: document10.cxx:83
void CopyRangeNamesToClip(ScDocument *pClipDoc, const ScRange &rClipRange, const ScMarkData *pMarks)
Definition: document.cxx:2427
SC_DLLPUBLIC bool HasPrintRange()
Definition: document.cxx:6239
void SetAsianKerning(bool bNew)
Definition: documen9.cxx:653
bool bDetectiveDirty
Definition: document.hxx:522
void DeleteSelectionTab(SCTAB nTab, InsertDeleteFlags nDelFlag, const ScMarkData &rMark)
Definition: document.cxx:5979
void GetCellChangeTrackNote(const ScAddress &cell, OUString &strTrackText, bool &pbLeftEdge)
Definition: documen2.cxx:1380
bool mbLayoutStrings
Definition: document.hxx:575
SC_DLLPUBLIC void DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, InsertDeleteFlags nDelFlag, bool bBroadcast=true, sc::ColumnSpanSet *pBroadcastSpans=nullptr)
Definition: document.cxx:1859
SC_DLLPUBLIC bool HasColHeader(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
Definition: documen3.cxx:1526
std::unique_ptr< ScExternalRefManager > pExternalRefMgr
Definition: document.hxx:410
void SetAllFormulasDirty(const sc::SetFormulaDirtyContext &rCxt)
Definition: document.cxx:3819
bool UpdateOutlineRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab, bool bShow)
Definition: documen3.cxx:1424
formula::FormulaGrammar::Grammar eStorageGrammar
The compiler grammar used in document storage.
Definition: document.hxx:459
void DeleteRow(SCCOL nStartCol, SCTAB nStartTab, SCCOL nEndCol, SCTAB nEndTab, SCROW nStartRow, SCSIZE nSize, ScDocument *pRefUndoDoc=nullptr, bool *pUndoOutline=nullptr, const ScMarkData *pTabMark=nullptr)
Definition: document.cxx:1345
SC_DLLPUBLIC void ExtendTotalMerge(ScRange &rRange) const
Definition: document.cxx:5606
void DelBroadcastAreasInRange(const ScRange &rRange)
Definition: documen7.cxx:215
sal_uInt16 GetCommonWidth(SCCOL nEndCol, SCTAB nTab) const
Definition: document.cxx:4145
FormulaError GetErrCode(const ScAddress &) const
Definition: document.cxx:4066
SC_DLLPUBLIC bool GetPrintAreaHor(SCTAB nTab, SCROW nStartRow, SCROW nEndRow, SCCOL &rEndCol) const
Definition: documen2.cxx:635
sal_uInt32 GetDocumentID() const
an ID unique to each document instance
Definition: documen2.cxx:268
sal_uInt8 nInDdeLinkUpdate
Definition: document.hxx:540
ScBroadcastAreaSlotMachine * GetBASM() const
Definition: document.hxx:2231
void GetSelectionFrame(const ScMarkData &rMark, SvxBoxItem &rLineOuter, SvxBoxInfoItem &rLineInner)
Definition: document.cxx:5064
SC_DLLPUBLIC void SetViewOptions(const ScViewOptions &rOpt)
Definition: documen3.cxx:1957
SC_DLLPUBLIC ScBreakType HasColBreak(SCCOL nCol, SCTAB nTab) const
Definition: document.cxx:4369
const css::uno::Reference< css::script::vba::XVBAEventProcessor > & GetVbaEventProcessor() const
Definition: document.hxx:2539
SC_DLLPUBLIC void SetDrawPageSize(SCTAB nTab)
Definition: documen9.cxx:203
void DeleteObjectsInSelection(const ScMarkData &rMark)
Definition: documen9.cxx:256
SC_DLLPUBLIC ScDrawLayer * GetDrawLayer()
Definition: document.hxx:1084
SC_DLLPUBLIC void ApplySelectionPattern(const ScPatternAttr &rAttr, const ScMarkData &rMark, ScEditDataArray *pDataArray=nullptr, bool *pIsChanged=nullptr)
Definition: document.cxx:5864
SC_DLLPUBLIC bool GetHashCode(SCTAB nTab, sal_Int64 &rHashCode) const
Definition: document.cxx:194
SC_DLLPUBLIC void ShowRows(SCROW nRow1, SCROW nRow2, SCTAB nTab, bool bShow)
Definition: document.cxx:4309
SCROW LastNonFilteredRow(SCROW nStartRow, SCROW nEndRow, SCTAB nTab) const
Definition: document.cxx:4509
bool IsPendingRowHeights(SCTAB nTab) const
Definition: document.cxx:915
sal_uInt16 GetOptimalColWidth(SCCOL nCol, SCTAB nTab, OutputDevice *pDev, double nPPTX, double nPPTY, const Fraction &rZoomX, const Fraction &rZoomY, bool bFormula, const ScMarkData *pMarkData=nullptr, const ScColWidthParam *pParam=nullptr)
Definition: document.cxx:4240
SC_DLLPUBLIC bool RowHidden(SCROW nRow, SCTAB nTab, SCROW *pFirstRow=nullptr, SCROW *pLastRow=nullptr) const
Definition: document.cxx:4416
bool bIsFunctionAccess
Definition: document.hxx:496
void RemoveFromFormulaTrack(ScFormulaCell *pCell)
Definition: documen7.cxx:469
void ExtendMergeSel(SCCOL nStartCol, SCROW nStartRow, SCCOL &rEndCol, SCROW &rEndRow, const ScMarkData &rMark, bool bRefresh=false)
Definition: document.cxx:5528
bool bAutoCalcShellDisabled
Definition: document.hxx:488
SC_DLLPUBLIC void CreateValidTabName(OUString &rName) const
Definition: document.cxx:375
HardRecalcState eHardRecalcState
Definition: document.hxx:480
bool HasAnyDraw(SCTAB nTab, const tools::Rectangle &rMMRect) const
Definition: documen9.cxx:356
void ExtendHidden(SCCOL &rX1, SCROW &rY1, SCCOL &rX2, SCROW &rY2, SCTAB nTab)
Definition: document.cxx:4676
void SetDetOpList(std::unique_ptr< ScDetOpList > pNew)
Definition: documen4.cxx:905
sal_Int32 GetImagePreferredDPI()
Definition: document.hxx:596
void GetDataEntries(SCCOL nCol, SCROW nRow, SCTAB nTab, std::vector< ScTypedStrData > &rStrings, bool bValidation=false)
Entries for selection list listbox (no numbers/formulas)
Definition: documen3.cxx:1622
SC_DLLPUBLIC CRFlags GetRowFlags(SCROW nRow, SCTAB nTab) const
Definition: document.cxx:4335
std::unique_ptr< EditTextObject > CreateSharedStringTextObject(const svl::SharedString &rSS)
Definition: documen2.cxx:514
std::unique_ptr< ScChangeTrack > pChangeTrack
Definition: document.hxx:394
void SetPrinter(VclPtr< SfxPrinter > const &pNewPrinter)
Definition: documen8.cxx:142
SC_DLLPUBLIC std::shared_ptr< sc::SparklineGroup > SearchSparklineGroup(tools::Guid const &rGuid)
Definition: document.cxx:6566
ScAddress GetNotePosition(size_t nIndex) const
Definition: document.cxx:6775
void DisposeFieldEditEngine(std::unique_ptr< ScFieldEditEngine > &rpEditEngine)
Definition: documen2.cxx:1203
SC_DLLPUBLIC bool HasNote(const ScAddress &rPos) const
Definition: document.cxx:6618
SC_DLLPUBLIC const ScRangeList * GetScenarioRanges(SCTAB nTab) const
Definition: documen3.cxx:872
SC_DLLPUBLIC ScConditionalFormat * GetCondFormat(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: documen4.cxx:837
void DoAutoOutline(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, SCTAB nTab)
Definition: documen3.cxx:760
const std::shared_ptr< SvxForbiddenCharactersTable > & GetForbiddenCharacters() const
Definition: documen9.cxx:604
SvNumberFormatterIndexTable * pFormatExchangeList
Definition: document.hxx:377
ScUndoManager * mpUndoManager
Definition: document.hxx:368
SC_DLLPUBLIC void GetAllColBreaks(std::set< SCCOL > &rBreaks, SCTAB nTab, bool bPage, bool bManual) const
Definition: document.cxx:4349
SC_DLLPUBLIC void SetRepeatRowRange(SCTAB nTab, std::optional< ScRange > oNew)
Definition: document.cxx:6315
SC_DLLPUBLIC void SetRowBreak(SCROW nRow, SCTAB nTab, bool bPage, bool bManual)
Definition: document.cxx:4384
void GetNumberFormatInfo(const ScInterpreterContext &rContext, SvNumFormatType &nType, sal_uInt32 &nIndex, const ScAddress &rPos) const
Definition: document.cxx:3690
OString dumpSheetGeomData(SCTAB nTab, bool bColumns, SheetGeomType eGeomType)
Serializes the specified sheet's geometry data.
std::unique_ptr< sc::IconSetBitmapMap > m_pIconSetBitmapMap
Definition: document.hxx:568
bool IsExecuteLinkEnabled() const
Definition: document.hxx:1602
SC_DLLPUBLIC void SetCalcConfig(const ScCalcConfig &rConfig)
Definition: document10.cxx:205
SC_DLLPUBLIC bool HasAttrib(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, HasAttrFlags nMask) const
Definition: document.cxx:5161
void SC_DLLPUBLIC SetSortParam(const ScSortParam &rParam, SCTAB nTab)
Definition: documen3.cxx:2129
void AddUndoTab(SCTAB nTab1, SCTAB nTab2, bool bColInfo=false, bool bRowInfo=false)
Definition: document.cxx:2000
SC_DLLPUBLIC formula::FormulaGrammar::Grammar GetGrammar() const
Definition: document.hxx:1010
SC_DLLPUBLIC CRFlags GetColFlags(SCCOL nCol, SCTAB nTab) const
Definition: document.cxx:4327
void InvalidateStreamOnSave()
Definition: document.cxx:476
void UpdateScriptTypes(const ScAddress &rPos, SCCOL nColSize, SCROW nRowSize)
Definition: document10.cxx:337
void Reorder(const sc::ReorderParam &rParam)
Definition: documen3.cxx:1446
bool IdleCalcTextWidth()
Definition: documen8.cxx:532
void RegroupFormulaCells(SCTAB nTab, SCCOL nCol)
Definition: document10.cxx:364
bool IsBlockEditable(SCTAB nTab, SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, bool *pOnlyNotBecauseOfMatrix=nullptr, bool bNoMatrixAtAll=false) const
Definition: document.cxx:5317
void MarkUsedExternalReferences()
Definition: documen3.cxx:639
void StartListeningArea(const ScRange &rRange, bool bGroupListening, SvtListener *pListener)
Definition: documen7.cxx:35
bool IsEmbedFontScriptLatin() const
Definition: document.hxx:585
void SetRangeOverflowType(ErrCode nType)
Definition: document.hxx:2218
void EndListeningFormulaCells(std::vector< ScFormulaCell * > &rCells)
Definition: documen7.cxx:253
static thread_local ScDocumentThreadSpecific maThreadSpecific
Definition: document.hxx:471
SfxBroadcaster * GetDrawBroadcaster()
Definition: documen9.cxx:56
void SetDirtyFromClip(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, InsertDeleteFlags nInsFlag, sc::ColumnSpanSet &rBroadcastSpans)
Definition: document.cxx:2611
void EndListeningCell(const ScAddress &rAddress, SvtListener *pListener)
Definition: documen7.cxx:230
SC_DLLPUBLIC bool GetTableArea(SCTAB nTab, SCCOL &rEndCol, SCROW &rEndRow, bool bCalcHiddens=false) const
Definition: document.cxx:1008
std::unique_ptr< ScUnoRefList > pUnoRefUndoList
Definition: document.hxx:397
SC_DLLPUBLIC const ScRangeData * GetRangeAtBlock(const ScRange &rBlock, OUString &rName, bool *pSheetLocal=nullptr) const
Definition: documen3.cxx:238
bool HasUnoRefUndo() const
Definition: document.hxx:1090
void GetEmbedded(ScRange &rRange) const
Definition: documen3.cxx:1703
std::shared_mutex mScLookupMutex
Definition: document.hxx:475
bool IsClipOrUndo() const
Definition: document.hxx:1592
void SetPreviewSelection(const ScMarkData &rSel)
Definition: documen2.cxx:1473
SC_DLLPUBLIC OUString GetInputString(SCCOL nCol, SCROW nRow, SCTAB nTab, bool bForceSystemLocale=false) const
Definition: document.cxx:3549
void DeleteObjectsInArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, const ScMarkData &rMark, bool bAnchored=false)
Definition: documen9.cxx:240
SC_DLLPUBLIC void SetImportingXML(bool bVal)
Definition: documen9.cxx:581
SCROW GetLOKFreezeRow(SCTAB nTab) const
bool HasCalcNotification(SCTAB nTab) const
Definition: documen3.cxx:715
void SetError(SCCOL nCol, SCROW nRow, SCTAB nTab, const FormulaError nError)
Definition: documen2.cxx:1129
void CopyToDocument(SCCOL nCol1, SCROW nRow1, SCTAB nTab1, SCCOL nCol2, SCROW nRow2, SCTAB nTab2, InsertDeleteFlags nFlags, bool bMarked, ScDocument &rDestDoc, const ScMarkData *pMarks=nullptr, bool bColRowFlags=true)
Definition: document.cxx:2041
SC_DLLPUBLIC void ApplyPatternIfNumberformatIncompatible(const ScRange &rRange, const ScMarkData &rMark, const ScPatternAttr &rPattern, SvNumFormatType nNewType)
Definition: document.cxx:4777
const ScConsolidateParam * GetConsolidateDlgData() const
Definition: document.hxx:654
SC_DLLPUBLIC void SetDocVisible(bool bSet)
Definition: documen2.cxx:261
bool PastingDrawFromOtherDoc() const
Definition: document.hxx:2527
SCSIZE GetPatternCount(SCTAB nTab, SCCOL nCol) const
Definition: documen3.cxx:2103
ErrCode nRangeOverflowType
Definition: document.hxx:436
SC_DLLPUBLIC ScDBCollection * GetDBCollection() const
Definition: document.hxx:827
SC_DLLPUBLIC void SetValue(SCCOL nCol, SCROW nRow, SCTAB nTab, const double &rVal)
Definition: document.cxx:3477
bool bIsEmbedded
Definition: document.hxx:499
SC_DLLPUBLIC void CopyDdeLinks(ScDocument &rDestDoc) const
Definition: documen8.cxx:866
void FindAreaPos(SCCOL &rCol, SCROW &rRow, SCTAB nTab, ScMoveDirection eDirection) const
Definition: document.cxx:6078
sal_uInt64 GetXMLImportedFormulaCount() const
Definition: document.hxx:2459
bool bIsUndo
Definition: document.hxx:495
bool IsChangeReadOnlyEnabled() const
Definition: document.hxx:1604
SC_DLLPUBLIC ScDPObject * GetDPAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab) const
Definition: documen3.cxx:377
bool GetDdeLinkMode(size_t nDdePos, sal_uInt8 &rnMode) const
Returns the link mode of the specified DDE link.
Definition: documen8.cxx:972
void FindOrder(SCCOLROW *pOtherRows, SCCOLROW nThisEndRow, SCCOLROW nOtherEndRow, bool bColumns, ScDocument &rOtherDoc, SCTAB nThisTab, SCTAB nOtherTab, SCCOLROW nEndCol, const SCCOLROW *pTranslate, ScProgress *pProgress, sal_uInt64 nProAdd)
Definition: documen4.cxx:997
void ApplyStyle(SCCOL nCol, SCROW nRow, SCTAB nTab, const ScStyleSheet &rStyle)
Definition: document.cxx:4802
const OUString & GetCodeName() const
Definition: document.hxx:609
SC_DLLPUBLIC void ApplyPatternArea(SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, const ScMarkData &rMark, const ScPatternAttr &rAttr, ScEditDataArray *pDataArray=nullptr, bool *const pIsChanged=nullptr)
Definition: document.cxx:4753
bool IsEmbedFontScriptAsian() const
Definition: document.hxx:586
void GetDocStat(ScDocStat &rDocStat)
Definition: document.cxx:6231
void MergeNumberFormatter(const ScDocument &rSrcDoc)
Definition: document.cxx:2548
void ClearSelectionItems(const sal_uInt16 *pWhich, const ScMarkData &rMark)
Definition: document.cxx:5909
bool CanInsertRow(const ScRange &rRange) const
Definition: document.cxx:1167
void SetupContextFromNonThreadedContext(ScInterpreterContext &threadedContext, int threadNumber)
Definition: document.cxx:6909
ScMarkData maPreviewSelection
Definition: document.hxx:433
void EnableIdle(bool bDo)
Definition: document.hxx:2208
void ApplySelectionFrame(const ScMarkData &rMark, const SvxBoxItem &rLineOuter, const SvxBoxInfoItem *pLineInner)
Definition: document.cxx:5743
SC_DLLPUBLIC void MakeTable(SCTAB nTab, bool _bNeedsNameCheck=true)
Definition: document.cxx:171
SC_DLLPUBLIC void SetColWidthOnly(SCCOL nCol, SCTAB nTab, sal_uInt16 nNewWidth)
Definition: document.cxx:4092
bool IsInsertingFromOtherDoc() const
Definition: document.hxx:2224
void FitBlock(const ScRange &rOld, const ScRange &rNew, bool bClear=true)
Definition: document.cxx:1827
void RemoveSortedRangeCache(ScSortedRangeCache &rCache)
Definition: documen2.cxx:1290
void SetPageSize(SCTAB nTab, const Size &rSize)
Definition: document.cxx:6183
sal_uInt64 nXMLImportedFormulaCount
Definition: document.hxx:462
SC_DLLPUBLIC void TransferDrawPage(const ScDocument &rSrcDoc, SCTAB nSrcPos, SCTAB nDestPos)
Definition: documen9.cxx:67
void StopTemporaryChartLock()
Definition: documen3.cxx:406
bool IsForcedFormulaPending() const
Definition: document.hxx:1419
SC_DLLPUBLIC bool CopyTab(SCTAB nOldPos, SCTAB nNewPos, const ScMarkData *pOnlyMarked=nullptr)
Definition: documen2.cxx:804
void ConvertFormulaToValue(const ScRange &rRange, sc::TableValues *pUndo)
Definition: document10.cxx:211
void ImplDeleteOptions()
Definition: documen8.cxx:107
void UpdateBroadcastAreas(UpdateRefMode eUpdateRefMode,