summaryrefslogtreecommitdiff
path: root/oox/source/xls/externallinkbuffer.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/xls/externallinkbuffer.cxx')
-rw-r--r--oox/source/xls/externallinkbuffer.cxx13
1 files changed, 11 insertions, 2 deletions
diff --git a/oox/source/xls/externallinkbuffer.cxx b/oox/source/xls/externallinkbuffer.cxx
index aa4d7a068530..23177d09cf1d 100644
--- a/oox/source/xls/externallinkbuffer.cxx
+++ b/oox/source/xls/externallinkbuffer.cxx
@@ -681,10 +681,19 @@ ExternalLinkInfo ExternalLink::getLinkInfo() const
ExternalLinkInfo aLinkInfo;
switch( meLinkType )
{
+ case LINKTYPE_SELF:
+ case LINKTYPE_SAME:
+ case LINKTYPE_INTERNAL:
+ aLinkInfo.Type = ::com::sun::star::sheet::ExternalLinkType::SELF;
+ break;
case LINKTYPE_EXTERNAL:
aLinkInfo.Type = ::com::sun::star::sheet::ExternalLinkType::DOCUMENT;
aLinkInfo.Data <<= maTargetUrl;
break;
+ case LINKTYPE_LIBRARY:
+ // parser will return library function names in OPCODE_BAD string tokens
+ aLinkInfo.Type = ::com::sun::star::sheet::ExternalLinkType::SPECIAL;
+ break;
case LINKTYPE_DDE:
{
aLinkInfo.Type = ::com::sun::star::sheet::ExternalLinkType::DDE;
@@ -1041,8 +1050,8 @@ void ExternalLinkBuffer::importExternSheet8( BiffInputStream& rStrm )
Sequence< ExternalLinkInfo > ExternalLinkBuffer::getLinkInfos() const
{
::std::vector< ExternalLinkInfo > aLinkInfos;
- // should not be used for BIFF12 documents
- OSL_ENSURE( (getFilterType() == FILTER_OOXML) && !mbUseRefSheets, "ExternalLinkBuffer::getLinkInfos - unexpected file format" );
+ // XML formula parser also used in BIFF12 documents, e.g. replacement formulas in unsupported conditional formattings
+ OSL_ENSURE( getFilterType() == FILTER_OOXML, "ExternalLinkBuffer::getLinkInfos - unexpected file format" );
// add entry for implicit index 0 (self reference to this document)
aLinkInfos.push_back( mxSelfRef->getLinkInfo() );
for( ExternalLinkVec::const_iterator aIt = maExtLinks.begin(), aEnd = maExtLinks.end(); aIt != aEnd; ++aIt )