summaryrefslogtreecommitdiff
path: root/sc/source/filter
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2013-11-21 21:20:17 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2013-12-02 11:13:42 +0100
commit7acc91eb72bc4873367c264109321abc34d7db77 (patch)
tree11ba5d09c7186700c91db02459e6c4cd8dd44f35 /sc/source/filter
parent8f8013abc9182ce940d8c1aa359d62215f82f9cc (diff)
Import data streams - reuse infrastructure for ScAreaLink.
Change-Id: I18db991d2e8e665d5e4ca778344993e79772ccd5
Diffstat (limited to 'sc/source/filter')
-rw-r--r--sc/source/filter/xml/xmlcelli.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index e9f7d5b0e8c5..5ca7129f42fb 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -52,6 +52,8 @@
#include "tokenarray.hxx"
#include "scmatrix.hxx"
#include "documentimport.hxx"
+#include <datastream.hxx>
+#include <rangeutl.hxx>
#include <xmloff/xmltkmap.hxx>
#include <xmloff/xmltoken.hxx>
@@ -997,6 +999,19 @@ void ScXMLTableRowCellContext::SetCellRangeSource( const ScAddress& rPosition )
rPosition.Row() + static_cast<SCROW>(pCellRangeSource->nRows - 1), rPosition.Tab() );
OUString sFilterName( pCellRangeSource->sFilterName );
OUString sSourceStr( pCellRangeSource->sSourceStr );
+ OUString sRangeStr;
+ ScRangeStringConverter::GetStringFromRange( sRangeStr, aDestRange, pDoc, formula::FormulaGrammar::CONV_OOO );
+ if (pCellRangeSource->sFilterOptions == "DataStream")
+ {
+ DataStream::Set( dynamic_cast<ScDocShell*>(pDoc->GetDocumentShell())
+ , pCellRangeSource->sURL // rURL
+ , sRangeStr // rRange
+ , sFilterName.toInt32() // nLimit
+ , sSourceStr // rMove
+ , pCellRangeSource->nRefresh // nSettings
+ );
+ return;
+ }
ScAreaLink* pLink = new ScAreaLink( pDoc->GetDocumentShell(), pCellRangeSource->sURL,
sFilterName, pCellRangeSource->sFilterOptions, sSourceStr, aDestRange, pCellRangeSource->nRefresh );
sfx2::LinkManager* pLinkManager = pDoc->GetLinkManager();