summaryrefslogtreecommitdiff
path: root/sc/source/filter/inc/excimp8.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/inc/excimp8.hxx')
-rw-r--r--sc/source/filter/inc/excimp8.hxx166
1 files changed, 166 insertions, 0 deletions
diff --git a/sc/source/filter/inc/excimp8.hxx b/sc/source/filter/inc/excimp8.hxx
new file mode 100644
index 000000000000..9bd633eae879
--- /dev/null
+++ b/sc/source/filter/inc/excimp8.hxx
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: excimp8.hxx,v $
+ * $Revision: 1.71.14.1 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef SC_EXCIMP8_HXX
+#define SC_EXCIMP8_HXX
+
+#include <string.h>
+#include "imp_op.hxx"
+#include "root.hxx"
+#include "excscen.hxx"
+#include "excdefs.hxx"
+#include "ftools.hxx"
+
+class SotStorage;
+
+class ScBaseCell;
+class ScRangeList;
+class ScDBData;
+
+class ScfSimpleProgressBar;
+
+class XclImpStream;
+
+
+
+class ImportExcel8 : public ImportExcel
+{
+ protected:
+ ExcScenarioList aScenList;
+
+ BOOL bHasBasic;
+
+ void Calccount( void ); // 0x0C
+ void Precision( void ); // 0x0E
+ void Delta( void ); // 0x10
+ void Iteration( void ); // 0x11
+ void Boundsheet( void ); // 0x85
+ void FilterMode( void ); // 0x9B
+ void AutoFilterInfo( void ); // 0x9D
+ void AutoFilter( void ); // 0x9E
+ void Scenman( void ); // 0xAE
+ void Scenario( void ); // 0xAF
+ void ReadBasic( void ); // 0xD3
+ void Labelsst( void ); // 0xFD
+
+ void Hlink( void ); // 0x01B8
+ void Codename( BOOL bWBGlobals ); // 0x01BA
+ void SheetProtection( void ); // 0x0867
+
+ virtual void EndSheet( void );
+ virtual void PostDocLoad( void );
+
+ public:
+ ImportExcel8( XclImpRootData& rImpData, SvStream& rStrm );
+ virtual ~ImportExcel8( void );
+
+ virtual FltError Read( void );
+};
+
+
+
+//___________________________________________________________________
+// classes AutoFilterData, AutoFilterBuffer
+
+class XclImpAutoFilterData : private ExcRoot
+{
+private:
+ ScDBData* pCurrDBData;
+ ScQueryParam aParam;
+ SCSIZE nFirstEmpty;
+ BOOL bActive;
+ BOOL bHasConflict;
+ BOOL bCriteria;
+ BOOL bAutoOrAdvanced;
+ ScRange aCriteriaRange;
+ String aFilterName;
+
+ void CreateFromDouble( String& rStr, double fVal );
+ void SetCellAttribs();
+ void InsertQueryParam();
+ void AmendAFName(const BOOL bUseUnNamed);
+
+protected:
+public:
+ XclImpAutoFilterData(
+ RootData* pRoot,
+ const ScRange& rRange,
+ const String& rName );
+
+ inline bool IsActive() const { return bActive; }
+ inline bool IsFiltered() const { return bAutoOrAdvanced; }
+ inline SCTAB Tab() const { return aParam.nTab; }
+ inline SCCOL StartCol() const { return aParam.nCol1; }
+ inline SCROW StartRow() const { return aParam.nRow1; }
+ inline SCCOL EndCol() const { return aParam.nCol2; }
+ inline SCROW EndRow() const { return aParam.nRow2; }
+
+ void ReadAutoFilter( XclImpStream& rStrm );
+
+ inline void Activate() { bActive = TRUE; }
+ void SetAdvancedRange( const ScRange* pRange );
+ void SetExtractPos( const ScAddress& rAddr );
+ inline void SetAutoOrAdvanced() { bAutoOrAdvanced = TRUE; }
+ void Apply( const BOOL bUseUnNamed = FALSE );
+ void CreateScDBData( const BOOL bUseUnNamed );
+ void EnableRemoveFilter();
+};
+
+
+class XclImpAutoFilterBuffer : private List
+{
+private:
+ using List::Insert;
+
+ UINT16 nAFActiveCount;
+
+ inline XclImpAutoFilterData* _First() { return (XclImpAutoFilterData*) List::First(); }
+ inline XclImpAutoFilterData* _Next() { return (XclImpAutoFilterData*) List::Next(); }
+
+ inline void Append( XclImpAutoFilterData* pData )
+ { List::Insert( pData, LIST_APPEND ); }
+protected:
+public:
+ XclImpAutoFilterBuffer();
+ virtual ~XclImpAutoFilterBuffer();
+
+ void Insert( RootData* pRoot, const ScRange& rRange,
+ const String& rName );
+ void AddAdvancedRange( const ScRange& rRange );
+ void AddExtractPos( const ScRange& rRange );
+ void Apply();
+
+ XclImpAutoFilterData* GetByTab( SCTAB nTab );
+ inline void IncrementActiveAF() { nAFActiveCount++; }
+ inline BOOL UseUnNamed() { return nAFActiveCount == 1; }
+};
+
+#endif
+