diff options
Diffstat (limited to 'sc/source/filter/qpro/qpro.cxx')
-rw-r--r-- | sc/source/filter/qpro/qpro.cxx | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/sc/source/filter/qpro/qpro.cxx b/sc/source/filter/qpro/qpro.cxx index 676c297900d6..5ac793a0efec 100644 --- a/sc/source/filter/qpro/qpro.cxx +++ b/sc/source/filter/qpro/qpro.cxx @@ -32,6 +32,8 @@ #include <document.hxx> #include <formulacell.hxx> #include <tools/stream.hxx> +#include <docoptio.hxx> +#include <scdll.hxx> #include <memory> ErrCode ScQProReader::readSheet( SCTAB nTab, ScDocument* pDoc, ScQProStyle *pStyle ) @@ -154,8 +156,7 @@ ScQProReader::~ScQProReader() mpStream->SetBufferSize( 0 ); } - -ErrCode ScQProReader::import( ScDocument *pDoc ) +ErrCode ScQProReader::parse( ScDocument *pDoc ) { ErrCode eRet = ERRCODE_NONE; sal_uInt16 nVersion; @@ -223,10 +224,32 @@ ErrCode ScQProReader::import( ScDocument *pDoc ) break; } } + return eRet; +} + +ErrCode ScQProReader::import( ScDocument *pDoc ) +{ + ErrCode eRet = parse(pDoc); pDoc->CalcAfterLoad(); return eRet; } +extern "C" SAL_DLLPUBLIC_EXPORT bool TestImportQPW(SvStream &rStream) +{ + ScDLL::Init(); + ScDocument aDocument; + ScDocOptions aDocOpt = aDocument.GetDocOptions(); + aDocOpt.SetLookUpColRowNames(false); + aDocument.SetDocOptions(aDocOpt); + aDocument.MakeTable(0); + aDocument.EnableExecuteLink(false); + aDocument.SetInsertingFromOtherDoc(true); + + ScQProReader aReader(&rStream); + ErrCode eRet = aReader.parse(&aDocument); + return eRet == ERRCODE_NONE; +} + bool ScQProReader::recordsLeft() { return mpStream && mpStream->good(); |