LibreOffice Module sc (master) 1
excimp8.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include "imp_op.hxx"
23#include "root.hxx"
24#include "excscen.hxx"
25#include <queryparam.hxx>
26
27class ScDBData;
28class XclImpStream;
29
31{
32public:
34 virtual ~ImportExcel8() override;
35
36 virtual ErrCode Read() override;
37
38 void Calccount(); // 0x0C
39 void Precision(); // 0x0E
40 void Delta(); // 0x10
41 void Iteration(); // 0x11
42 void Boundsheet(); // 0x85
43 void FilterMode(); // 0x9B
44 void AutoFilterInfo(); // 0x9D
45 void AutoFilter(); // 0x9E
46 void Scenman(); // 0xAE
47 void Scenario(); // 0xAF
48 void ReadBasic(); // 0xD3
49 void Labelsst(); // 0xFD
50
51 void FeatHdr(); // 0x0867
52 void Feat(); // 0x0868
53
54 virtual void EndSheet() override;
55 virtual void PostDocLoad() override;
56
57private:
59};
60
61
63{
64private:
68 bool bActive:1;
69 bool bCriteria:1;
71
72 void SetCellAttribs();
73 void InsertQueryParam();
74
75protected:
76public:
78 RootData* pRoot,
79 const ScRange& rRange);
80
81 bool IsActive() const { return bActive; }
82 bool IsFiltered() const { return bAutoOrAdvanced; }
83 SCTAB Tab() const { return aParam.nTab; }
84 SCCOL StartCol() const { return aParam.nCol1; }
85 SCROW StartRow() const { return aParam.nRow1; }
86 SCCOL EndCol() const { return aParam.nCol2; }
87 SCROW EndRow() const { return aParam.nRow2; }
88
90
91 void Activate() { bActive = true; }
92 void SetAdvancedRange( const ScRange* pRange );
93 void SetExtractPos( const ScAddress& rAddr );
95 void Apply();
96 void EnableRemoveFilter();
97};
98
100{
101public:
102
103 void Insert( RootData* pRoot, const ScRange& rRange);
104 void AddAdvancedRange( const ScRange& rRange );
105 void AddExtractPos( const ScRange& rRange );
106 void Apply();
107
109
110private:
111 typedef std::shared_ptr<XclImpAutoFilterData> XclImpAutoFilterSharePtr;
112 std::vector<XclImpAutoFilterSharePtr> maFilters;
113};
114
115/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: root.hxx:67
void FeatHdr()
Definition: excimp8.cxx:256
void AutoFilter()
Definition: excimp8.cxx:457
virtual void PostDocLoad() override
Definition: excimp8.cxx:384
void ReadBasic()
Definition: excimp8.cxx:321
void Iteration()
Definition: excimp8.cxx:181
void FilterMode()
Definition: excimp8.cxx:432
void Precision()
Definition: excimp8.cxx:167
virtual ErrCode Read() override
Definition: read.cxx:796
ImportExcel8(XclImpRootData &rImpData, SvStream &rStrm)
Definition: excimp8.cxx:148
void Delta()
Definition: excimp8.cxx:174
void Scenario()
Definition: excimp8.cxx:231
void Feat()
Definition: excimp8.cxx:273
void Labelsst()
Definition: excimp8.cxx:236
void Calccount()
Definition: excimp8.cxx:160
void AutoFilterInfo()
Definition: excimp8.cxx:445
void Scenman()
Definition: excimp8.cxx:221
ExcScenarioList maScenList
Definition: excimp8.hxx:58
void Boundsheet()
Definition: excimp8.cxx:188
virtual void EndSheet() override
Definition: excimp8.cxx:377
virtual ~ImportExcel8() override
Definition: excimp8.cxx:156
std::shared_ptr< XclImpAutoFilterData > XclImpAutoFilterSharePtr
Definition: excimp8.hxx:111
void AddAdvancedRange(const ScRange &rRange)
Definition: excimp8.cxx:790
void AddExtractPos(const ScRange &rRange)
Definition: excimp8.cxx:797
std::vector< XclImpAutoFilterSharePtr > maFilters
Definition: excimp8.hxx:112
XclImpAutoFilterData * GetByTab(SCTAB nTab)
Definition: excimp8.cxx:810
void Insert(RootData *pRoot, const ScRange &rRange)
Definition: excimp8.cxx:784
XclImpAutoFilterData(RootData *pRoot, const ScRange &rRange)
Definition: excimp8.cxx:466
void SetAutoOrAdvanced()
Definition: excimp8.hxx:94
void SetExtractPos(const ScAddress &rAddr)
Definition: excimp8.cxx:734
void EnableRemoveFilter()
Definition: excimp8.cxx:770
void SetAdvancedRange(const ScRange *pRange)
Definition: excimp8.cxx:723
SCROW StartRow() const
Definition: excimp8.hxx:85
void ReadAutoFilter(XclImpStream &rStrm, svl::SharedStringPool &rPool)
Definition: excimp8.cxx:553
SCTAB Tab() const
Definition: excimp8.hxx:83
ScQueryParam aParam
Definition: excimp8.hxx:66
bool IsFiltered() const
Definition: excimp8.hxx:82
SCCOL EndCol() const
Definition: excimp8.hxx:86
bool IsActive() const
Definition: excimp8.hxx:81
SCCOL StartCol() const
Definition: excimp8.hxx:84
ScDBData * pCurrDBData
Definition: excimp8.hxx:65
SCROW EndRow() const
Definition: excimp8.hxx:87
ScRange aCriteriaRange
Definition: excimp8.hxx:67
This class is used to import record oriented streams.
Definition: xistream.hxx:278
void SvStream & rStrm
Stores global buffers and data needed for Excel import filter.
Definition: xiroot.hxx:64
sal_Int16 SCTAB
Definition: types.hxx:22
sal_Int16 SCCOL
Definition: types.hxx:21
sal_Int32 SCROW
Definition: types.hxx:17