1e3508121SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3e3508121SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4e3508121SAndrew Rist * or more contributor license agreements. See the NOTICE file 5e3508121SAndrew Rist * distributed with this work for additional information 6e3508121SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7e3508121SAndrew Rist * to you under the Apache License, Version 2.0 (the 8e3508121SAndrew Rist * "License"); you may not use this file except in compliance 9e3508121SAndrew Rist * with the License. You may obtain a copy of the License at 10e3508121SAndrew Rist * 11e3508121SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12e3508121SAndrew Rist * 13e3508121SAndrew Rist * Unless required by applicable law or agreed to in writing, 14e3508121SAndrew Rist * software distributed under the License is distributed on an 15e3508121SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16e3508121SAndrew Rist * KIND, either express or implied. See the License for the 17e3508121SAndrew Rist * specific language governing permissions and limitations 18e3508121SAndrew Rist * under the License. 19e3508121SAndrew Rist * 20e3508121SAndrew Rist *************************************************************/ 21e3508121SAndrew Rist 22e3508121SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef OOX_XLS_WORKSHEETHELPER_HXX 25cdf0e10cSrcweir #define OOX_XLS_WORKSHEETHELPER_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include "oox/helper/containerhelper.hxx" 28cdf0e10cSrcweir #include "oox/helper/progressbar.hxx" 29cdf0e10cSrcweir #include "oox/ole/olehelper.hxx" 30cdf0e10cSrcweir #include "oox/xls/addressconverter.hxx" 31cdf0e10cSrcweir #include "oox/xls/formulabase.hxx" 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace com { namespace sun { namespace star { 34cdf0e10cSrcweir namespace awt { struct Point; } 35cdf0e10cSrcweir namespace awt { struct Rectangle; } 36cdf0e10cSrcweir namespace awt { struct Size; } 37cdf0e10cSrcweir namespace drawing { class XDrawPage; } 38cdf0e10cSrcweir namespace sheet { class XSheetCellRanges; } 39cdf0e10cSrcweir namespace sheet { class XSpreadsheet; } 40cdf0e10cSrcweir namespace table { class XCell; } 41cdf0e10cSrcweir namespace table { class XCellRange; } 42cdf0e10cSrcweir namespace table { class XTableColumns; } 43cdf0e10cSrcweir namespace table { class XTableRows; } 44cdf0e10cSrcweir } } } 45cdf0e10cSrcweir 46cdf0e10cSrcweir namespace oox { 47cdf0e10cSrcweir namespace xls { 48cdf0e10cSrcweir 49cdf0e10cSrcweir class AutoFilterBuffer; 50cdf0e10cSrcweir struct BinAddress; 51cdf0e10cSrcweir struct BinRange; 52cdf0e10cSrcweir class BiffSheetDrawing; 53cdf0e10cSrcweir class BinRangeList; 54cdf0e10cSrcweir class CommentsBuffer; 55cdf0e10cSrcweir class CondFormatBuffer; 56cdf0e10cSrcweir class Font; 57cdf0e10cSrcweir class PageSettings; 58cdf0e10cSrcweir class QueryTableBuffer; 59cdf0e10cSrcweir class RichString; 60cdf0e10cSrcweir class SheetDataBuffer; 61cdf0e10cSrcweir class SheetViewSettings; 62cdf0e10cSrcweir class VmlDrawing; 63cdf0e10cSrcweir class WorksheetSettings; 64cdf0e10cSrcweir 65cdf0e10cSrcweir // ============================================================================ 66cdf0e10cSrcweir // ============================================================================ 67cdf0e10cSrcweir 68cdf0e10cSrcweir /** An enumeration for all types of sheets in a workbook. */ 69cdf0e10cSrcweir enum WorksheetType 70cdf0e10cSrcweir { 71cdf0e10cSrcweir SHEETTYPE_WORKSHEET, /// Worksheet. 72cdf0e10cSrcweir SHEETTYPE_CHARTSHEET, /// Chart sheet. 73cdf0e10cSrcweir SHEETTYPE_MACROSHEET, /// Macro sheet. 74cdf0e10cSrcweir SHEETTYPE_DIALOGSHEET, /// Dialog sheet (BIFF5+). 75cdf0e10cSrcweir SHEETTYPE_MODULESHEET, /// VB module sheet (BIFF5 only). 76cdf0e10cSrcweir SHEETTYPE_EMPTYSHEET /// Other (unsupported) sheet type. 77cdf0e10cSrcweir }; 78cdf0e10cSrcweir 79cdf0e10cSrcweir // ============================================================================ 80cdf0e10cSrcweir 81cdf0e10cSrcweir /** Stores settings and formatting data about a range of sheet columns. */ 82cdf0e10cSrcweir struct ColumnModel 83cdf0e10cSrcweir { 84cdf0e10cSrcweir ValueRange maRange; /// 1-based (!) range of the described columns. 85cdf0e10cSrcweir double mfWidth; /// Column width in number of characters. 86cdf0e10cSrcweir sal_Int32 mnXfId; /// Column default formatting. 87cdf0e10cSrcweir sal_Int32 mnLevel; /// Column outline level. 88cdf0e10cSrcweir bool mbShowPhonetic; /// True = cells in column show phonetic settings. 89cdf0e10cSrcweir bool mbHidden; /// True = column is hidden. 90cdf0e10cSrcweir bool mbCollapsed; /// True = column outline is collapsed. 91cdf0e10cSrcweir 92cdf0e10cSrcweir explicit ColumnModel(); 93cdf0e10cSrcweir 94cdf0e10cSrcweir /** Returns true, if this entry can be merged with the passed column range (column settings are equal). */ 95cdf0e10cSrcweir bool isMergeable( const ColumnModel& rModel ) const; 96cdf0e10cSrcweir }; 97cdf0e10cSrcweir 98cdf0e10cSrcweir // ---------------------------------------------------------------------------- 99cdf0e10cSrcweir 100cdf0e10cSrcweir /** Stores settings and formatting data about a sheet row. */ 101cdf0e10cSrcweir struct RowModel 102cdf0e10cSrcweir { 103cdf0e10cSrcweir sal_Int32 mnRow; /// 1-based (!) index of the described row. 104cdf0e10cSrcweir ValueRangeSet maColSpans; /// 0-based (!) column ranges of used cells. 105cdf0e10cSrcweir double mfHeight; /// Row height in points. 106cdf0e10cSrcweir sal_Int32 mnXfId; /// Row default formatting (see mbIsFormatted). 107cdf0e10cSrcweir sal_Int32 mnLevel; /// Row outline level. 108cdf0e10cSrcweir bool mbCustomHeight; /// True = row has custom height. 109cdf0e10cSrcweir bool mbCustomFormat; /// True = cells in row have explicit formatting. 110cdf0e10cSrcweir bool mbShowPhonetic; /// True = cells in row show phonetic settings. 111cdf0e10cSrcweir bool mbHidden; /// True = row is hidden. 112cdf0e10cSrcweir bool mbCollapsed; /// True = row outline is collapsed. 113cdf0e10cSrcweir bool mbThickTop; /// True = row has extra space above text. 114cdf0e10cSrcweir bool mbThickBottom; /// True = row has extra space below text. 115cdf0e10cSrcweir 116cdf0e10cSrcweir explicit RowModel(); 117cdf0e10cSrcweir 118cdf0e10cSrcweir /** Inserts the passed column span into the row model. */ 119cdf0e10cSrcweir void insertColSpan( const ValueRange& rColSpan ); 120cdf0e10cSrcweir /** Returns true, if this entry can be merged with the passed row range (row settings are equal). */ 121cdf0e10cSrcweir bool isMergeable( const RowModel& rModel ) const; 122cdf0e10cSrcweir }; 123cdf0e10cSrcweir 124cdf0e10cSrcweir // ---------------------------------------------------------------------------- 125cdf0e10cSrcweir 126cdf0e10cSrcweir /** Stores formatting data about a page break. */ 127cdf0e10cSrcweir struct PageBreakModel 128cdf0e10cSrcweir { 129cdf0e10cSrcweir sal_Int32 mnColRow; /// 0-based (!) index of column/row. 130cdf0e10cSrcweir sal_Int32 mnMin; /// Start of limited break. 131cdf0e10cSrcweir sal_Int32 mnMax; /// End of limited break. 132cdf0e10cSrcweir bool mbManual; /// True = manual page break. 133cdf0e10cSrcweir 134cdf0e10cSrcweir explicit PageBreakModel(); 135cdf0e10cSrcweir }; 136cdf0e10cSrcweir 137cdf0e10cSrcweir // ---------------------------------------------------------------------------- 138cdf0e10cSrcweir 139cdf0e10cSrcweir /** Stores data about a hyperlink range. */ 140cdf0e10cSrcweir struct HyperlinkModel : public ::oox::ole::StdHlinkInfo 141cdf0e10cSrcweir { 142cdf0e10cSrcweir ::com::sun::star::table::CellRangeAddress 143cdf0e10cSrcweir maRange; /// The cell area containing the hyperlink. 144cdf0e10cSrcweir ::rtl::OUString maTooltip; /// Additional tooltip text. 145cdf0e10cSrcweir 146cdf0e10cSrcweir explicit HyperlinkModel(); 147cdf0e10cSrcweir }; 148cdf0e10cSrcweir 149cdf0e10cSrcweir // ---------------------------------------------------------------------------- 150cdf0e10cSrcweir 151cdf0e10cSrcweir /** Stores data about ranges with data validation settings. */ 152cdf0e10cSrcweir struct ValidationModel 153cdf0e10cSrcweir { 154cdf0e10cSrcweir ApiCellRangeList maRanges; 155cdf0e10cSrcweir ApiTokenSequence maTokens1; 156cdf0e10cSrcweir ApiTokenSequence maTokens2; 157*15851beaSSteve Yin ::rtl::OUString msRef; 158cdf0e10cSrcweir ::rtl::OUString maInputTitle; 159cdf0e10cSrcweir ::rtl::OUString maInputMessage; 160cdf0e10cSrcweir ::rtl::OUString maErrorTitle; 161cdf0e10cSrcweir ::rtl::OUString maErrorMessage; 162cdf0e10cSrcweir sal_Int32 mnType; 163cdf0e10cSrcweir sal_Int32 mnOperator; 164cdf0e10cSrcweir sal_Int32 mnErrorStyle; 165cdf0e10cSrcweir bool mbShowInputMsg; 166cdf0e10cSrcweir bool mbShowErrorMsg; 167cdf0e10cSrcweir bool mbNoDropDown; 168cdf0e10cSrcweir bool mbAllowBlank; 169cdf0e10cSrcweir 170cdf0e10cSrcweir explicit ValidationModel(); 171cdf0e10cSrcweir 172cdf0e10cSrcweir /** Sets the passed BIFF validation type. */ 173cdf0e10cSrcweir void setBiffType( sal_uInt8 nType ); 174cdf0e10cSrcweir /** Sets the passed BIFF operator. */ 175cdf0e10cSrcweir void setBiffOperator( sal_uInt8 nOperator ); 176cdf0e10cSrcweir /** Sets the passed BIFF error style. */ 177cdf0e10cSrcweir void setBiffErrorStyle( sal_uInt8 nErrorStyle ); 178cdf0e10cSrcweir }; 179cdf0e10cSrcweir 180cdf0e10cSrcweir // ============================================================================ 181cdf0e10cSrcweir // ============================================================================ 182cdf0e10cSrcweir 183cdf0e10cSrcweir class WorksheetGlobals; 184cdf0e10cSrcweir typedef ::boost::shared_ptr< WorksheetGlobals > WorksheetGlobalsRef; 185cdf0e10cSrcweir 186cdf0e10cSrcweir class WorksheetHelper : public WorkbookHelper 187cdf0e10cSrcweir { 188cdf0e10cSrcweir public: 189cdf0e10cSrcweir /*implicit*/ WorksheetHelper( WorksheetGlobals& rSheetGlob ); 190cdf0e10cSrcweir 191cdf0e10cSrcweir static WorksheetGlobalsRef constructGlobals( 192cdf0e10cSrcweir const WorkbookHelper& rHelper, 193cdf0e10cSrcweir const ISegmentProgressBarRef& rxProgressBar, 194cdf0e10cSrcweir WorksheetType eSheetType, 195cdf0e10cSrcweir sal_Int16 nSheet ); 196cdf0e10cSrcweir 197cdf0e10cSrcweir // ------------------------------------------------------------------------ 198cdf0e10cSrcweir 199cdf0e10cSrcweir /** Returns the type of this sheet. */ 200cdf0e10cSrcweir WorksheetType getSheetType() const; 201cdf0e10cSrcweir /** Returns the index of the current sheet. */ 202cdf0e10cSrcweir sal_Int16 getSheetIndex() const; 203cdf0e10cSrcweir /** Returns the XSpreadsheet interface of the current sheet. */ 204cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSpreadsheet >& 205cdf0e10cSrcweir getSheet() const; 206cdf0e10cSrcweir 207cdf0e10cSrcweir /** Returns the XCell interface for the passed cell address. */ 208cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell > 209cdf0e10cSrcweir getCell( const ::com::sun::star::table::CellAddress& rAddress ) const; 210cdf0e10cSrcweir /** Returns the XCellRange interface for the passed cell range address. */ 211cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > 212cdf0e10cSrcweir getCellRange( const ::com::sun::star::table::CellRangeAddress& rRange ) const; 213cdf0e10cSrcweir /** Returns the XSheetCellRanges interface for the passed cell range addresses. */ 214cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XSheetCellRanges > 215cdf0e10cSrcweir getCellRangeList( const ApiCellRangeList& rRanges ) const; 216cdf0e10cSrcweir 217cdf0e10cSrcweir /** Returns the address of the passed cell. The cell reference must be valid. */ 218cdf0e10cSrcweir static ::com::sun::star::table::CellAddress 219cdf0e10cSrcweir getCellAddress( 220cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::table::XCell >& rxCell ); 221cdf0e10cSrcweir /** Returns the address of the passed cell range. The range reference must be valid. */ 222cdf0e10cSrcweir static ::com::sun::star::table::CellRangeAddress 223cdf0e10cSrcweir getRangeAddress( 224cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange >& rxRange ); 225cdf0e10cSrcweir 226cdf0e10cSrcweir /** Returns the XCellRange interface for a column. */ 227cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > 228cdf0e10cSrcweir getColumn( sal_Int32 nCol ) const; 229cdf0e10cSrcweir /** Returns the XCellRange interface for a row. */ 230cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XCellRange > 231cdf0e10cSrcweir getRow( sal_Int32 nRow ) const; 232cdf0e10cSrcweir 233cdf0e10cSrcweir /** Returns the XTableColumns interface for a range of columns. */ 234cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableColumns > 235cdf0e10cSrcweir getColumns( const ValueRange& rColRange ) const; 236cdf0e10cSrcweir /** Returns the XTableRows interface for a range of rows. */ 237cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::table::XTableRows > 238cdf0e10cSrcweir getRows( const ValueRange& rRowRange ) const; 239cdf0e10cSrcweir 240cdf0e10cSrcweir /** Returns the XDrawPage interface of the draw page of the current sheet. */ 241cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XDrawPage > 242cdf0e10cSrcweir getDrawPage() const; 243cdf0e10cSrcweir 244cdf0e10cSrcweir /** Returns the absolute cell position in 1/100 mm. */ 245cdf0e10cSrcweir ::com::sun::star::awt::Point getCellPosition( sal_Int32 nCol, sal_Int32 nRow ) const; 246cdf0e10cSrcweir /** Returns the cell size in 1/100 mm. */ 247cdf0e10cSrcweir ::com::sun::star::awt::Size getCellSize( sal_Int32 nCol, sal_Int32 nRow ) const; 248cdf0e10cSrcweir /** Returns the size of the entire drawing page in 1/100 mm. */ 249cdf0e10cSrcweir ::com::sun::star::awt::Size getDrawPageSize() const; 250cdf0e10cSrcweir 251cdf0e10cSrcweir /** Returns the buffer for cell contents and cell formatting. */ 252cdf0e10cSrcweir SheetDataBuffer& getSheetData() const; 253cdf0e10cSrcweir /** Returns the conditional formattings in this sheet. */ 254cdf0e10cSrcweir CondFormatBuffer& getCondFormats() const; 255cdf0e10cSrcweir /** Returns the buffer for all cell comments in this sheet. */ 256cdf0e10cSrcweir CommentsBuffer& getComments() const; 257cdf0e10cSrcweir /** Returns the auto filters for the sheet. */ 258cdf0e10cSrcweir AutoFilterBuffer& getAutoFilters() const; 259cdf0e10cSrcweir /** Returns the buffer for all web query tables in this sheet. */ 260cdf0e10cSrcweir QueryTableBuffer& getQueryTables() const; 261cdf0e10cSrcweir /** Returns the worksheet settings object. */ 262cdf0e10cSrcweir WorksheetSettings& getWorksheetSettings() const; 263cdf0e10cSrcweir /** Returns the page/print settings for this sheet. */ 264cdf0e10cSrcweir PageSettings& getPageSettings() const; 265cdf0e10cSrcweir /** Returns the view settings for this sheet. */ 266cdf0e10cSrcweir SheetViewSettings& getSheetViewSettings() const; 267cdf0e10cSrcweir /** Returns the VML drawing page for this sheet (OOXML/BIFF12 only). */ 268cdf0e10cSrcweir VmlDrawing& getVmlDrawing() const; 269cdf0e10cSrcweir /** Returns the BIFF drawing page for this sheet (BIFF2-BIFF8 only). */ 270cdf0e10cSrcweir BiffSheetDrawing& getBiffDrawing() const; 271cdf0e10cSrcweir 272cdf0e10cSrcweir /** Changes the current sheet type. */ 273cdf0e10cSrcweir void setSheetType( WorksheetType eSheetType ); 274cdf0e10cSrcweir /** Sets a column or row page break described in the passed struct. */ 275cdf0e10cSrcweir void setPageBreak( const PageBreakModel& rModel, bool bRowBreak ); 276cdf0e10cSrcweir /** Inserts the hyperlink URL into the spreadsheet. */ 277cdf0e10cSrcweir void setHyperlink( const HyperlinkModel& rModel ); 278cdf0e10cSrcweir /** Inserts the data validation settings into the spreadsheet. */ 279cdf0e10cSrcweir void setValidation( const ValidationModel& rModel ); 280cdf0e10cSrcweir /** Sets the passed label ranges to the current sheet. */ 281cdf0e10cSrcweir void setLabelRanges( const ApiCellRangeList& rColRanges, const ApiCellRangeList& rRowRanges ); 282cdf0e10cSrcweir /** Sets the path to the DrawingML fragment of this sheet. */ 283cdf0e10cSrcweir void setDrawingPath( const ::rtl::OUString& rDrawingPath ); 284cdf0e10cSrcweir /** Sets the path to the legacy VML drawing fragment of this sheet. */ 285cdf0e10cSrcweir void setVmlDrawingPath( const ::rtl::OUString& rVmlDrawingPath ); 286cdf0e10cSrcweir 287cdf0e10cSrcweir /** Extends the used area of this sheet by the passed cell position. */ 288cdf0e10cSrcweir void extendUsedArea( const ::com::sun::star::table::CellAddress& rAddress ); 289cdf0e10cSrcweir /** Extends the used area of this sheet by the passed cell range. */ 290cdf0e10cSrcweir void extendUsedArea( const ::com::sun::star::table::CellRangeAddress& rRange ); 291cdf0e10cSrcweir /** Extends the shape bounding box by the position and size of the passed rectangle (in 1/100 mm). */ 292cdf0e10cSrcweir void extendShapeBoundingBox( const ::com::sun::star::awt::Rectangle& rShapeRect ); 293cdf0e10cSrcweir 294cdf0e10cSrcweir /** Sets base width for all columns (without padding pixels). This value 295cdf0e10cSrcweir is only used, if width has not been set with setDefaultColumnWidth(). */ 296cdf0e10cSrcweir void setBaseColumnWidth( sal_Int32 nWidth ); 297cdf0e10cSrcweir /** Sets default width for all columns. This function overrides the base 298cdf0e10cSrcweir width set with the setBaseColumnWidth() function. */ 299cdf0e10cSrcweir void setDefaultColumnWidth( double fWidth ); 300cdf0e10cSrcweir /** Converts default cell formatting for a range of columns. */ 301cdf0e10cSrcweir void setDefaultColumnFormat( sal_Int32 nFirstCol, sal_Int32 nLastCol, sal_Int32 nXfId ); 302cdf0e10cSrcweir /** Sets column settings for a specific range of columns. 303cdf0e10cSrcweir @descr Column default formatting is converted directly, other settings 304cdf0e10cSrcweir are cached and converted in the finalizeWorksheetImport() call. */ 305cdf0e10cSrcweir void setColumnModel( const ColumnModel& rModel ); 306cdf0e10cSrcweir 307cdf0e10cSrcweir /** Sets default height and hidden state for all unused rows in the sheet. */ 308cdf0e10cSrcweir void setDefaultRowSettings( 309cdf0e10cSrcweir double fHeight, bool bCustomHeight, 310cdf0e10cSrcweir bool bHidden, bool bThickTop, bool bThickBottom ); 311cdf0e10cSrcweir /** Sets row settings for a specific range of rows. 312cdf0e10cSrcweir @descr Row default formatting is converted directly, other settings 313cdf0e10cSrcweir are cached and converted in the finalizeWorksheetImport() call. */ 314cdf0e10cSrcweir void setRowModel( const RowModel& rModel ); 315cdf0e10cSrcweir /** Specifies that the passed row needs to set its height manually. */ 316cdf0e10cSrcweir void setManualRowHeight( sal_Int32 nRow ); 317cdf0e10cSrcweir 318cdf0e10cSrcweir /** Inserts a value cell directly into the Calc sheet. */ 319cdf0e10cSrcweir void putValue( 320cdf0e10cSrcweir const ::com::sun::star::table::CellAddress& rAddress, 321cdf0e10cSrcweir double fValue ) const; 322cdf0e10cSrcweir /** Inserts a string cell directly into the Calc sheet. */ 323cdf0e10cSrcweir void putString( 324cdf0e10cSrcweir const ::com::sun::star::table::CellAddress& rAddress, 325cdf0e10cSrcweir const ::rtl::OUString& rText ) const; 326cdf0e10cSrcweir /** Inserts a rich-string cell directly into the Calc sheet. */ 327cdf0e10cSrcweir void putRichString( 328cdf0e10cSrcweir const ::com::sun::star::table::CellAddress& rAddress, 329cdf0e10cSrcweir const RichString& rString, 330cdf0e10cSrcweir const Font* pFirstPortionFont ) const; 331cdf0e10cSrcweir /** Inserts a formula cell directly into the Calc sheet. */ 332cdf0e10cSrcweir void putFormulaTokens( 333cdf0e10cSrcweir const ::com::sun::star::table::CellAddress& rAddress, 334cdf0e10cSrcweir const ApiTokenSequence& rTokens ) const; 335cdf0e10cSrcweir 336cdf0e10cSrcweir /** Initial conversion before importing the worksheet. */ 337cdf0e10cSrcweir void initializeWorksheetImport(); 338cdf0e10cSrcweir /** Final conversion after importing the worksheet. */ 339cdf0e10cSrcweir void finalizeWorksheetImport(); 340cdf0e10cSrcweir 341cdf0e10cSrcweir private: 342cdf0e10cSrcweir WorksheetGlobals& mrSheetGlob; 343cdf0e10cSrcweir }; 344cdf0e10cSrcweir 345cdf0e10cSrcweir // ============================================================================ 346cdf0e10cSrcweir // ============================================================================ 347cdf0e10cSrcweir 348cdf0e10cSrcweir } // namespace xls 349cdf0e10cSrcweir } // namespace oox 350cdf0e10cSrcweir 351cdf0e10cSrcweir #endif 352