22#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
39#include <unonames.hxx>
49using ::com::sun::star::uno::Any;
50using ::com::sun::star::uno::Sequence;
51using ::com::sun::star::lang::IllegalArgumentException;
52using ::com::sun::star::uno::RuntimeException;
66 return aSheetLinkMap_Impl;
79 aFileName(
std::move( aName ))
81 pDocShell->GetDocument().AddUnoObject(*
this);
104 if ( rHint.
GetId() == SfxHintId::Dying )
118 if (
auto pTabLink =
dynamic_cast<ScTableLink*
>( pBase))
120 if ( pTabLink->GetFileName() ==
aFileName )
149 pLink->Refresh(
pLink->GetFileName(),
pLink->GetFilterName(),
nullptr,
pLink->GetRefreshDelaySeconds() );
153 const uno::Reference<util::XRefreshListener >& xListener )
164 const uno::Reference<util::XRefreshListener >& xListener )
171 if ( rObj == xListener )
184 aEvent.Source.set(getXWeak());
185 for (uno::Reference<util::XRefreshListener> & xRefreshListener :
aRefreshListeners)
186 xRefreshListener->refreshed(
aEvent );
201 static uno::Reference<beans::XPropertySetInfo> aRef(
207 const OUString& aPropertyName,
const uno::Any& aValue )
213 if ( aValue >>= aValStr )
218 if ( aValue >>= aValStr )
223 if ( aValue >>= aValStr )
228 sal_Int32 nRefresh = 0;
229 if ( aValue >>= nRefresh )
234 sal_Int32 nRefresh = 0;
235 if ( aValue >>= nRefresh )
283 for (
SCTAB nTab=0; nTab<nTabCount; nTab++)
309 aRet =
pLink->GetFilterName();
329 aRet =
pLink->GetOptions();
350 nRet =
pLink->GetRefreshDelaySeconds();
378 if ( rHint.
GetId() == SfxHintId::Dying )
391 typedef std::unordered_set<OUString> StrSetType;
396 for (
SCTAB nTab = 0; nTab < nTabCount; ++nTab)
402 if (aNames.insert(aLinkDoc).second)
422 for (
SCTAB nTab=0; nTab<nTabCount; nTab++)
427 if ( aLinkDoc ==
aName )
445 typedef std::unordered_set<OUString> StrSetType;
456 for (
SCTAB nTab = 0; nTab < nTabCount; ++nTab)
462 if (aNames.insert(aLinkDoc).second)
473 throw lang::IndexOutOfBoundsException();
494 throw container::NoSuchElementException();
508 for (
SCTAB nTab=0; nTab<nTabCount; nTab++)
513 if ( aLinkDoc ==
aName )
522 typedef std::unordered_set<OUString> StrSetType;
528 return uno::Sequence<OUString>();
535 uno::Sequence<OUString>
aSeq(nLinkCount);
536 OUString* pAry =
aSeq.getArray();
538 for (
SCTAB nTab = 0; nTab < nTabCount; ++nTab)
544 if (aNames.insert(aLinkDoc).second)
545 pAry[
nPos++] = aLinkDoc;
547 OSL_ENSURE(
nPos==
static_cast<size_t>(nLinkCount),
"verzaehlt" );
556 size_t nTotalCount = pLinkManager->
GetLinks().size();
557 size_t nAreaCount = 0;
558 for (
size_t i=0;
i<nTotalCount;
i++)
561 if (
auto pAreaLink =
dynamic_cast<ScAreaLink*
>( pBase))
563 if ( nAreaCount ==
nPos )
599 if (
pLink &&
pLink->GetDestArea().aStart == pRefreshedHint->GetDestPos() )
605 if ( rHint.
GetId() == SfxHintId::Dying )
613 const OUString* pNewOptions,
const OUString* pNewSource,
614 const table::CellRangeAddress* pNewDest )
620 OUString aFile (
pLink->GetFile());
621 OUString aFilter (
pLink->GetFilter());
622 OUString aOptions (
pLink->GetOptions());
623 OUString aSource (
pLink->GetSource());
625 sal_Int32 nRefreshDelaySeconds =
pLink->GetRefreshDelaySeconds();
634 bool bFitBlock =
true;
640 aFilter = *pNewFilter;
642 aOptions = *pNewOptions;
644 aSource = *pNewSource;
651 aDest, nRefreshDelaySeconds, bFitBlock,
true );
658 pLink->SetRefreshDelay( nRefreshDelaySeconds );
672 const uno::Reference<util::XRefreshListener >& xListener )
683 const uno::Reference<util::XRefreshListener >& xListener )
690 if ( rObj == xListener )
706 aEvent.Source.set(getXWeak());
707 for (uno::Reference<util::XRefreshListener> & xRefreshListener :
aRefreshListeners)
708 xRefreshListener->refreshed(
aEvent );
716 static uno::Reference<beans::XPropertySetInfo> aRef(
722 const OUString& aPropertyName,
const uno::Any& aValue )
728 if ( aValue >>= aValStr )
733 if ( aValue >>= aValStr )
738 if ( aValue >>= aValStr )
743 sal_Int32 nRefresh = 0;
744 if ( aValue >>= nRefresh )
749 sal_Int32 nRefresh = 0;
750 if ( aValue >>= nRefresh )
782 aRet =
pLink->GetFile();
789 Modify_Impl( &rNewName,
nullptr,
nullptr,
nullptr,
nullptr );
798 aRet =
pLink->GetFilter();
814 aRet =
pLink->GetOptions();
830 nRet =
pLink->GetRefreshDelaySeconds();
848 aRet =
pLink->GetSource();
855 Modify_Impl(
nullptr,
nullptr,
nullptr, &aSourceArea,
nullptr );
861 table::CellRangeAddress aRet;
871 Modify_Impl(
nullptr,
nullptr,
nullptr,
nullptr, &aDestArea );
892 if ( rHint.
GetId() == SfxHintId::Dying )
909 const OUString& aFileName,
910 const OUString& aSourceArea,
911 const OUString& aFilter,
912 const OUString& aFilterOptions )
917 OUString aFileStr (aFileName);
918 ScAddress aDestAddr(
static_cast<SCCOL>(aDestPos.Column),
static_cast<SCROW>(aDestPos.Row), aDestPos.Sheet );
922 aSourceArea,
ScRange(aDestAddr),
953 sal_Int32 nAreaCount = 0;
957 size_t nTotalCount = pLinkManager->
GetLinks().size();
958 for (
size_t i=0;
i<nTotalCount;
i++)
961 if (
dynamic_cast<const ScAreaLink*
>( pBase) !=
nullptr)
973 throw lang::IndexOutOfBoundsException();
991 OUString aT, OUString aI) :
993 aAppl(
std::move( aA )),
994 aTopic(
std::move( aT )),
995 aItem(
std::move( aI ))
1016 pRefreshedHint->GetDdeAppl() ==
aAppl &&
1017 pRefreshedHint->GetDdeTopic() ==
aTopic &&
1018 pRefreshedHint->GetDdeItem() ==
aItem )
1023 if ( rHint.
GetId() == SfxHintId::Dying )
1030static OUString
lcl_BuildDDEName( std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem )
1033 OUString aRet = OUString::Concat(rAppl) +
"|" + rTopic +
"!" + rItem;
1046 throw uno::RuntimeException();
1088 const uno::Reference<util::XRefreshListener >& xListener )
1099 const uno::Reference<util::XRefreshListener >& xListener )
1106 if ( rObj == xListener )
1121 uno::Sequence< uno::Sequence< uno::Any > > aReturn;
1122 bool bSuccess =
false;
1145 throw uno::RuntimeException(
1146 "ScDDELinkObj::getResults: failed to get results!" );
1155 bool bSuccess =
false;
1170 throw uno::RuntimeException(
1171 "ScDDELinkObj::setResults: failed to set results!" );
1177 lang::EventObject
aEvent;
1178 aEvent.Source.set(getXWeak());
1179 for (uno::Reference<util::XRefreshListener> & xRefreshListener :
aRefreshListeners)
1180 xRefreshListener->refreshed(
aEvent );
1201 if ( rHint.
GetId() == SfxHintId::Dying )
1213 OUString aAppl, aTopic, aItem;
1224 OUString aAppl, aTopic, aItem;
1251 sal_Int32 nAreaCount = 0;
1262 throw lang::IndexOutOfBoundsException();
1283 throw container::NoSuchElementException();
1293 OUString aAppl, aTopic, aItem;
1298 OUString* pAry =
aSeq.getArray();
1307 return uno::Sequence<OUString>();
1315 OUString aAppl, aTopic, aItem;
1332 const OUString& aApplication,
const OUString& aTopic,
1333 const OUString& aItem, css::sheet::DDELinkMode nMode )
1336 uno::Reference< sheet::XDDELink > xLink;
1344 case sheet::DDELinkMode_DEFAULT:
1349 case sheet::DDELinkMode_ENGLISH:
1354 case sheet::DDELinkMode_TEXT:
1374 throw uno::RuntimeException(
1375 "ScDDELinksObj::addDDELink: cannot add DDE link!" );
1382 mpDocShell(pDocShell),
1383 mpTable(
std::move(pTable)),
1395 if (nRow < 0 || nCol < 0)
1396 throw IllegalArgumentException();
1401 if (rValue >>= fVal)
1403 else if (rValue >>= aVal)
1419 if (nRow < 0 || nCol < 0)
1420 throw IllegalArgumentException();
1424 throw IllegalArgumentException();
1442 throw IllegalArgumentException();
1450 vector<SCROW> aRows;
1452 size_t nSize = aRows.size();
1453 Sequence<sal_Int32> aRowsSeq(nSize);
1454 auto aRowsSeqRange = asNonConstRange(aRowsSeq);
1455 for (
size_t i = 0;
i < nSize; ++
i)
1456 aRowsSeqRange[
i] = aRows[
i];
1465 throw IllegalArgumentException();
1467 vector<SCCOL> aCols;
1469 size_t nSize = aCols.size();
1470 Sequence<sal_Int32> aColsSeq(nSize);
1471 auto aColsSeqRange = asNonConstRange(aColsSeq);
1472 for (
size_t i = 0;
i < nSize; ++
i)
1473 aColsSeqRange[
i] = aCols[
i];
1480 return static_cast< sal_Int32
>(
mnIndex );
1484 mpDocShell(pDocShell), mpRefMgr(pRefMgr), mnFileId(nFileId)
1493 const OUString& aSheetName,
sal_Bool bDynamicCache )
1500 pTable->setWholeTableCached();
1512 throw container::NoSuchElementException();
1516 return Any(aSheetCache);
1522 vector<OUString> aTabNames;
1526 vector<OUString> aValidNames;
1527 std::copy_if(aTabNames.begin(), aTabNames.end(), std::back_inserter(aValidNames),
1528 [&](
const OUString& rTabName) { return mpRefMgr->getCacheTable(mnFileId, rTabName, false); });
1540 return bool(pTable);
1558 if (nApiIndex < 0 || nApiIndex >= aNames.getLength())
1559 throw lang::IndexOutOfBoundsException();
1564 throw lang::IndexOutOfBoundsException();
1568 return Any(aSheetCache);
1574 uno::Reference< container::XEnumeration > aRef(
1594 return static_cast<sal_Int32
>(
mnFileId);
1598 mpDocShell(pDocShell),
1599 mpRefMgr(pDocShell->GetDocument().GetExternalRefManager())
1608 const OUString& aDocName )
1622 throw container::NoSuchElementException();
1627 return Any(aDocLink);
1634 Sequence<OUString>
aSeq(
n);
1635 auto aSeqRange = asNonConstRange(
aSeq);
1636 for (sal_uInt16
i = 0;
i <
n; ++
i)
1660 if (
nIndex > ::std::numeric_limits<sal_uInt16>::max() ||
nIndex < ::std::numeric_limits<sal_uInt16>::min())
1661 throw lang::IndexOutOfBoundsException();
1663 sal_uInt16 nFileId =
static_cast<sal_uInt16
>(
nIndex);
1666 throw lang::IndexOutOfBoundsException();
1669 return Any(aDocLink);
1675 uno::Reference< container::XEnumeration > aRef(
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
void Modify_Impl(const OUString *pNewFile, const OUString *pNewFilter, const OUString *pNewOptions, const OUString *pNewSource, const css::table::CellRangeAddress *pNewDest)
virtual css::table::CellRangeAddress SAL_CALL getDestArea() override
void setFileName(const OUString &FileName)
OUString getFilter() const
XRefreshListenerArr_Impl aRefreshListeners
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
void setRefreshDelay(sal_Int32 nRefreshDelay)
void setFilterOptions(const OUString &FilterOptions)
OUString getFileName() const
void ModifyRefreshDelay_Impl(sal_Int32 nRefresh)
virtual OUString SAL_CALL getSourceArea() override
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
ScAreaLinkObj(ScDocShell *pDocSh, size_t nP)
virtual void SAL_CALL setDestArea(const css::table::CellRangeAddress &aDestArea) override
void setFilter(const OUString &Filter)
SfxItemPropertySet aPropSet
OUString getFilterOptions() const
sal_Int32 getRefreshDelay() const
virtual void SAL_CALL setSourceArea(const OUString &aSourceArea) override
virtual void SAL_CALL refresh() override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual ~ScAreaLinkObj() override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
virtual sal_Int32 SAL_CALL getCount() override
virtual void SAL_CALL removeByIndex(sal_Int32 nIndex) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual sal_Bool SAL_CALL hasElements() override
ScAreaLinksObj(ScDocShell *pDocSh)
virtual void SAL_CALL insertAtPosition(const css::table::CellAddress &aDestPos, const OUString &aFileName, const OUString &aSourceArea, const OUString &aFilter, const OUString &aFilterOptions) override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual css::uno::Type SAL_CALL getElementType() override
virtual ~ScAreaLinksObj() override
rtl::Reference< ScAreaLinkObj > GetObjectByIndex_Impl(sal_Int32 nIndex)
order of XNamed and DDELink changed to avoid "duplicate comdat" symbols
virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getResults() override
virtual OUString SAL_CALL getApplication() override
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual void SAL_CALL setName(const OUString &aName) override
virtual OUString SAL_CALL getName() override
virtual void SAL_CALL setResults(const css::uno::Sequence< css::uno::Sequence< css::uno::Any > > &aResults) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
XRefreshListenerArr_Impl aRefreshListeners
virtual OUString SAL_CALL getTopic() override
ScDDELinkObj(ScDocShell *pDocSh, OUString aA, OUString aT, OUString aI)
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual OUString SAL_CALL getItem() override
virtual void SAL_CALL refresh() override
virtual ~ScDDELinkObj() override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual css::uno::Type SAL_CALL getElementType() override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
rtl::Reference< ScDDELinkObj > GetObjectByIndex_Impl(sal_Int32 nIndex)
virtual css::uno::Reference< css::sheet::XDDELink > SAL_CALL addDDELink(const OUString &aApplication, const OUString &aTopic, const OUString &aItem, css::sheet::DDELinkMode nMode) override
rtl::Reference< ScDDELinkObj > GetObjectByName_Impl(std::u16string_view aName)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
ScDDELinksObj(ScDocShell *pDocSh)
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
virtual sal_Int32 SAL_CALL getCount() override
virtual ~ScDDELinksObj() override
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
void InsertAreaLink(const OUString &rFile, const OUString &rFilter, const OUString &rOptions, const OUString &rSource, const ScRange &rDestRange, sal_Int32 nRefreshDelaySeconds, bool bFitBlock, bool bApi)
const ScDocument & GetDocument() const
void UpdateLinks() override
bool SetDdeLinkResultMatrix(size_t nDdePos, const ScMatrixRef &pResults)
Sets a result matrix for the specified DDE link.
SC_DLLPUBLIC OUString GetLinkTab(SCTAB nTab) const
OUString GetLinkOpt(SCTAB nTab) const
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.
SC_DLLPUBLIC const ScMatrix * GetDdeLinkResultMatrix(size_t nDdePos) const
Returns the result matrix of the specified DDE link.
void AddUnoObject(SfxListener &rObject)
SC_DLLPUBLIC ScLinkMode GetLinkMode(SCTAB nTab) const
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
sal_uLong GetLinkRefreshDelay(SCTAB nTab) const
void SetLink(SCTAB nTab, ScLinkMode nMode, const OUString &rDoc, const OUString &rFilter, const OUString &rOptions, const OUString &rTabName, sal_uLong nRefreshDelay)
sc::DocumentLinkManager & GetDocLinkManager()
void RemoveUnoObject(SfxListener &rObject)
SC_DLLPUBLIC OUString GetLinkDoc(SCTAB nTab) const
bool IsLinked(SCTAB nTab) const
SC_DLLPUBLIC bool FindDdeLink(std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem, sal_uInt8 nMode, size_t &rnDdePos)
Tries to find a DDE link with the specified connection data.
SC_DLLPUBLIC sfx2::LinkManager * GetLinkManager()
OUString GetLinkFlt(SCTAB nTab) const
bool GetDdeLinkData(size_t nDdePos, OUString &rAppl, OUString &rTopic, OUString &rItem) const
Returns the connection data of the specified DDE link.
SC_DLLPUBLIC SCTAB GetTableCount() const
virtual css::uno::Reference< css::sheet::XExternalSheetCache > SAL_CALL addSheetCache(const OUString &aSheetName, sal_Bool bDynamicCache) override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
virtual sal_Int32 SAL_CALL getTokenIndex() override
virtual ~ScExternalDocLinkObj() override
ScExternalDocLinkObj(ScDocShell *pDocShell, ScExternalRefManager *pRefMgr, sal_uInt16 nFileId)
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Int32 SAL_CALL getCount() override
ScExternalRefManager * mpRefMgr
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual ~ScExternalDocLinksObj() override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Int32 SAL_CALL getCount() override
ScExternalDocLinksObj(ScDocShell *pDocShell)
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
ScExternalRefManager * mpRefMgr
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Reference< css::sheet::XExternalDocLink > SAL_CALL addDocLink(const OUString &aDocName) override
std::shared_ptr< Table > TableTypeRef
::formula::FormulaTokenRef TokenRef
sal_uInt16 getExternalFileCount() const
sal_uInt16 getExternalFileId(const OUString &rFile)
bool hasExternalFile(sal_uInt16 nFileId) const
ScExternalRefCache::TableTypeRef getCacheTable(sal_uInt16 nFileId, size_t nTabIndex) const
Get a cache table instance for specified table and table index.
const OUString * getExternalFileName(sal_uInt16 nFileId, bool bForceOriginal=false)
It returns a pointer to the name of the URI associated with a given external file ID.
void getAllCachedTableNames(sal_uInt16 nFileId, ::std::vector< OUString > &rTabNames) const
Returns a vector containing all (real) table names and cache tables of the specified file.
virtual void SAL_CALL setCellValue(sal_Int32 nCol, sal_Int32 nRow, const css::uno::Any &rAny) override
ScExternalRefCache::TableTypeRef mpTable
ScExternalSheetCacheObj(ScDocShell *pDocShell, ScExternalRefCache::TableTypeRef pTable, size_t nIndex)
virtual sal_Int32 SAL_CALL getTokenIndex() override
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getAllColumns(sal_Int32 nRow) override
virtual css::uno::Any SAL_CALL getCellValue(sal_Int32 nCol, sal_Int32 nRow) override
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getAllRows() override
virtual ~ScExternalSheetCacheObj() override
static SC_DLLPUBLIC OUString GetAbsDocName(const OUString &rFileName, const SfxObjectShell *pShell)
Matrix data type that can store values of mixed types.
static bool FillMixedArray(css::uno::Any &rAny, ScDocument &rDoc, const ScRange &rRange, bool bAllowNV=false)
static ScMatrixRef CreateMixedMatrix(const css::uno::Any &rAny)
Convert a sequence of mixed elements to ScMatrix.
void setFilter(const OUString &Filter)
OUString getFilterOptions() const
virtual OUString SAL_CALL getName() override
void setRefreshDelay(sal_Int32 nRefreshDelay)
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual void SAL_CALL refresh() override
virtual void SAL_CALL setName(const OUString &aName) override
XRefreshListenerArr_Impl aRefreshListeners
void ModifyRefreshDelay_Impl(sal_Int32 nRefresh)
SfxItemPropertySet aPropSet
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
OUString getFileName() const
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual ~ScSheetLinkObj() override
ScTableLink * GetLink_Impl() const
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
void setFilterOptions(const OUString &FilterOptions)
OUString getFilter() const
sal_Int32 getRefreshDelay() const
void setFileName(const OUString &FileName)
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
rtl::Reference< ScSheetLinkObj > GetObjectByIndex_Impl(sal_Int32 nIndex)
rtl::Reference< ScSheetLinkObj > GetObjectByName_Impl(const OUString &aName)
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Bool SAL_CALL hasElements() override
ScSheetLinksObj(ScDocShell *pDocSh)
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
virtual ~ScSheetLinksObj() override
virtual css::uno::Type SAL_CALL getElementType() override
virtual sal_Int32 SAL_CALL getCount() override
static void FillScRange(ScRange &rScRange, const css::table::CellRangeAddress &rApiRange)
static void FillApiRange(css::table::CellRangeAddress &rApiRange, const ScRange &rScRange)
const SfxItemPropertyMap & getPropertyMap() const
css::uno::Type const & get()
void updateDdeLink(std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem)
size_t getDdeLinkCount() const
void Remove(SvBaseLink const *pLink)
const SvBaseLinks & GetLinks() const
SharedString intern(const OUString &rStr)
const OUString & getString() const
const sal_uInt8 SC_DDE_TEXT
const sal_uInt8 SC_DDE_IGNOREMODE
const sal_uInt8 SC_DDE_DEFAULT
const sal_uInt8 SC_DDE_ENGLISH
static OUString lcl_BuildDDEName(std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem)
static ScAreaLink * lcl_GetAreaLink(ScDocShell *pDocShell, size_t nPos)
static o3tl::span< const SfxItemPropertyMapEntry > lcl_GetSheetLinkMap()
Sequence< sal_Int8 > aSeq
#define SC_SIMPLE_SERVICE_INFO(ClassName, ClassNameAscii, ServiceAscii)
#define SC_IMPL_DUMMY_PROPERTY_LISTENER(ClassName)
css::uno::Sequence< DstElementType > containerToSequence(const SrcType &i_Container)
::boost::intrusive_ptr< ScMatrix > ScMatrixRef
constexpr OUStringLiteral SC_UNONAME_FILTER
constexpr OUStringLiteral SC_UNONAME_REFPERIOD
constexpr OUStringLiteral SC_UNONAME_REFDELAY
constexpr OUStringLiteral SC_UNONAME_LINKURL
constexpr OUStringLiteral SC_UNONAME_FILTOPT