diff options
Diffstat (limited to 'oox/source/dump')
-rw-r--r-- | oox/source/dump/biffdumper.cxx | 49 | ||||
-rw-r--r-- | oox/source/dump/biffdumper.ini | 31 | ||||
-rw-r--r-- | oox/source/dump/xlsbdumper.cxx | 32 | ||||
-rw-r--r-- | oox/source/dump/xlsbdumper.ini | 32 |
4 files changed, 137 insertions, 7 deletions
diff --git a/oox/source/dump/biffdumper.cxx b/oox/source/dump/biffdumper.cxx index d768b08812b7..2f362af6ad2d 100644 --- a/oox/source/dump/biffdumper.cxx +++ b/oox/source/dump/biffdumper.cxx @@ -2433,6 +2433,19 @@ void WorkbookStreamObject::implDumpRecordBody() dumpString( "password-creator", BIFF_STR_8BITLENGTH, BIFF_STR_SMARTFLAGS ); break; + case BIFF_ID_FILTERCOLUMN: + { + dumpDec< sal_uInt16 >( "column-index" ); + dumpHex< sal_uInt16 >( "flags", "FILTERCOLUMN-FLAGS" ); + sal_uInt8 nStrLen1 = dumpFilterColumnOperator( "operator-1" ); + sal_uInt8 nStrLen2 = dumpFilterColumnOperator( "operator-2" ); + bool bBiff8 = eBiff == BIFF8; + rtl_TextEncoding eTextEnc = getBiffData().getTextEncoding(); + if( nStrLen1 > 0 ) writeStringItem( "string-1", bBiff8 ? rStrm.readUniStringBody( nStrLen1, true ) : rStrm.readCharArrayUC( nStrLen1, eTextEnc, true ) ); + if( nStrLen2 > 0 ) writeStringItem( "string-2", bBiff8 ? rStrm.readUniStringBody( nStrLen2, true ) : rStrm.readCharArrayUC( nStrLen2, eTextEnc, true ) ); + } + break; + case BIFF2_ID_FONT: case BIFF3_ID_FONT: dumpFontRec(); @@ -3260,6 +3273,38 @@ void WorkbookStreamObject::dumpExtGradientHead() dumpDec< double >( "pos-bottom" ); } +sal_uInt8 WorkbookStreamObject::dumpFilterColumnOperator( const String& rName ) +{ + sal_uInt8 nStrLen = 0; + writeEmptyItem( rName ); + IndentGuard aIndGuard( mxOut ); + sal_uInt8 nType = dumpDec< sal_uInt8 >( "data-type", "FILTERCOLUMN-DATATYPE" ); + dumpDec< sal_uInt8 >( "operator", "FILTERCOLUMN-OPERATOR" ); + switch( nType ) + { + case 2: + dumpRk( "value" ); + dumpUnused( 4 ); + break; + case 4: + dumpDec< double >( "value" ); + break; + case 6: + dumpUnused( 4 ); + nStrLen = dumpDec< sal_uInt8 >( "length" ); + dumpBoolean( "simple" ); + dumpUnused( 2 ); + break; + case 8: + dumpBoolErr(); + dumpUnused( 6 ); + break; + default: + dumpUnused( 8 ); + } + return nStrLen; +} + OUString WorkbookStreamObject::dumpPivotString( const String& rName, sal_uInt16 nStrLen ) { OUString aString; @@ -3289,9 +3334,9 @@ void WorkbookStreamObject::dumpBoolErr() { MultiItemsGuard aMultiGuard( mxOut ); sal_uInt8 nValue = dumpHex< sal_uInt8 >( "value" ); - bool bErrCode = dumpBool< sal_uInt8 >( "is-errorcode" ); + bool bErrCode = dumpBool< sal_uInt8 >( "is-error-code" ); if( bErrCode ) - writeErrorCodeItem( "errorcode", nValue ); + writeErrorCodeItem( "error-code", nValue ); else writeBooleanItem( "boolean", nValue ); } diff --git a/oox/source/dump/biffdumper.ini b/oox/source/dump/biffdumper.ini index 8e3e25271cc9..f32ed89334f8 100644 --- a/oox/source/dump/biffdumper.ini +++ b/oox/source/dump/biffdumper.ini @@ -344,7 +344,7 @@ multilist=RECORD-NAMES-BIFF5 0x0018=DEFINEDNAME 0x0023=EXTERNALNAME 0x0031=FONT - 0x0098=,,,FILTERMODE,,AUTOFILTERINFO,AUTOFILTER, + 0x0098=,,,FILTERMODE,,AUTOFILTER,FILTERCOLUMN, 0x00A8=,,,,,,SCENARIOS,SCENARIO 0x00B0=PTDEFINITION,PTFIELD,PTFITEM,,PTROWCOLFIELDS,PTROWCOLITEMS,PTPAGEFIELDS, 0x00B8=DOCROUTE,RECIPNAME,,,,MULTRK,MULTBLANK,TOOLBARHDR @@ -390,7 +390,7 @@ multilist=RECORD-NAMES-BIFF8 0x0860=,,SHEETEXT,BOOKEXT,,,,SHAREDFEATHEAD 0x0868=,,,CHFRLABELPROPS,,,, 0x0870=,,,,,,CONNECTION, - 0x0878=,,CFRULE12,CFRULEEXT,XFCRC,XFEXT,, + 0x0878=,,CFRULE12,CFRULEEXT,XFCRC,XFEXT,FILTERCOLUMN12,CONTINUE12 0x0888=,,,PAGELAYOUTVIEW,CHECKCOMPAT,DXF,TABLESTYLES, 0x0890=,,STYLEEXT,,,,THEME, 0x0898=,,MTHREADSETTINGS,COMPRESSPICS,HEADERFOOTER,CHFRLAYOUT,CHFREXTPROPS,CHFREXTPROPSCONT @@ -465,6 +465,7 @@ end constlist=SIMPLE-RECORDS-BIFF5 include=SIMPLE-RECORDS-BIFF4 + 0x009D=uint16,dec,column-count 0x00C9=double,dec,value 0x00CA=uint16,bool,value 0x00CB=uint16,hex,error-code,ERRORCODES @@ -1413,6 +1414,30 @@ end shortlist=FILEPASS-TYPE,0,xor,rc4 shortlist=FILEPASS-MAJOR,1,rc4,crypto-api-2003,crypto-api-2007 +# FILTERCOLUMN --------------------------------------------------------------- + +combilist=FILTERCOLUMN-FLAGS + 0x0001=!and!or + 0x0004=op-1-simple + 0x0008=op-2-simple + 0x0010=top-10 + 0x0020=!bottom!top + 0x0040=percent + 0xFF80=uint16,dec,top-10-count +end + +constlist=FILTERCOLUMN-DATATYPE + 0=none + 2=rk + 4=double + 6=string + 8=boolean + 12=blank + 14=not-blank +end + +shortlist=FILTERCOLUMN-OPERATOR,0,none,less,equal,less-equal,greater,not-equal,greater-equal + # FONT ----------------------------------------------------------------------- flagslist=FONT-FLAGS @@ -1997,7 +2022,7 @@ end flagslist=QUERYTABLESETTINGS-EXT-FLAGS 0x0001=text-query 0x0002=table-names -endif +end unitconverter=QUERYTABLESETTINGS-INTERVAL,60,sec shortlist=QUERYTABLESETTINGS-HTMLFORMAT,1,none,rtf,all diff --git a/oox/source/dump/xlsbdumper.cxx b/oox/source/dump/xlsbdumper.cxx index 79135ca1daeb..bee33566bba8 100644 --- a/oox/source/dump/xlsbdumper.cxx +++ b/oox/source/dump/xlsbdumper.cxx @@ -1010,6 +1010,10 @@ void RecordStreamObject::implDumpRecordBody() mxFmlaObj->dumpCellFormula(); break; + case BIFF12_ID_AUTOFILTER: + dumpRange( "filter-range" ); + break; + case BIFF12_ID_BINARYINDEXBLOCK: dumpRowRange( "row-range" ); dumpUnknown( 12 ); @@ -1243,6 +1247,20 @@ void RecordStreamObject::implDumpRecordBody() dumpString( "name" ); break; + case BIFF12_ID_CUSTOMFILTER: + { + sal_uInt8 nType = dumpDec< sal_uInt8 >( "data-type", "CUSTOMFILTER-DATATYPE" ); + dumpDec< sal_uInt8 >( "operator", "CUSTOMFILTER-OPERATOR" ); + switch( nType ) + { + case 4: dumpDec< double >( "value" ); break; + case 6: dumpUnused( 8 ); dumpString( "value" ); break; + case 8: dumpBoolean( "value" ); dumpUnused( 7 ); break; + default: dumpUnused( 8 ); + } + } + break; + case BIFF12_ID_DATATABLE: dumpRange( "table-range" ); dumpAddress( "ref1" ); @@ -1295,6 +1313,15 @@ void RecordStreamObject::implDumpRecordBody() dumpRange( "used-range" ); break; + case BIFF12_ID_DISCRETEFILTER: + dumpString( "value" ); + break; + + case BIFF12_ID_DISCRETEFILTERS: + dumpBool< sal_Int32 >( "show-blank" ); + dumpDec< sal_Int32 >( "calendar-type", "DISCRETEFILTERS-CALTYPE" ); + break; + case BIFF12_ID_DRAWING: dumpString( "rel-id" ); break; @@ -1508,6 +1535,11 @@ void RecordStreamObject::implDumpRecordBody() dumpString( "build-version" ); break; + case BIFF12_ID_FILTERCOLUMN: + dumpDec< sal_Int32 >( "column-index" ); + dumpHex< sal_uInt16 >( "flags", "FILTERCOLUMN-FLAGS" ); + break; + case BIFF12_ID_FONT: dumpDec< sal_uInt16 >( "height", "CONV-TWIP-TO-PT" ); dumpHex< sal_uInt16 >( "flags", "FONT-FLAGS" ); diff --git a/oox/source/dump/xlsbdumper.ini b/oox/source/dump/xlsbdumper.ini index 0624eebb3ffc..3490111c4ba5 100644 --- a/oox/source/dump/xlsbdumper.ini +++ b/oox/source/dump/xlsbdumper.ini @@ -174,8 +174,8 @@ multilist=RECORD-NAMES 0x0088=BOOKVIEWS_END,SHEETVIEW,SHEETVIEW_END,CHARTSHEETVIEWS,CHARTSHEETVIEWS_END,CHARTSHEETVIEW,CHARTSHEETVIEW_END,SHEETS 0x0090=SHEETS_END,SHEETDATA,SHEETDATA_END,SHEETPR,DIMENSION,,,PANE 0x0098=SELECTION,WORKBOOKPR,SMARTTAGPR,FILERECOVERYPR,SHEET,CALCPR,WORKBOOKVIEW,SST - 0x00A0=SST_END,AUTOFILTER,AUTOFILTER_END,FILTERCOLUMN,FILTERCOLUMN_END,FILTERS,FILTERS_END,FILTER - 0x00A8=COLORFILTER,ICONFILTER,TOP10FILTER,DYNAMICFILTER,CUSTOMFILTERS,CUSTOMFILTERS_END,CUSTOMFILTER,AUTOFILTERDATEGROUPITEM + 0x00A0=SST_END,AUTOFILTER,AUTOFILTER_END,FILTERCOLUMN,FILTERCOLUMN_END,DISCRETEFILTERS,DISCRETEFILTERS_END,DISCRETEFILTER + 0x00A8=COLORFILTER,ICONFILTER,TOP10FILTER,DYNAMICFILTER,CUSTOMFILTERS,CUSTOMFILTERS_END,CUSTOMFILTER,AFDATEGROUPITEM 0x00B0=MERGECELL,MERGECELLS,MERGECELLS_END,PCDEFINITION,PCDEFINITION_END,PCDFIELDS,PCDFIELDS_END,PCDFIELD 0x00B8=PCDFIELD_END,PCDSOURCE,PCDSOURCE_END,PCDSHEETSOURCE,PCDSHEETSOURCE_END,PCDFSHAREDITEMS,PCDFSHAREDITEMS_END,PCITEM_ARRAY 0x00C0=PCITEM_ARRAY_END,PCRECORDS,PCRECORDS_END,,,,, @@ -242,6 +242,7 @@ end constlist=SIMPLE-RECORDS 0x001A=int32,dec,item-index + 0x00AC=int32,dec,relation,CUSTOMFILTERS-RELATION 0x00B5=int32,dec,count 0x00C1=int32,dec,count 0x00DD=int32,dec,count @@ -405,6 +406,22 @@ flagslist=CONNECTION-STRINGFLAGS 0x0010=has-sso-id end +# CUSTOMFILTER --------------------------------------------------------------- + +constlist=CUSTOMFILTER-DATATYPE + 4=double + 6=string + 8=boolean + 12=blank + 14=not-blank +end + +shortlist=CUSTOMFILTER-OPERATOR,1,less,equal,less-equal,greater,not-equal,greater-equal + +# CUSTOMFILTERS -------------------------------------------------------------- + +shortlist=CUSTOMFILTERS-RELATION,0,and,or + # DATATABLE ------------------------------------------------------------------ flagslist=DATATABLE-FLAGS @@ -459,6 +476,10 @@ constlist=DEFINEDNAME-SHEETID -1=global end +# DISCRETEFILTERS -------------------------------------------------------------------- + +shortlist=DISCRETEFILTERS-CALTYPE,0,none,gregorian,gregorian-us,japan,taiwan,korea,hijri,thai,hebrew,gregorian-mideast-fr,gregorian-ar,gregorian-xlit-en,gregorian-xlit-fr + # DXF ------------------------------------------------------------------------ flagslist=DXF-FLAGS @@ -509,6 +530,13 @@ end shortlist=FILL-GRADIENTTYPE,0,linear,path +# FILTERCOLUMN --------------------------------------------------------------- + +flagslist=FILTERCOLUMN-FLAGS + 0x0001=hidden-button + 0x0002=show-button +end + # FONT ----------------------------------------------------------------------- flagslist=FONT-FLAGS |