summaryrefslogtreecommitdiff
path: root/oox/inc/oox/xls/worksheetfragment.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/inc/oox/xls/worksheetfragment.hxx')
-rw-r--r--oox/inc/oox/xls/worksheetfragment.hxx197
1 files changed, 197 insertions, 0 deletions
diff --git a/oox/inc/oox/xls/worksheetfragment.hxx b/oox/inc/oox/xls/worksheetfragment.hxx
new file mode 100644
index 000000000000..7234153d7dd3
--- /dev/null
+++ b/oox/inc/oox/xls/worksheetfragment.hxx
@@ -0,0 +1,197 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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 OOX_XLS_WORKSHEETFRAGMENT_HXX
+#define OOX_XLS_WORKSHEETFRAGMENT_HXX
+
+#include "oox/xls/excelhandlers.hxx"
+
+namespace oox {
+namespace xls {
+
+// ============================================================================
+
+class OoxDataValidationsContext : public OoxWorksheetContextBase
+{
+public:
+ explicit OoxDataValidationsContext( OoxWorksheetFragmentBase& rFragment );
+
+protected:
+ // oox.core.ContextHandler2Helper interface -------------------------------
+
+ virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs );
+ virtual void onEndElement( const ::rtl::OUString& rChars );
+
+ virtual ::oox::core::ContextHandlerRef onCreateRecordContext( sal_Int32 nRecId, RecordInputStream& rStrm );
+
+private:
+ /** Imports the dataValidation element containing data validation settings. */
+ void importDataValidation( const AttributeList& rAttribs );
+ /** Imports the DATAVALIDATION record containing data validation settings. */
+ void importDataValidation( RecordInputStream& rStrm );
+
+private:
+ ::std::auto_ptr< ValidationModel > mxValModel;
+};
+
+// ============================================================================
+
+class OoxWorksheetFragment : public OoxWorksheetFragmentBase
+{
+public:
+ explicit OoxWorksheetFragment(
+ const WorkbookHelper& rHelper,
+ const ::rtl::OUString& rFragmentPath,
+ ISegmentProgressBarRef xProgressBar,
+ WorksheetType eSheetType,
+ sal_Int16 nSheet );
+
+protected:
+ // oox.core.ContextHandler2Helper interface -------------------------------
+
+ virtual ::oox::core::ContextHandlerRef onCreateContext( sal_Int32 nElement, const AttributeList& rAttribs );
+ virtual void onEndElement( const ::rtl::OUString& rChars );
+
+ virtual ::oox::core::ContextHandlerRef onCreateRecordContext( sal_Int32 nRecId, RecordInputStream& rStrm );
+
+ // oox.core.FragmentHandler2 interface ------------------------------------
+
+ virtual const ::oox::core::RecordInfo* getRecordInfos() const;
+ virtual void initializeImport();
+ virtual void finalizeImport();
+
+private:
+ /** Imports page settings from a pageSetUpPr element. */
+ void importPageSetUpPr( const AttributeList& rAttribs );
+ /** Imports the dimension element containing the used area of the sheet. */
+ void importDimension( const AttributeList& rAttribs );
+ /** Imports sheet format properties from a sheetFormatPr element. */
+ void importSheetFormatPr( const AttributeList& rAttribs );
+ /** Imports column settings from a col element. */
+ void importCol( const AttributeList& rAttribs );
+ /** Imports a merged cell range from a mergeCell element. */
+ void importMergeCell( const AttributeList& rAttribs );
+ /** Imports the hyperlink element containing a hyperlink for a cell range. */
+ void importHyperlink( const AttributeList& rAttribs );
+ /** Imports individual break that is either within row or column break context. */
+ void importBrk( const AttributeList& rAttribs, bool bRowBreak );
+ /** Imports the the relation identifier for the DrawingML part. */
+ void importDrawing( const AttributeList& rAttribs );
+ /** Imports the the relation identifier for the legacy VML drawing part. */
+ void importLegacyDrawing( const AttributeList& rAttribs );
+ /** Imports additional data for an OLE object. */
+ void importOleObject( const AttributeList& rAttribs );
+ /** Imports additional data for an OCX form control. */
+ void importControl( const AttributeList& rAttribs );
+
+ /** Imports the DIMENSION record containing the used area of the sheet. */
+ void importDimension( RecordInputStream& rStrm );
+ /** Imports sheet format properties from a SHEETFORMATPR record. */
+ void importSheetFormatPr( RecordInputStream& rStrm );
+ /** Imports column settings from a COL record. */
+ void importCol( RecordInputStream& rStrm );
+ /** Imports a merged cell range from a MERGECELL record. */
+ void importMergeCell( RecordInputStream& rStrm );
+ /** Imports a hyperlink for a cell range from a HYPERLINK record. */
+ void importHyperlink( RecordInputStream& rStrm );
+ /** Imports the BRK record for an individual row or column page break. */
+ void importBrk( RecordInputStream& rStrm, bool bRowBreak );
+ /** Imports the DRAWING record containing the relation identifier for the DrawingML part. */
+ void importDrawing( RecordInputStream& rStrm );
+ /** Imports the LEGACYDRAWING record containing the relation identifier for the VML drawing part. */
+ void importLegacyDrawing( RecordInputStream& rStrm );
+ /** Imports additional data for an OLE object. */
+ void importOleObject( RecordInputStream& rStrm );
+ /** Imports additional data for an OCX form control. */
+ void importControl( RecordInputStream& rStrm );
+
+ /** Imports the binary data of an embedded OLE object from the fragment with the passed ID. */
+ void importEmbeddedOleData( StreamDataSequence& orEmbeddedData, const ::rtl::OUString& rRelId );
+};
+
+// ============================================================================
+
+class BiffPivotTableContext;
+
+class BiffWorksheetFragment : public BiffWorksheetFragmentBase
+{
+public:
+ explicit BiffWorksheetFragment(
+ const BiffWorkbookFragmentBase& rParent,
+ ISegmentProgressBarRef xProgressBar,
+ WorksheetType eSheetType,
+ sal_Int16 nSheet );
+ virtual ~BiffWorksheetFragment();
+
+ /** Imports the entire worksheet fragment, returns true, if EOF record has been reached. */
+ virtual bool importFragment();
+
+private:
+ /** Imports the COLINFO record and sets column properties and formatting. */
+ void importColInfo();
+ /** Imports the BIFF2 COLUMNDEFAULT record and sets column default formatting. */
+ void importColumnDefault();
+ /** Imports the BIFF2 COLWIDTH record and sets column width. */
+ void importColWidth();
+ /** Imports the DATAVALIDATION record containing cell ranges with data validation settings. */
+ void importDataValidation();
+ /** Imports the DATAVALIDATIONS record containing global data validation settings. */
+ void importDataValidations();
+ /** Imports the DEFCOLWIDTH record and sets default column width. */
+ void importDefColWidth();
+ /** Imports the DEFROWHEIGHT record and sets default row height and properties. */
+ void importDefRowHeight();
+ /** Imports the DIMENSION record containing the used area of the sheet. */
+ void importDimension();
+ /** Imports the HYPERLINK record and sets a cell hyperlink. */
+ void importHyperlink();
+ /** Imports the LABELRANGES record and sets the imported label ranges. */
+ void importLabelRanges();
+ /** Imports the MEREDCELLS record and merges all cells in the document. */
+ void importMergedCells();
+ /** Imports the HORPAGEBREAKS or VERPAGEBREAKS record and inserts page breaks. */
+ void importPageBreaks( bool bRowBreak );
+ /** Imports a pivot table. */
+ void importPTDefinition();
+ /** Imports the SCENARIOS record and the following scenarios. */
+ void importScenarios();
+ /** Imports the SHAREDFEATHEAD record. */
+ void importSharedFeatHead();
+ /** Imports the STANDARDWIDTH record and sets standard column width. */
+ void importStandardWidth();
+
+private:
+ ::boost::shared_ptr< BiffPivotTableContext > mxPTContext;
+};
+
+// ============================================================================
+
+} // namespace xls
+} // namespace oox
+
+#endif
+