22 #include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
34 #include <docfunc.hxx>
38 #include <unonames.hxx>
43 #include <string_view>
48 using ::com::sun::star::uno::Any;
49 using ::com::sun::star::uno::Sequence;
50 using ::com::sun::star::lang::IllegalArgumentException;
51 using ::com::sun::star::uno::RuntimeException;
64 {
u"", 0, css::uno::Type(), 0, 0 }
66 return aSheetLinkMap_Impl;
76 ScSheetLinkObj::ScSheetLinkObj(
ScDocShell* pDocSh, const OUString& rName) :
81 pDocShell->GetDocument().AddUnoObject(*
this);
89 pDocShell->GetDocument().RemoveUnoObject(*
this);
97 if (
auto pRefreshHint = dynamic_cast<const ScLinkRefreshedHint*>(&rHint) )
99 if ( pRefreshHint->GetLinkType() ==
ScLinkRefType::SHEET && pRefreshHint->GetUrl() == aFileName )
104 if ( rHint.
GetId() == SfxHintId::Dying )
115 for (
size_t i=0;
i<nCount;
i++)
118 if (
auto pTabLink = dynamic_cast<ScTableLink*>( pBase))
120 if ( pTabLink->GetFileName() == aFileName )
133 return getFileName();
153 const uno::Reference<util::XRefreshListener >& xListener )
156 aRefreshListeners.push_back( xListener );
159 if ( aRefreshListeners.size() == 1 )
164 const uno::Reference<util::XRefreshListener >& xListener )
167 size_t nCount = aRefreshListeners.size();
168 for (
size_t n=nCount;
n--; )
170 uno::Reference<util::XRefreshListener>& rObj = aRefreshListeners[
n];
171 if ( rObj == xListener )
173 aRefreshListeners.erase( aRefreshListeners.begin() +
n );
174 if ( aRefreshListeners.empty() )
184 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
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 )
214 setFileName( aValStr );
218 if ( aValue >>= aValStr )
219 setFilter( aValStr );
223 if ( aValue >>= aValStr )
224 setFilterOptions( aValStr );
228 sal_Int32 nRefresh = 0;
229 if ( aValue >>= nRefresh )
230 setRefreshDelay( nRefresh );
234 sal_Int32 nRefresh = 0;
235 if ( aValue >>= nRefresh )
236 setRefreshDelay( nRefresh );
245 aRet <<= getFileName();
247 aRet <<= getFilter();
249 aRet <<= getFilterOptions();
251 aRet <<= getRefreshDelay();
253 aRet <<= getRefreshDelay();
283 for (
SCTAB nTab=0; nTab<nTabCount; nTab++)
293 pDocShell->UpdateLinks();
298 pLink = GetLink_Impl();
339 OUString aOptStr(FilterOptions);
357 ModifyRefreshDelay_Impl( nRefreshDelay );
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)
405 if (nCount == nIndex)
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();
475 return uno::makeAny(xLink);
495 throw container::NoSuchElementException();
497 return uno::makeAny(xLink);
509 for (
SCTAB nTab=0; nTab<nTabCount; nTab++)
514 if ( aLinkDoc == aName )
523 typedef std::unordered_set<OUString> StrSetType;
529 return uno::Sequence<OUString>();
536 uno::Sequence<OUString>
aSeq(nLinkCount);
537 OUString* pAry = aSeq.getArray();
539 for (
SCTAB nTab = 0; nTab < nTabCount; ++nTab)
545 if (aNames.insert(aLinkDoc).second)
546 pAry[nPos++] = aLinkDoc;
548 OSL_ENSURE( nPos==static_cast<size_t>(nLinkCount),
"verzaehlt" );
557 size_t nTotalCount = pLinkManager->
GetLinks().size();
558 size_t nAreaCount = 0;
559 for (
size_t i=0;
i<nTotalCount;
i++)
562 if (
auto pAreaLink = dynamic_cast<ScAreaLink*>( pBase))
564 if ( nAreaCount == nPos )
594 if (
auto pRefreshedHint = dynamic_cast<const ScLinkRefreshedHint*>(&rHint) )
606 if ( rHint.
GetId() == SfxHintId::Dying )
614 const OUString* pNewOptions,
const OUString* pNewSource,
615 const table::CellRangeAddress* pNewDest )
621 OUString aFile (pLink->
GetFile());
632 pLinkManager->
Remove( pLink );
635 bool bFitBlock =
true;
641 aFilter = *pNewFilter;
643 aOptions = *pNewOptions;
645 aSource = *pNewSource;
652 aDest, nRefresh, bFitBlock,
true );
673 const uno::Reference<util::XRefreshListener >& xListener )
684 const uno::Reference<util::XRefreshListener >& xListener )
688 for (
size_t n=nCount;
n--; )
691 if ( rObj == xListener )
707 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
708 for (uno::Reference<util::XRefreshListener> & xRefreshListener :
aRefreshListeners)
709 xRefreshListener->refreshed( aEvent );
717 static uno::Reference<beans::XPropertySetInfo> aRef(
723 const OUString& aPropertyName,
const uno::Any& aValue )
729 if ( aValue >>= aValStr )
734 if ( aValue >>= aValStr )
739 if ( aValue >>= aValStr )
744 sal_Int32 nRefresh = 0;
745 if ( aValue >>= nRefresh )
750 sal_Int32 nRefresh = 0;
751 if ( aValue >>= nRefresh )
790 Modify_Impl( &rNewName,
nullptr,
nullptr,
nullptr,
nullptr );
806 Modify_Impl(
nullptr, &Filter,
nullptr,
nullptr,
nullptr );
822 Modify_Impl(
nullptr,
nullptr, &FilterOptions,
nullptr,
nullptr );
856 Modify_Impl(
nullptr,
nullptr,
nullptr, &aSourceArea,
nullptr );
862 table::CellRangeAddress aRet;
872 Modify_Impl(
nullptr,
nullptr,
nullptr,
nullptr, &aDestArea );
893 if ( rHint.
GetId() == SfxHintId::Dying )
910 const OUString& aFileName,
911 const OUString& aSourceArea,
912 const OUString& aFilter,
913 const OUString& aFilterOptions )
918 OUString aFileStr (aFileName);
919 ScAddress aDestAddr( static_cast<SCCOL>(aDestPos.Column), static_cast<SCROW>(aDestPos.Row), aDestPos.Sheet );
923 aSourceArea,
ScRange(aDestAddr),
937 pLinkManager->
Remove( pLink );
954 sal_Int32 nAreaCount = 0;
958 size_t nTotalCount = pLinkManager->
GetLinks().size();
959 for (
size_t i=0;
i<nTotalCount;
i++)
962 if (dynamic_cast<const ScAreaLink*>( pBase) !=
nullptr)
974 throw lang::IndexOutOfBoundsException();
976 return uno::makeAny(xLink);
993 const OUString& rT,
const OUString& rI) :
1015 if (
auto pRefreshedHint = dynamic_cast<const ScLinkRefreshedHint*>(&rHint) )
1018 pRefreshedHint->GetDdeAppl() ==
aAppl &&
1019 pRefreshedHint->GetDdeTopic() ==
aTopic &&
1020 pRefreshedHint->GetDdeItem() ==
aItem )
1025 if ( rHint.
GetId() == SfxHintId::Dying )
1032 static OUString
lcl_BuildDDEName( std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem )
1035 OUString aRet = OUString::Concat(rAppl) +
"|" + rTopic +
"!" + rItem;
1048 throw uno::RuntimeException();
1090 const uno::Reference<util::XRefreshListener >& xListener )
1101 const uno::Reference<util::XRefreshListener >& xListener )
1105 for (
size_t n=nCount;
n--; )
1108 if ( rObj == xListener )
1123 uno::Sequence< uno::Sequence< uno::Any > > aReturn;
1124 bool bSuccess =
false;
1147 throw uno::RuntimeException(
1148 "ScDDELinkObj::getResults: failed to get results!" );
1157 bool bSuccess =
false;
1172 throw uno::RuntimeException(
1173 "ScDDELinkObj::setResults: failed to set results!" );
1179 lang::EventObject
aEvent;
1180 aEvent.Source.set(static_cast<cppu::OWeakObject*>(
this));
1181 for (uno::Reference<util::XRefreshListener> & xRefreshListener :
aRefreshListeners)
1182 xRefreshListener->refreshed( aEvent );
1203 if ( rHint.
GetId() == SfxHintId::Dying )
1215 OUString aAppl, aTopic, aItem;
1226 OUString aAppl, aTopic, aItem;
1230 for (
size_t i=0;
i<nCount;
i++)
1253 sal_Int32 nAreaCount = 0;
1264 throw lang::IndexOutOfBoundsException();
1266 return uno::makeAny(xLink);
1286 throw container::NoSuchElementException();
1288 return uno::makeAny(xLink);
1296 OUString aAppl, aTopic, aItem;
1300 uno::Sequence<OUString>
aSeq(nCount);
1301 OUString* pAry = aSeq.getArray();
1303 for (
size_t i=0;
i<nCount;
i++)
1310 return uno::Sequence<OUString>();
1318 OUString aAppl, aTopic, aItem;
1322 for (
size_t i=0;
i<nCount;
i++)
1335 const OUString& aApplication,
const OUString& aTopic,
1336 const OUString& aItem, css::sheet::DDELinkMode nMode )
1339 uno::Reference< sheet::XDDELink > xLink;
1347 case sheet::DDELinkMode_DEFAULT:
1352 case sheet::DDELinkMode_ENGLISH:
1357 case sheet::DDELinkMode_TEXT:
1377 throw uno::RuntimeException(
1378 "ScDDELinksObj::addDDELink: cannot add DDE link!" );
1385 mpDocShell(pDocShell),
1398 if (nRow < 0 || nCol < 0)
1399 throw IllegalArgumentException();
1404 if (rValue >>= fVal)
1406 else if (rValue >>= aVal)
1416 mpTable->setCell(static_cast<SCCOL>(nCol), static_cast<SCROW>(nRow), pToken);
1422 if (nRow < 0 || nCol < 0)
1423 throw IllegalArgumentException();
1425 FormulaToken* pToken =
mpTable->getCell(static_cast<SCCOL>(nCol), static_cast<SCROW>(nRow)).get();
1427 throw IllegalArgumentException();
1445 throw IllegalArgumentException();
1453 vector<SCROW> aRows;
1455 size_t nSize = aRows.size();
1456 Sequence<sal_Int32> aRowsSeq(nSize);
1457 for (
size_t i = 0;
i < nSize; ++
i)
1458 aRowsSeq[
i] = aRows[
i];
1467 throw IllegalArgumentException();
1469 vector<SCCOL> aCols;
1470 mpTable->getAllCols(static_cast<SCROW>(nRow), aCols);
1471 size_t nSize = aCols.size();
1472 Sequence<sal_Int32> aColsSeq(nSize);
1473 for (
size_t i = 0;
i < nSize; ++
i)
1474 aColsSeq[
i] = aCols[
i];
1481 return static_cast< sal_Int32
>(
mnIndex );
1485 mpDocShell(pDocShell), mpRefMgr(pRefMgr), mnFileId(nFileId)
1494 const OUString& aSheetName,
sal_Bool bDynamicCache )
1501 pTable->setWholeTableCached();
1513 throw container::NoSuchElementException();
1517 return Any(aSheetCache);
1523 vector<OUString> aTabNames;
1527 vector<OUString> aValidNames;
1528 std::copy_if(aTabNames.begin(), aTabNames.end(), std::back_inserter(aValidNames),
1541 return bool(pTable);
1559 if (nApiIndex < 0 || nApiIndex >= aNames.getLength())
1560 throw lang::IndexOutOfBoundsException();
1565 throw lang::IndexOutOfBoundsException();
1569 return Any(aSheetCache);
1575 uno::Reference< container::XEnumeration > aRef(
1596 return static_cast<sal_Int32
>(
mnFileId);
1600 mpDocShell(pDocShell),
1601 mpRefMgr(pDocShell->GetDocument().GetExternalRefManager())
1610 const OUString& aDocName )
1624 throw container::NoSuchElementException();
1629 return Any(aDocLink);
1637 for (sal_uInt16
i = 0;
i < n; ++
i)
1640 aSeq[
i] = pName ? *pName : OUString();
1661 if (nIndex > ::std::numeric_limits<sal_uInt16>::max() || nIndex < ::std::numeric_limits<sal_uInt16>::min())
1662 throw lang::IndexOutOfBoundsException();
1664 sal_uInt16 nFileId =
static_cast<sal_uInt16
>(nIndex);
1667 throw lang::IndexOutOfBoundsException();
1670 return Any(aDocLink);
1676 uno::Reference< container::XEnumeration > aRef(
SC_DLLPUBLIC OUString GetLinkDoc(SCTAB nTab) const
virtual css::uno::Any SAL_CALL getCellValue(sal_Int32 nCol, sal_Int32 nRow) override
Matrix data type that can store values of mixed types.
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
OUString GetLinkOpt(SCTAB nTab) const
virtual OUString SAL_CALL getItem() override
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
bool Refresh(const OUString &rNewFile, const OUString &rNewFilter, const OUString *pNewOptions, sal_uLong nNewRefresh)
void setRefreshDelay(sal_Int32 nRefreshDelay)
virtual css::uno::Reference< css::sheet::XDDELink > SAL_CALL addDDELink(const OUString &aApplication, const OUString &aTopic, const OUString &aItem, css::sheet::DDELinkMode nMode) override
OUString getString() const
SharedString intern(const OUString &rStr)
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
SC_DLLPUBLIC ScLinkMode GetLinkMode(SCTAB nTab) const
sal_uInt16 getExternalFileCount() const
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
void setFilter(const OUString &Filter)
virtual ~ScDDELinksObj() override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
const OUString & GetFilter() const
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
#define SC_UNONAME_FILTOPT
void SetRefreshDelay(sal_uLong nSeconds)
sal_Int32 getRefreshDelay() const
const sal_uInt8 SC_DDE_DEFAULT
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
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.
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
static OUString lcl_BuildDDEName(std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem)
const OUString & GetOptions() const
sal_uInt16 getExternalFileId(const OUString &rFile)
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
const sal_uInt8 SC_DDE_TEXT
sc::DocumentLinkManager & GetDocLinkManager()
virtual ~ScAreaLinksObj() override
bool IsLinked(SCTAB nTab) const
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
void setFileName(const OUString &FileName)
virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
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::Any SAL_CALL getByName(const OUString &aName) override
order of XNamed and DDELink changed to avoid "duplicate comdat" symbols
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 setFilterOptions(const OUString &FilterOptions)
virtual sal_Bool SAL_CALL hasElements() override
const OUString & GetOptions() const
ScAreaLinkObj * GetObjectByIndex_Impl(sal_Int32 nIndex)
virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener > &l) override
OUString getFilterOptions() const
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
XRefreshListenerArr_Impl aRefreshListeners
XRefreshListenerArr_Impl aRefreshListeners
virtual OUString SAL_CALL getApplication() override
virtual ~ScSheetLinksObj() override
SC_DLLPUBLIC SCTAB GetTableCount() const
ScDDELinkObj * GetObjectByName_Impl(std::u16string_view aName)
bool SetDdeLinkResultMatrix(size_t nDdePos, const ScMatrixRef &pResults)
Sets a result matrix for the specified DDE link.
virtual sal_Int32 SAL_CALL getCount() override
::boost::intrusive_ptr< ScMatrix > ScMatrixRef
virtual sal_Bool SAL_CALL hasElements() override
OUString getFileName() const
virtual css::uno::Reference< css::sheet::XExternalSheetCache > SAL_CALL addSheetCache(const OUString &aSheetName, sal_Bool bDynamicCache) override
const sal_uInt8 SC_DDE_IGNOREMODE
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
static bool FillMixedArray(css::uno::Any &rAny, ScDocument &rDoc, const ScRange &rRange, bool bAllowNV=false)
void setFilter(const OUString &Filter)
#define SC_UNONAME_FILTER
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
const OUString & GetFileName() const
virtual sal_Int32 SAL_CALL getTokenIndex() override
static SC_DLLPUBLIC OUString GetAbsDocName(const OUString &rFileName, const SfxObjectShell *pShell)
virtual ~ScExternalDocLinkObj() override
void setFileName(const OUString &FileName)
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
ScDDELinkObj(ScDocShell *pDocSh, const OUString &rA, const OUString &rT, const OUString &rI)
virtual OUString SAL_CALL getTopic() override
const SvBaseLinks & GetLinks() const
virtual css::uno::Type SAL_CALL getElementType() override
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.
void Remove(SvBaseLink const *pLink)
SC_DLLPUBLIC const ScMatrix * GetDdeLinkResultMatrix(size_t nDdePos) const
Returns the result matrix of the specified DDE link.
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
bool GetDdeLinkData(size_t nDdePos, OUString &rAppl, OUString &rTopic, OUString &rItem) const
Returns the connection data of the specified DDE link.
virtual ~ScExternalSheetCacheObj() override
ScDDELinksObj(ScDocShell *pDocSh)
OUString getFilter() const
const OUString & GetFilterName() const
virtual void SAL_CALL setName(const OUString &aName) override
const ScRange & GetDestArea() const
virtual css::table::CellRangeAddress SAL_CALL getDestArea() override
virtual sal_Int32 SAL_CALL getCount() override
void SetLink(SCTAB nTab, ScLinkMode nMode, const OUString &rDoc, const OUString &rFilter, const OUString &rOptions, const OUString &rTabName, sal_uLong nRefreshDelay)
const SfxItemPropertyMap & getPropertyMap() const
virtual css::uno::Reference< css::sheet::XExternalDocLink > SAL_CALL addDocLink(const OUString &aDocName) override
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 css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
ScExternalRefCache::TableTypeRef getCacheTable(sal_uInt16 nFileId, size_t nTabIndex) const
Get a cache table instance for specified table and table index.
OUString GetLinkFlt(SCTAB nTab) const
css::uno::Type const & get()
#define SC_SIMPLE_SERVICE_INFO(ClassName, ClassNameAscii, ServiceAscii)
virtual void SAL_CALL setSourceArea(const OUString &aSourceArea) override
OUString getFilter() const
virtual sal_Bool SAL_CALL hasElements() override
const OUString & GetFile() const
virtual sal_Bool SAL_CALL hasElements() override
static const SfxItemPropertyMapEntry * lcl_GetSheetLinkMap()
bool hasExternalFile(sal_uInt16 nFileId) const
#define SC_IMPL_DUMMY_PROPERTY_LISTENER(ClassName)
void AddUnoObject(SfxListener &rObject)
void InsertAreaLink(const OUString &rFile, const OUString &rFilter, const OUString &rOptions, const OUString &rSource, const ScRange &rDestRange, sal_uLong nRefresh, bool bFitBlock, bool bApi)
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
void setRefreshDelay(sal_Int32 nRefreshDelay)
void ModifyRefreshDelay_Impl(sal_Int32 nRefresh)
::formula::FormulaTokenRef TokenRef
virtual sal_Int32 SAL_CALL getCount() override
virtual void SAL_CALL refresh() override
bool Refresh(const OUString &rNewFile, const OUString &rNewFilter, const OUString &rNewArea, sal_uLong nNewRefresh)
virtual ~ScExternalDocLinksObj() override
virtual void SAL_CALL setName(const OUString &aName) override
virtual ~ScDDELinkObj() override
ScDDELinkObj * GetObjectByIndex_Impl(sal_Int32 nIndex)
ScSheetLinkObj * GetObjectByIndex_Impl(sal_Int32 nIndex)
virtual ~ScAreaLinkObj() override
#define SC_UNONAME_LINKURL
virtual void SAL_CALL setCellValue(sal_Int32 nCol, sal_Int32 nRow, const css::uno::Any &rAny) override
void ModifyRefreshDelay_Impl(sal_Int32 nRefresh)
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createEnumeration() override
css::uno::Sequence< DstElementType > containerToSequence(const SrcType &i_Container)
ScSheetLinkObj * GetObjectByName_Impl(const OUString &aName)
SfxItemPropertySet aPropSet
virtual sal_Bool SAL_CALL hasElements() override
virtual OUString SAL_CALL getSourceArea() override
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getAllRows() override
virtual css::uno::Sequence< css::uno::Sequence< css::uno::Any > > SAL_CALL getResults() override
static ScMatrixRef CreateMixedMatrix(const css::uno::Any &rAny)
Convert a sequence of mixed elements to ScMatrix.
sal_uLong GetLinkRefreshDelay(SCTAB nTab) const
size_t getDdeLinkCount() const
std::shared_ptr< Table > TableTypeRef
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual sal_Bool SAL_CALL hasByName(const OUString &aName) override
ScExternalDocLinksObj(ScDocShell *pDocShell)
virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() override
virtual void SAL_CALL refresh() override
virtual void SAL_CALL setPropertyValue(const OUString &aPropertyName, const css::uno::Any &aValue) override
OUString getFilterOptions() const
const OUString & GetSource() const
void RemoveUnoObject(SfxListener &rObject)
ScExternalDocLinkObj(ScDocShell *pDocShell, ScExternalRefManager *pRefMgr, sal_uInt16 nFileId)
ScExternalRefCache::TableTypeRef mpTable
SC_DLLPUBLIC OUString GetLinkTab(SCTAB nTab) const
Sequence< sal_Int8 > aSeq
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
const ScDocument & GetDocument() const
virtual ~ScSheetLinkObj() override
sal_Int32 getRefreshDelay() const
virtual void SAL_CALL setDestArea(const css::table::CellRangeAddress &aDestArea) override
ScTableLink * GetLink_Impl() const
static ScAreaLink * lcl_GetAreaLink(ScDocShell *pDocShell, size_t nPos)
ScExternalSheetCacheObj(ScDocShell *pDocShell, ScExternalRefCache::TableTypeRef const &pTable, size_t nIndex)
virtual sal_Int32 SAL_CALL getCount() override
virtual css::uno::Any SAL_CALL getPropertyValue(const OUString &PropertyName) override
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
virtual void SAL_CALL refresh() override
virtual void SAL_CALL setResults(const css::uno::Sequence< css::uno::Sequence< css::uno::Any > > &aResults) override
void setFilterOptions(const OUString &FilterOptions)
virtual css::uno::Any SAL_CALL getByName(const OUString &aName) override
ScExternalRefManager * mpRefMgr
static void FillApiRange(css::table::CellRangeAddress &rApiRange, const ScRange &rScRange)
ScAreaLinksObj(ScDocShell *pDocSh)
virtual sal_Int32 SAL_CALL getCount() override
const sal_uInt8 SC_DDE_ENGLISH
#define SC_UNONAME_REFDELAY
virtual void Notify(SfxBroadcaster &rBC, const SfxHint &rHint) override
ScSheetLinksObj(ScDocShell *pDocSh)
static void FillScRange(ScRange &rScRange, const css::table::CellRangeAddress &rApiRange)
virtual OUString SAL_CALL getName() override
SC_DLLPUBLIC sfx2::LinkManager * GetLinkManager()
virtual css::uno::Type SAL_CALL getElementType() override
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getAllColumns(sal_Int32 nRow) override
sal_uLong GetRefreshDelay() const
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 nIndex) override
ScAreaLinkObj(ScDocShell *pDocSh, size_t nP)
void updateDdeLink(std::u16string_view rAppl, std::u16string_view rTopic, std::u16string_view rItem)
virtual void SAL_CALL removeByIndex(sal_Int32 nIndex) override
void Modify_Impl(const OUString *pNewFile, const OUString *pNewFilter, const OUString *pNewOptions, const OUString *pNewSource, const css::table::CellRangeAddress *pNewDest)
virtual sal_Int32 SAL_CALL getTokenIndex() override
virtual css::uno::Any SAL_CALL getByIndex(sal_Int32 Index) override
virtual OUString SAL_CALL getName() override
ScExternalRefManager * mpRefMgr
#define SC_UNONAME_REFPERIOD