diff options
Diffstat (limited to 'oox/source/xls/worksheetbuffer.cxx')
-rw-r--r-- | oox/source/xls/worksheetbuffer.cxx | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/oox/source/xls/worksheetbuffer.cxx b/oox/source/xls/worksheetbuffer.cxx index ee2491880c4e..5f19fd55dbcd 100644 --- a/oox/source/xls/worksheetbuffer.cxx +++ b/oox/source/xls/worksheetbuffer.cxx @@ -61,6 +61,7 @@ namespace xls { // ============================================================================ SheetInfoModel::SheetInfoModel() : + mnBiffHandle( -1 ), mnSheetId( -1 ), mnState( XML_visible ) { @@ -111,19 +112,19 @@ void WorksheetBuffer::importSheet( RecordInputStream& rStrm ) void WorksheetBuffer::importSheet( BiffInputStream& rStrm ) { - sal_uInt16 nState = 0; + SheetInfoModel aModel; if( getBiff() >= BIFF5 ) { - rStrm.skip( 4 ); - rStrm >> nState; + rStrm.enableDecoder( false ); + aModel.mnBiffHandle = rStrm.readuInt32(); + rStrm.enableDecoder( true ); + sal_uInt16 nState = rStrm.readuInt16(); + static const sal_Int32 spnStates[] = { XML_visible, XML_hidden, XML_veryHidden }; + aModel.mnState = STATIC_ARRAY_SELECT( spnStates, nState, XML_visible ); } - - SheetInfoModel aModel; aModel.maName = (getBiff() == BIFF8) ? rStrm.readUniStringBody( rStrm.readuInt8() ) : rStrm.readByteStringUC( false, getTextEncoding() ); - static const sal_Int32 spnStates[] = { XML_visible, XML_hidden, XML_veryHidden }; - aModel.mnState = STATIC_ARRAY_SELECT( spnStates, nState, XML_visible ); insertSheet( aModel ); } @@ -143,6 +144,12 @@ OUString WorksheetBuffer::getWorksheetRelId( sal_Int32 nWorksheet ) const return pSheetInfo ? pSheetInfo->maRelId : OUString(); } +sal_Int64 WorksheetBuffer::getBiffRecordHandle( sal_Int32 nWorksheet ) const +{ + const SheetInfo* pSheetInfo = maSheetInfos.get( nWorksheet ).get(); + return pSheetInfo ? pSheetInfo->mnBiffHandle : -1; +} + sal_Int16 WorksheetBuffer::getCalcSheetIndex( sal_Int32 nWorksheet ) const { const SheetInfo* pSheetInfo = maSheetInfos.get( nWorksheet ).get(); @@ -250,13 +257,6 @@ void WorksheetBuffer::insertSheet( const SheetInfoModel& rModel ) maSheetInfosByName[ lclQuoteName( rModel.maName ) ] = xSheetInfo; } -bool WorksheetBuffer::SheetNameCompare::operator()( const OUString& rName1, const OUString& rName2 ) const -{ - // there is no wrapper in rtl::OUString, TODO: compare with collator - return ::rtl_ustr_compareIgnoreAsciiCase_WithLength( - rName1.getStr(), rName1.getLength(), rName2.getStr(), rName2.getLength() ) < 0; -} - // ============================================================================ } // namespace xls |