[Libreoffice-commits] core.git: sc/inc sc/qa sc/source

Noel Grandin noel.grandin at collabora.co.uk
Thu Nov 23 06:03:25 UTC 2017


 sc/inc/scitems.hxx                            |  201 +++++++++++++-------------
 sc/qa/unit/helper/qahelper.cxx                |    2 
 sc/qa/unit/subsequent_filters-test.cxx        |    2 
 sc/source/core/data/attarray.cxx              |   19 --
 sc/source/core/data/conditio.cxx              |    3 
 sc/source/core/data/docpool.cxx               |    5 
 sc/source/core/data/documen3.cxx              |    3 
 sc/source/core/data/documen8.cxx              |    8 -
 sc/source/core/data/documen9.cxx              |   13 -
 sc/source/core/data/document.cxx              |   12 -
 sc/source/core/data/fillinfo.cxx              |   10 -
 sc/source/core/data/global.cxx                |    4 
 sc/source/core/data/patattr.cxx               |  111 +++++---------
 sc/source/core/data/postit.cxx                |    2 
 sc/source/core/data/stlpool.cxx               |    4 
 sc/source/core/data/stlsheet.cxx              |    5 
 sc/source/core/data/table2.cxx                |    6 
 sc/source/core/tool/autoform.cxx              |   56 +++----
 sc/source/core/tool/detfunc.cxx               |    3 
 sc/source/core/tool/editutil.cxx              |    2 
 sc/source/filter/excel/xehelper.cxx           |    2 
 sc/source/filter/excel/xepage.cxx             |   56 +++----
 sc/source/filter/excel/xestyle.cxx            |   30 +--
 sc/source/filter/excel/xetable.cxx            |   12 -
 sc/source/filter/excel/xipage.cxx             |   10 -
 sc/source/filter/html/htmlexp.cxx             |    4 
 sc/source/filter/html/htmlimp.cxx             |    6 
 sc/source/filter/oox/sheetdatabuffer.cxx      |    2 
 sc/source/filter/rtf/eeimpars.cxx             |    2 
 sc/source/filter/rtf/rtfparse.cxx             |    1 
 sc/source/ui/Accessibility/AccessibleText.cxx |    2 
 sc/source/ui/app/transobj.cxx                 |    2 
 sc/source/ui/cctrl/dpcontrol.cxx              |    2 
 sc/source/ui/docshell/docsh3.cxx              |    7 
 sc/source/ui/docshell/docsh4.cxx              |   40 ++---
 sc/source/ui/pagedlg/hfedtdlg.cxx             |   21 --
 sc/source/ui/pagedlg/tphf.cxx                 |    3 
 sc/source/ui/undo/undocell.cxx                |    2 
 sc/source/ui/unoobj/afmtuno.cxx               |    1 
 sc/source/ui/unoobj/cellsuno.cxx              |   14 -
 sc/source/ui/unoobj/defltuno.cxx              |    1 
 sc/source/ui/unoobj/styleuno.cxx              |   36 ++--
 sc/source/ui/unoobj/textuno.cxx               |    2 
 sc/source/ui/vba/vbaformat.cxx                |    4 
 sc/source/ui/view/formatsh.cxx                |   46 ++---
 sc/source/ui/view/gridwin4.cxx                |    4 
 sc/source/ui/view/preview.cxx                 |   17 +-
 sc/source/ui/view/prevwsh.cxx                 |    4 
 sc/source/ui/view/printfun.cxx                |   67 ++++----
 sc/source/ui/view/tabvwsha.cxx                |    6 
 sc/source/ui/view/viewfunc.cxx                |   13 -
 51 files changed, 418 insertions(+), 472 deletions(-)

New commits:
commit a675428e349d3424ffcc844e9c3884a82cf82ef7
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed Nov 22 14:31:53 2017 +0200

    TypedWhichId for sc constants
    
    Change-Id: I25a07d84ae24fdd3b4fbd303beea755169eb9acb
    Reviewed-on: https://gerrit.libreoffice.org/45084
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/sc/inc/scitems.hxx b/sc/inc/scitems.hxx
index 6664e91742d5..c1c60561b050 100644
--- a/sc/inc/scitems.hxx
+++ b/sc/inc/scitems.hxx
@@ -21,6 +21,7 @@
 #define INCLUDED_SC_INC_SCITEMS_HXX
 
 #include <svx/svxids.hrc>
+#include <svl/typedwhich.hxx>
 
 //  EditEngine is not allowed to define it's own ITEMID's
 #define INCLUDED_EDITENG_EEITEMID_HXX
@@ -51,110 +52,110 @@
 
 #define ATTR_PATTERN_START      100     // begin of cell-attribute-pattern
 
-#define ATTR_FONT               100     // begin of cell-attributes
-#define ATTR_FONT_HEIGHT        101
-#define ATTR_FONT_WEIGHT        102
-#define ATTR_FONT_POSTURE       103
-#define ATTR_FONT_UNDERLINE     104
-#define ATTR_FONT_OVERLINE      105
-#define ATTR_FONT_CROSSEDOUT    106
-#define ATTR_FONT_CONTOUR       107
-#define ATTR_FONT_SHADOWED      108
-#define ATTR_FONT_COLOR         109
-#define ATTR_FONT_LANGUAGE      110
-#define ATTR_CJK_FONT           111
-#define ATTR_CJK_FONT_HEIGHT    112
-#define ATTR_CJK_FONT_WEIGHT    113
-#define ATTR_CJK_FONT_POSTURE   114
-#define ATTR_CJK_FONT_LANGUAGE  115
-#define ATTR_CTL_FONT           116
-#define ATTR_CTL_FONT_HEIGHT    117
-#define ATTR_CTL_FONT_WEIGHT    118
-#define ATTR_CTL_FONT_POSTURE   119
-#define ATTR_CTL_FONT_LANGUAGE  120
-#define ATTR_FONT_EMPHASISMARK  121
-#define ATTR_USERDEF            122     // not saved in binary files
-#define ATTR_FONT_WORDLINE      123
-#define ATTR_FONT_RELIEF        124
-#define ATTR_HYPHENATE          125
-#define ATTR_SCRIPTSPACE        126
-#define ATTR_HANGPUNCTUATION    127
-#define ATTR_FORBIDDEN_RULES    128
-#define ATTR_HOR_JUSTIFY        129
-#define ATTR_HOR_JUSTIFY_METHOD 130
-#define ATTR_INDENT             131
-#define ATTR_VER_JUSTIFY        132
-#define ATTR_VER_JUSTIFY_METHOD 133
-#define ATTR_STACKED            134
-#define ATTR_ROTATE_VALUE       135
-#define ATTR_ROTATE_MODE        136
-#define ATTR_VERTICAL_ASIAN     137
-#define ATTR_WRITINGDIR         138
-#define ATTR_LINEBREAK          139
-#define ATTR_SHRINKTOFIT        140
-#define ATTR_BORDER_TLBR        141
-#define ATTR_BORDER_BLTR        142
-#define ATTR_MARGIN             143
-#define ATTR_MERGE              144
-#define ATTR_MERGE_FLAG         145
-#define ATTR_VALUE_FORMAT       146
-#define ATTR_LANGUAGE_FORMAT    147
-#define ATTR_BACKGROUND         148
-#define ATTR_PROTECTION         149
-#define ATTR_BORDER             150
-#define ATTR_BORDER_INNER       151     // inside, because of template-EditDialog
-#define ATTR_SHADOW             152
-#define ATTR_VALIDDATA          153
-#define ATTR_CONDITIONAL        154
-#define ATTR_HYPERLINK          155
+#define ATTR_FONT               TypedWhichId<SvxFontItem>(100)     // begin of cell-attributes
+#define ATTR_FONT_HEIGHT        TypedWhichId<SvxFontHeightItem>(101)
+#define ATTR_FONT_WEIGHT        TypedWhichId<SvxWeightItem>(102)
+#define ATTR_FONT_POSTURE       TypedWhichId<SvxPostureItem>(103)
+#define ATTR_FONT_UNDERLINE     TypedWhichId<SvxUnderlineItem>(104)
+#define ATTR_FONT_OVERLINE      TypedWhichId<SvxOverlineItem>(105)
+#define ATTR_FONT_CROSSEDOUT    TypedWhichId<SvxCrossedOutItem>(106)
+#define ATTR_FONT_CONTOUR       TypedWhichId<SvxContourItem>(107)
+#define ATTR_FONT_SHADOWED      TypedWhichId<SvxShadowedItem>(108)
+#define ATTR_FONT_COLOR         TypedWhichId<SvxColorItem>(109)
+#define ATTR_FONT_LANGUAGE      TypedWhichId<SvxLanguageItem>(110)
+#define ATTR_CJK_FONT           TypedWhichId<SvxFontItem>(111)
+#define ATTR_CJK_FONT_HEIGHT    TypedWhichId<SvxFontHeightItem>(112)
+#define ATTR_CJK_FONT_WEIGHT    TypedWhichId<SvxWeightItem>(113)
+#define ATTR_CJK_FONT_POSTURE   TypedWhichId<SvxPostureItem>(114)
+#define ATTR_CJK_FONT_LANGUAGE  TypedWhichId<SvxLanguageItem>(115)
+#define ATTR_CTL_FONT           TypedWhichId<SvxFontItem>(116)
+#define ATTR_CTL_FONT_HEIGHT    TypedWhichId<SvxFontHeightItem>(117)
+#define ATTR_CTL_FONT_WEIGHT    TypedWhichId<SvxWeightItem>(118)
+#define ATTR_CTL_FONT_POSTURE   TypedWhichId<SvxPostureItem>(119)
+#define ATTR_CTL_FONT_LANGUAGE  TypedWhichId<SvxLanguageItem>(120)
+#define ATTR_FONT_EMPHASISMARK  TypedWhichId<SvxEmphasisMarkItem>(121)
+#define ATTR_USERDEF            TypedWhichId<SvXMLAttrContainerItem>(122)    // not saved in binary files
+#define ATTR_FONT_WORDLINE      TypedWhichId<SvxWordLineModeItem>(123)
+#define ATTR_FONT_RELIEF        TypedWhichId<SvxCharReliefItem>(124)
+#define ATTR_HYPHENATE          TypedWhichId<SfxBoolItem>(125)
+#define ATTR_SCRIPTSPACE        TypedWhichId<SvxScriptSpaceItem>(126)
+#define ATTR_HANGPUNCTUATION    TypedWhichId<SvxHangingPunctuationItem>(127)
+#define ATTR_FORBIDDEN_RULES    TypedWhichId<SvxForbiddenRuleItem>(128)
+#define ATTR_HOR_JUSTIFY        TypedWhichId<SvxHorJustifyItem>(129)
+#define ATTR_HOR_JUSTIFY_METHOD TypedWhichId<SvxJustifyMethodItem>(130)
+#define ATTR_INDENT             TypedWhichId<SfxUInt16Item>(131)
+#define ATTR_VER_JUSTIFY        TypedWhichId<SvxVerJustifyItem>(132)
+#define ATTR_VER_JUSTIFY_METHOD TypedWhichId<SvxJustifyMethodItem>(133)
+#define ATTR_STACKED            TypedWhichId<SfxBoolItem>(134)
+#define ATTR_ROTATE_VALUE       TypedWhichId<SfxInt32Item>(135)
+#define ATTR_ROTATE_MODE        TypedWhichId<SvxRotateModeItem>(136)
+#define ATTR_VERTICAL_ASIAN     TypedWhichId<SfxBoolItem>(137)
+#define ATTR_WRITINGDIR         TypedWhichId<SvxFrameDirectionItem>(138)
+#define ATTR_LINEBREAK          TypedWhichId<SfxBoolItem>(139)
+#define ATTR_SHRINKTOFIT        TypedWhichId<SfxBoolItem>(140)
+#define ATTR_BORDER_TLBR        TypedWhichId<SvxLineItem>(141)
+#define ATTR_BORDER_BLTR        TypedWhichId<SvxLineItem>(142)
+#define ATTR_MARGIN             TypedWhichId<SvxMarginItem>(143)
+#define ATTR_MERGE              TypedWhichId<ScMergeAttr>(144)
+#define ATTR_MERGE_FLAG         TypedWhichId<ScMergeFlagAttr>(145)
+#define ATTR_VALUE_FORMAT       TypedWhichId<SfxUInt32Item>(146)
+#define ATTR_LANGUAGE_FORMAT    TypedWhichId<SvxLanguageItem>(147)
+#define ATTR_BACKGROUND         TypedWhichId<SvxBrushItem>(148)
+#define ATTR_PROTECTION         TypedWhichId<ScProtectionAttr>(149)
+#define ATTR_BORDER             TypedWhichId<SvxBoxItem>(150)
+#define ATTR_BORDER_INNER       TypedWhichId<SvxBoxInfoItem>(151)     // inside, because of template-EditDialog
+#define ATTR_SHADOW             TypedWhichId<SvxShadowItem>(152)
+#define ATTR_VALIDDATA          TypedWhichId<SfxUInt32Item>(153)
+#define ATTR_CONDITIONAL        TypedWhichId<ScCondFormatItem>(154)
+#define ATTR_HYPERLINK          TypedWhichId<SfxStringItem>(155)
 
 #define ATTR_PATTERN_END        155     // end cell-attribute-pattern
 
-#define ATTR_PATTERN            156
+#define ATTR_PATTERN            TypedWhichId<ScPatternAttr>(156)
                                         // page attributes
-#define ATTR_LRSPACE            157     // editor: PageDesc-TabPage
-#define ATTR_ULSPACE            158
-#define ATTR_PAGE               159
-#define ATTR_PAGE_PAPERTRAY     160
-#define ATTR_PAGE_PAPERBIN      161
-#define ATTR_PAGE_SIZE          162
-#define ATTR_PAGE_MAXSIZE       163
-#define ATTR_PAGE_HORCENTER     164
-#define ATTR_PAGE_VERCENTER     165
-
-#define ATTR_PAGE_ON            166     // editor: header/footer-page
-#define ATTR_PAGE_DYNAMIC       167
-#define ATTR_PAGE_SHARED        168
-
-#define ATTR_PAGE_NOTES         169     // editor: table
-#define ATTR_PAGE_GRID          170
-#define ATTR_PAGE_HEADERS       171
-#define ATTR_PAGE_CHARTS        172
-#define ATTR_PAGE_OBJECTS       173
-#define ATTR_PAGE_DRAWINGS      174
-#define ATTR_PAGE_TOPDOWN       175
-#define ATTR_PAGE_SCALE         176
-#define ATTR_PAGE_SCALETOPAGES  177
-#define ATTR_PAGE_FIRSTPAGENO   178
-
-#define ATTR_PAGE_PRINTAREA     179     // editor: print areas
-#define ATTR_PAGE_REPEATROW     180
-#define ATTR_PAGE_REPEATCOL     181
-#define ATTR_PAGE_PRINTTABLES   182
-
-#define ATTR_PAGE_HEADERLEFT    183     // contents of header/
-#define ATTR_PAGE_FOOTERLEFT    184     // footer (left)
-#define ATTR_PAGE_HEADERRIGHT   185     // contents of header/
-#define ATTR_PAGE_FOOTERRIGHT   186     // footer (right)
-#define ATTR_PAGE_HEADERSET     187     // the corresponding sets
-#define ATTR_PAGE_FOOTERSET     188
-
-#define ATTR_PAGE_FORMULAS      189
-#define ATTR_PAGE_NULLVALS      190
-
-#define ATTR_PAGE_SCALETO       191     // #i8868# scale printout to width/height
-
-#define ATTR_HIDDEN             192
+#define ATTR_LRSPACE            TypedWhichId<SvxLRSpaceItem>(157)    // editor: PageDesc-TabPage
+#define ATTR_ULSPACE            TypedWhichId<SvxULSpaceItem>(158)
+#define ATTR_PAGE               TypedWhichId<SvxPageItem>(159)
+#define ATTR_PAGE_PAPERTRAY     (160)
+#define ATTR_PAGE_PAPERBIN      TypedWhichId<SvxPaperBinItem>(161)
+#define ATTR_PAGE_SIZE          TypedWhichId<SvxSizeItem>(162)
+#define ATTR_PAGE_MAXSIZE       (163)
+#define ATTR_PAGE_HORCENTER     TypedWhichId<SfxBoolItem>(164)
+#define ATTR_PAGE_VERCENTER     TypedWhichId<SfxBoolItem>(165)
+
+#define ATTR_PAGE_ON            TypedWhichId<SfxBoolItem>(166)     // editor: header/footer-page
+#define ATTR_PAGE_DYNAMIC       TypedWhichId<SfxBoolItem>(167)
+#define ATTR_PAGE_SHARED        TypedWhichId<SfxBoolItem>(168)
+
+#define ATTR_PAGE_NOTES         TypedWhichId<SfxBoolItem>(169)     // editor: table
+#define ATTR_PAGE_GRID          TypedWhichId<SfxBoolItem>(170)
+#define ATTR_PAGE_HEADERS       TypedWhichId<SfxBoolItem>(171)
+#define ATTR_PAGE_CHARTS        TypedWhichId<ScViewObjectModeItem>(172)
+#define ATTR_PAGE_OBJECTS       TypedWhichId<ScViewObjectModeItem>(173)
+#define ATTR_PAGE_DRAWINGS      TypedWhichId<ScViewObjectModeItem>(174)
+#define ATTR_PAGE_TOPDOWN       TypedWhichId<SfxBoolItem>(175)
+#define ATTR_PAGE_SCALE         TypedWhichId<SfxUInt16Item>(176)
+#define ATTR_PAGE_SCALETOPAGES  TypedWhichId<SfxUInt16Item>(177)
+#define ATTR_PAGE_FIRSTPAGENO   TypedWhichId<SfxUInt16Item>(178)
+
+#define ATTR_PAGE_PRINTAREA     (179)     // editor: print areas
+#define ATTR_PAGE_REPEATROW     (180)
+#define ATTR_PAGE_REPEATCOL     (181)
+#define ATTR_PAGE_PRINTTABLES   (182)
+
+#define ATTR_PAGE_HEADERLEFT    TypedWhichId<ScPageHFItem>(183)     // contents of header/
+#define ATTR_PAGE_FOOTERLEFT    TypedWhichId<ScPageHFItem>(184)     // footer (left)
+#define ATTR_PAGE_HEADERRIGHT   TypedWhichId<ScPageHFItem>(185)     // contents of header/
+#define ATTR_PAGE_FOOTERRIGHT   TypedWhichId<ScPageHFItem>(186)     // footer (right)
+#define ATTR_PAGE_HEADERSET     TypedWhichId<SvxSetItem>(187)     // the corresponding sets
+#define ATTR_PAGE_FOOTERSET     TypedWhichId<SvxSetItem>(188)
+
+#define ATTR_PAGE_FORMULAS      TypedWhichId<SfxBoolItem>(189)
+#define ATTR_PAGE_NULLVALS      TypedWhichId<SfxBoolItem>(190)
+
+#define ATTR_PAGE_SCALETO       TypedWhichId<ScPageScaleToItem>(191)     // #i8868# scale printout to width/height
+
+#define ATTR_HIDDEN             TypedWhichId<SfxBoolItem>(192)
 
 #define ATTR_ENDINDEX           ATTR_HIDDEN        // end of pool-range
 
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index 5f4f56dccb11..66d2da055013 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -255,7 +255,7 @@ void testFormats(ScBootstrapFixture* pTest, ScDocument* pDoc, sal_Int32 nFormat)
             CPPUNIT_ASSERT_EQUAL_MESSAGE("parent style for Sheet4.B2 is 'Excel Built-in Date'", sExpected, sResult);
             // check  align of style
             SfxItemSet& rItemSet = pStyleSheet->GetItemSet();
-            eHorJustify = static_cast< const SvxHorJustifyItem& >(rItemSet.Get( ATTR_HOR_JUSTIFY ) ).GetValue();
+            eHorJustify = rItemSet.Get( ATTR_HOR_JUSTIFY ).GetValue();
             CPPUNIT_ASSERT_EQUAL_MESSAGE("'Excel Built-in Date' style should be aligned centre horizontally", SvxCellHorJustify::Center, eHorJustify);
             // check date format ( should be just month e.g. 29 )
             sResult =pDoc->GetString( 1,1,3 );
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index f29fd6937e84..6843f9f37fba 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -3526,7 +3526,7 @@ void ScFiltersTest::testPageScalingXLSX()
     CPPUNIT_ASSERT(pStyleSheet);
 
     SfxItemSet& rSet = pStyleSheet->GetItemSet();
-    sal_uInt16 nVal = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_SCALE)).GetValue();
+    sal_uInt16 nVal = rSet.Get(ATTR_PAGE_SCALE).GetValue();
     CPPUNIT_ASSERT_EQUAL(sal_uInt16(90), nVal);
 
     xDocSh->DoClose();
diff --git a/sc/source/core/data/attarray.cxx b/sc/source/core/data/attarray.cxx
index 86e501a1cf8d..0025c6876986 100644
--- a/sc/source/core/data/attarray.cxx
+++ b/sc/source/core/data/attarray.cxx
@@ -1051,7 +1051,7 @@ static void lcl_MergeToFrame( SvxBoxItem* pLineOuter, SvxBoxInfoItem* pLineInner
     if ( rMerge.GetRowMerge() == nDistBottom + 1 )
         nDistBottom = 0;
 
-    const SvxBoxItem* pCellFrame = static_cast<const SvxBoxItem*>( &pPattern->GetItemSet().Get( ATTR_BORDER ) );
+    const SvxBoxItem* pCellFrame = &pPattern->GetItemSet().Get( ATTR_BORDER );
     const SvxBorderLine* pLeftAttr   = pCellFrame->GetLeft();
     const SvxBorderLine* pRightAttr  = pCellFrame->GetRight();
     const SvxBorderLine* pTopAttr    = pCellFrame->GetTop();
@@ -1153,8 +1153,7 @@ bool ScAttrArray::ApplyFrame( const SvxBoxItem*     pBoxItem,
     OSL_ENSURE( pBoxItem && pBoxInfoItem, "Missing line attributes!" );
 
     const ScPatternAttr* pPattern = GetPattern( nStartRow );
-    const SvxBoxItem* pOldFrame = static_cast<const SvxBoxItem*>(
-                                  &pPattern->GetItemSet().Get( ATTR_BORDER ));
+    const SvxBoxItem* pOldFrame = &pPattern->GetItemSet().Get( ATTR_BORDER );
 
     // right/bottom border set when connected together
     const ScMergeAttr& rMerge = static_cast<const ScMergeAttr&>(pPattern->GetItem(ATTR_MERGE));
@@ -1513,10 +1512,8 @@ void ScAttrArray::RemoveAreaMerge(SCROW nStartRow, SCROW nEndRow)
         SCROW  nCountY = pItem->GetRowMerge();
         if (nCountX>1 || nCountY>1)
         {
-            const ScMergeAttr* pAttr = static_cast<const ScMergeAttr*>(
-                                            &pDocument->GetPool()->GetDefaultItem( ATTR_MERGE ) );
-            const ScMergeFlagAttr* pFlagAttr = static_cast<const ScMergeFlagAttr*>(
-                                            &pDocument->GetPool()->GetDefaultItem( ATTR_MERGE_FLAG ));
+            const ScMergeAttr* pAttr = &pDocument->GetPool()->GetDefaultItem( ATTR_MERGE );
+            const ScMergeFlagAttr* pFlagAttr = &pDocument->GetPool()->GetDefaultItem( ATTR_MERGE_FLAG );
 
             OSL_ENSURE( nCountY==1 || nThisStart==nThisEnd, "What's up?" );
 
@@ -1723,7 +1720,7 @@ void ScAttrArray::ChangeIndent( SCROW nStartRow, SCROW nEndRow, bool bIncrement
         bool bNeedJust = ( rOldSet.GetItemState( ATTR_HOR_JUSTIFY, false, &pItem ) != SfxItemState::SET
                            || (static_cast<const SvxHorJustifyItem*>(pItem)->GetValue() != SvxCellHorJustify::Left &&
                                static_cast<const SvxHorJustifyItem*>(pItem)->GetValue() != SvxCellHorJustify::Right ));
-        sal_uInt16 nOldValue = static_cast<const SfxUInt16Item&>(rOldSet.Get( ATTR_INDENT )).GetValue();
+        sal_uInt16 nOldValue = rOldSet.Get( ATTR_INDENT ).GetValue();
         sal_uInt16 nNewValue = nOldValue;
         // To keep Increment indent from running outside the cell1659
         long nColWidth = (long)pDocument->GetColWidth(nCol,nTab);
@@ -2404,8 +2401,7 @@ void ScAttrArray::CopyArea(
 
     if ( mvData.empty() )
     {
-        const ScPatternAttr* pNewPattern = static_cast<const ScPatternAttr*>(
-                                             &pDestDocPool->GetDefaultItem( ATTR_PATTERN ));
+        const ScPatternAttr* pNewPattern = &pDestDocPool->GetDefaultItem( ATTR_PATTERN );
         rAttrArray.SetPatternArea(nDestStart, nDestEnd, pNewPattern);
         return;
     }
@@ -2421,8 +2417,7 @@ void ScAttrArray::CopyArea(
             {
                 // default: nothing changed
 
-                pNewPattern = static_cast<const ScPatternAttr*>(
-                                &pDestDocPool->GetDefaultItem( ATTR_PATTERN ));
+                pNewPattern = &pDestDocPool->GetDefaultItem( ATTR_PATTERN );
             }
             else if ( nStripFlags != ScMF::NONE )
             {
diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx
index e4d32a10f9fa..d953d8f275e4 100644
--- a/sc/source/core/data/conditio.cxx
+++ b/sc/source/core/data/conditio.cxx
@@ -27,6 +27,7 @@
 
 #include <com/sun/star/sheet/ConditionOperator2.hpp>
 
+#include <attrib.hxx>
 #include <conditio.hxx>
 #include <formulacell.hxx>
 #include <document.hxx>
@@ -2264,7 +2265,7 @@ void ScConditionalFormatList::RemoveFromDocument(ScDocument* pDoc) const
     ScRangeList aRange = GetCombinedRange();
     ScMarkData aMark;
     aMark.MarkFromRangeList(aRange, true);
-    sal_uInt16 const pItems[2] = { ATTR_CONDITIONAL,0};
+    sal_uInt16 const pItems[2] = { sal_uInt16(ATTR_CONDITIONAL),0};
     pDoc->ClearSelectionItems(pItems, aMark);
 }
 
diff --git a/sc/source/core/data/docpool.cxx b/sc/source/core/data/docpool.cxx
index 35e0bf80905f..27fc2341eaee 100644
--- a/sc/source/core/data/docpool.cxx
+++ b/sc/source/core/data/docpool.cxx
@@ -359,7 +359,7 @@ void ScDocumentPool::StyleDeleted( const ScStyleSheet* pStyle )
     sal_uInt32 nCount = GetItemCount2(ATTR_PATTERN);
     for (sal_uInt32 i=0; i<nCount; i++)
     {
-        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(static_cast<const ScPatternAttr*>(GetItem2(ATTR_PATTERN, i)));
+        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(GetItem2(ATTR_PATTERN, i));
         if ( pPattern && pPattern->GetStyleSheet() == pStyle )
             pPattern->StyleToName();
     }
@@ -376,8 +376,7 @@ void ScDocumentPool::CellStyleCreated( const OUString& rName, const ScDocument*
     for (sal_uInt32 i=0; i<nCount; i++)
     {
         ScPatternAttr *const pPattern =
-            const_cast<ScPatternAttr*>(
-                static_cast<ScPatternAttr const*>(GetItem2(ATTR_PATTERN, i)));
+            const_cast<ScPatternAttr*>(GetItem2(ATTR_PATTERN, i));
         if ( pPattern && pPattern->GetStyleSheet() == nullptr )
         {
             const OUString* pStyleName = pPattern->GetStyleName();
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index d2f500ded034..62c98d964c37 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -2051,8 +2051,7 @@ void ScDocument::RemoveMerge( SCCOL nCol, SCROW nRow, SCTAB nTab )
 
     RemoveFlagsTab( nCol, nRow, nEndCol, nEndRow, nTab, ScMF::Hor | ScMF::Ver );
 
-    const ScMergeAttr* pDefAttr = static_cast<const ScMergeAttr*>(
-                                        &mxPoolHelper->GetDocPool()->GetDefaultItem( ATTR_MERGE ));
+    const ScMergeAttr* pDefAttr = &mxPoolHelper->GetDocPool()->GetDefaultItem( ATTR_MERGE );
     ApplyAttr( nCol, nRow, nTab, *pDefAttr );
 }
 
diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx
index c7be637fb073..9f637eb53046 100644
--- a/sc/source/core/data/documen8.cxx
+++ b/sc/source/core/data/documen8.cxx
@@ -252,11 +252,9 @@ void ScDocument::ModifyStyleSheet( SfxStyleSheetBase& rStyleSheet,
                         maTabs[nTab]->SetStreamValid( false );
 
                 sal_uLong nOldFormat =
-                    static_cast<const SfxUInt32Item*>(&rSet.Get(
-                    ATTR_VALUE_FORMAT ))->GetValue();
+                    rSet.Get( ATTR_VALUE_FORMAT ).GetValue();
                 sal_uLong nNewFormat =
-                    static_cast<const SfxUInt32Item*>(&rChanges.Get(
-                    ATTR_VALUE_FORMAT ))->GetValue();
+                    rChanges.Get( ATTR_VALUE_FORMAT ).GetValue();
                 LanguageType eNewLang, eOldLang;
                 eNewLang = eOldLang = LANGUAGE_DONTKNOW;
                 if ( nNewFormat != nOldFormat )
@@ -371,7 +369,7 @@ sal_uInt8 ScDocument::GetEditTextDirection(SCTAB nTab) const
     {
         SfxItemSet& rStyleSet = pStyle->GetItemSet();
         SvxFrameDirection eDirection =
-            static_cast<const SvxFrameDirectionItem&>(rStyleSet.Get( ATTR_WRITINGDIR )).GetValue();
+            rStyleSet.Get( ATTR_WRITINGDIR ).GetValue();
 
         if ( eDirection == SvxFrameDirection::Horizontal_LR_TB )
             eRet = EE_HTEXTDIR_L2R;
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index cf11158ca573..d2d38231f7b1 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -570,14 +570,11 @@ void ScDocument::UpdateFontCharSet()
     rtl_TextEncoding eSysSet = osl_getThreadTextEncoding();
     if ( eSrcSet != eSysSet || bUpdateOld )
     {
-        sal_uInt32 nCount,i;
-        SvxFontItem* pItem;
-
         ScDocumentPool* pPool = mxPoolHelper->GetDocPool();
-        nCount = pPool->GetItemCount2(ATTR_FONT);
-        for (i=0; i<nCount; i++)
+        sal_uInt32 nCount = pPool->GetItemCount2(ATTR_FONT);
+        for (sal_uInt32 i=0; i<nCount; i++)
         {
-            pItem = const_cast<SvxFontItem*>(static_cast<const SvxFontItem*>(pPool->GetItem2(ATTR_FONT, i)));
+            SvxFontItem* pItem = const_cast<SvxFontItem*>(pPool->GetItem2(ATTR_FONT, i));
             if ( pItem && ( pItem->GetCharSet() == eSrcSet ||
                             ( bUpdateOld && pItem->GetCharSet() != RTL_TEXTENCODING_SYMBOL ) ) )
                 pItem->SetCharSet(eSysSet);
@@ -587,9 +584,9 @@ void ScDocument::UpdateFontCharSet()
         {
             SfxItemPool& rDrawPool = mpDrawLayer->GetItemPool();
             nCount = rDrawPool.GetItemCount2(EE_CHAR_FONTINFO);
-            for (i=0; i<nCount; i++)
+            for (sal_uInt32 i=0; i<nCount; i++)
             {
-                pItem = const_cast<SvxFontItem*>(rDrawPool.GetItem2(EE_CHAR_FONTINFO, i));
+                SvxFontItem* pItem = const_cast<SvxFontItem*>(rDrawPool.GetItem2(EE_CHAR_FONTINFO, i));
                 if ( pItem && ( pItem->GetCharSet() == eSrcSet ||
                                 ( bUpdateOld && pItem->GetCharSet() != RTL_TEXTENCODING_SYMBOL ) ) )
                     pItem->SetCharSet( eSysSet );
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 60795d5bebf4..e651ce6be9fd 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -6004,7 +6004,7 @@ void ScDocument::DeleteSelectionTab(
 
 ScPatternAttr* ScDocument::GetDefPattern() const
 {
-    return const_cast<ScPatternAttr*>(static_cast<const ScPatternAttr*>(&mxPoolHelper->GetDocPool()->GetDefaultItem(ATTR_PATTERN)));
+    return const_cast<ScPatternAttr*>(&mxPoolHelper->GetDocPool()->GetDefaultItem(ATTR_PATTERN));
 }
 
 ScDocumentPool* ScDocument::GetPool()
@@ -6062,11 +6062,11 @@ void ScDocument::UpdStlShtPtrsFrmNms()
     sal_uInt32 nCount = pPool->GetItemCount2(ATTR_PATTERN);
     for (sal_uInt32 i=0; i<nCount; i++)
     {
-        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(static_cast<const ScPatternAttr*>(pPool->GetItem2(ATTR_PATTERN, i)));
+        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(pPool->GetItem2(ATTR_PATTERN, i));
         if (pPattern)
             pPattern->UpdateStyleSheet(this);
     }
-    const_cast<ScPatternAttr&>(static_cast<const ScPatternAttr&>(pPool->GetDefaultItem(ATTR_PATTERN))).UpdateStyleSheet(this);
+    const_cast<ScPatternAttr&>(pPool->GetDefaultItem(ATTR_PATTERN)).UpdateStyleSheet(this);
 }
 
 void ScDocument::StylesToNames()
@@ -6076,11 +6076,11 @@ void ScDocument::StylesToNames()
     sal_uInt32 nCount = pPool->GetItemCount2(ATTR_PATTERN);
     for (sal_uInt32 i=0; i<nCount; i++)
     {
-        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(static_cast<const ScPatternAttr*>(pPool->GetItem2(ATTR_PATTERN, i)));
+        ScPatternAttr* pPattern = const_cast<ScPatternAttr*>(pPool->GetItem2(ATTR_PATTERN, i));
         if (pPattern)
             pPattern->StyleToName();
     }
-    const_cast<ScPatternAttr&>(static_cast<const ScPatternAttr&>(pPool->GetDefaultItem(ATTR_PATTERN))).StyleToName();
+    const_cast<ScPatternAttr&>(pPool->GetDefaultItem(ATTR_PATTERN)).StyleToName();
 }
 
 sal_uLong ScDocument::GetCellCount() const
@@ -6307,7 +6307,7 @@ bool ScDocument::NeedPageResetAfterTab( SCTAB nTab ) const
             if ( pStyle )
             {
                 const SfxItemSet& rSet = pStyle->GetItemSet();
-                sal_uInt16 nFirst = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_FIRSTPAGENO)).GetValue();
+                sal_uInt16 nFirst = rSet.Get(ATTR_PAGE_FIRSTPAGENO).GetValue();
                 if ( nFirst != 0 )
                     return true;        // Specify page number in new template
             }
diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx
index 79011e2bc60b..b62ffe43a6df 100644
--- a/sc/source/core/data/fillinfo.cxx
+++ b/sc/source/core/data/fillinfo.cxx
@@ -367,11 +367,11 @@ void ScDocument::FillInfo(
     RowInfo* pRowInfo = rTabInfo.mpRowInfo.get();
 
     const SvxBrushItem* pDefBackground =
-            static_cast<const SvxBrushItem*>( &pPool->GetDefaultItem( ATTR_BACKGROUND ) );
+            &pPool->GetDefaultItem( ATTR_BACKGROUND );
     const ScMergeAttr* pDefMerge =
-            static_cast<const ScMergeAttr*>( &pPool->GetDefaultItem( ATTR_MERGE ) );
+            &pPool->GetDefaultItem( ATTR_MERGE );
     const SvxShadowItem* pDefShadow =
-            static_cast<const SvxShadowItem*>( &pPool->GetDefaultItem( ATTR_SHADOW ) );
+            &pPool->GetDefaultItem( ATTR_SHADOW );
 
     SCSIZE nArrRow;
     SCSIZE nArrCount;
@@ -518,8 +518,8 @@ void ScDocument::FillInfo(
                         const ScMergeAttr* pMergeAttr = static_cast<const ScMergeAttr*>(
                                                 &pPattern->GetItem(ATTR_MERGE));
                         bool bMerged = ( pMergeAttr != pDefMerge && *pMergeAttr != *pDefMerge );
-                        ScMF nOverlap = static_cast<const ScMergeFlagAttr*>( &pPattern->GetItemSet().
-                                                        Get(ATTR_MERGE_FLAG))->GetValue();
+                        ScMF nOverlap = pPattern->GetItemSet().
+                                                        Get(ATTR_MERGE_FLAG).GetValue();
                         bool bHOverlapped(nOverlap & ScMF::Hor);
                         bool bVOverlapped(nOverlap & ScMF::Ver);
                         bool bAutoFilter(nOverlap & ScMF::Auto);
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 181eb2537e94..33d8dab7c8bc 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -510,7 +510,7 @@ void ScGlobal::InitTextHeight(const SfxItemPool* pPool)
         return;
     }
 
-    const ScPatternAttr* pPattern = static_cast<const ScPatternAttr*>(&pPool->GetDefaultItem(ATTR_PATTERN));
+    const ScPatternAttr* pPattern = &pPool->GetDefaultItem(ATTR_PATTERN);
     if (!pPattern)
     {
         OSL_FAIL("ScGlobal::InitTextHeight: No default pattern");
@@ -967,7 +967,7 @@ void ScGlobal::AddLanguage( SfxItemSet& rSet, const SvNumberFormatter& rFormatte
         sal_uInt32 nParentFmt = 0; // Pool default
         const SfxItemSet* pParent = rSet.GetParent();
         if ( pParent )
-            nParentFmt = static_cast<const SfxUInt32Item&>(pParent->Get( ATTR_VALUE_FORMAT )).GetValue();
+            nParentFmt = pParent->Get( ATTR_VALUE_FORMAT ).GetValue();
         const SvNumberformat* pParFormat = rFormatter.GetEntry( nParentFmt );
 
         if ( pHardFormat && pParFormat &&
diff --git a/sc/source/core/data/patattr.cxx b/sc/source/core/data/patattr.cxx
index 8238ea0b18e2..16877382a7e6 100644
--- a/sc/source/core/data/patattr.cxx
+++ b/sc/source/core/data/patattr.cxx
@@ -296,24 +296,15 @@ void ScPatternAttr::GetFont(
                         rItemSet.Get( nWeightId )).GetValue();
         eItalic = static_cast<const SvxPostureItem&>(
                         rItemSet.Get( nPostureId )).GetValue();
-        eUnder = static_cast<const SvxUnderlineItem&>(
-                        rItemSet.Get( ATTR_FONT_UNDERLINE )).GetValue();
-        eOver = static_cast<const SvxOverlineItem&>(
-                        rItemSet.Get( ATTR_FONT_OVERLINE )).GetValue();
-        bWordLine = static_cast<const SvxWordLineModeItem&>(
-                        rItemSet.Get( ATTR_FONT_WORDLINE )).GetValue();
-        eStrike = static_cast<const SvxCrossedOutItem&>(
-                        rItemSet.Get( ATTR_FONT_CROSSEDOUT )).GetValue();
-        bOutline = static_cast<const SvxContourItem&>(
-                        rItemSet.Get( ATTR_FONT_CONTOUR )).GetValue();
-        bShadow = static_cast<const SvxShadowedItem&>(
-                        rItemSet.Get( ATTR_FONT_SHADOWED )).GetValue();
-        eEmphasis = static_cast<const SvxEmphasisMarkItem&>(
-                        rItemSet.Get( ATTR_FONT_EMPHASISMARK )).GetEmphasisMark();
-        eRelief = static_cast<const SvxCharReliefItem&>(
-                        rItemSet.Get( ATTR_FONT_RELIEF )).GetValue();
-        aColor = static_cast<const SvxColorItem&>(
-                        rItemSet.Get( ATTR_FONT_COLOR )).GetValue();
+        eUnder = rItemSet.Get( ATTR_FONT_UNDERLINE ).GetValue();
+        eOver = rItemSet.Get( ATTR_FONT_OVERLINE ).GetValue();
+        bWordLine = rItemSet.Get( ATTR_FONT_WORDLINE ).GetValue();
+        eStrike = rItemSet.Get( ATTR_FONT_CROSSEDOUT ).GetValue();
+        bOutline = rItemSet.Get( ATTR_FONT_CONTOUR ).GetValue();
+        bShadow = rItemSet.Get( ATTR_FONT_SHADOWED ).GetValue();
+        eEmphasis = rItemSet.Get( ATTR_FONT_EMPHASISMARK ).GetEmphasisMark();
+        eRelief = rItemSet.Get( ATTR_FONT_RELIEF ).GetValue();
+        aColor = rItemSet.Get( ATTR_FONT_COLOR ).GetValue();
         // for graphite language features
         eLang = static_cast<const SvxLanguageItem&>(rItemSet.Get( nLangId )).GetLanguage();
     }
@@ -380,7 +371,7 @@ void ScPatternAttr::GetFont(
                 aBackColor = static_cast<const SvxBrushItem*>(pItem)->GetColor();
             }
             else
-                aBackColor = static_cast<const SvxBrushItem&>(rItemSet.Get( ATTR_BACKGROUND )).GetColor();
+                aBackColor = rItemSet.Get( ATTR_BACKGROUND ).GetColor();
 
             //  if background color attribute is transparent, use window color for brightness comparisons
             if ( aBackColor == COL_TRANSPARENT ||
@@ -676,54 +667,33 @@ void ScPatternAttr::FillToEditItemSet( SfxItemSet& rEditSet, const SfxItemSet& r
     }
     else        // Everything directly from Pattern
     {
-        aColorItem = static_cast<const SvxColorItem&>( rSrcSet.Get( ATTR_FONT_COLOR ) );
-        aFontItem = static_cast<const SvxFontItem&>( rSrcSet.Get( ATTR_FONT ) );
-        aCjkFontItem = static_cast<const SvxFontItem&>( rSrcSet.Get( ATTR_CJK_FONT ) );
-        aCtlFontItem = static_cast<const SvxFontItem&>( rSrcSet.Get( ATTR_CTL_FONT ) );
-        nTHeight = static_cast<const SvxFontHeightItem&>(
-                        rSrcSet.Get( ATTR_FONT_HEIGHT )).GetHeight();
-        nCjkTHeight = static_cast<const SvxFontHeightItem&>(
-                        rSrcSet.Get( ATTR_CJK_FONT_HEIGHT )).GetHeight();
-        nCtlTHeight = static_cast<const SvxFontHeightItem&>(
-                        rSrcSet.Get( ATTR_CTL_FONT_HEIGHT )).GetHeight();
-        eWeight = static_cast<const SvxWeightItem&>(
-                        rSrcSet.Get( ATTR_FONT_WEIGHT )).GetValue();
-        eCjkWeight = static_cast<const SvxWeightItem&>(
-                        rSrcSet.Get( ATTR_CJK_FONT_WEIGHT )).GetValue();
-        eCtlWeight = static_cast<const SvxWeightItem&>(
-                        rSrcSet.Get( ATTR_CTL_FONT_WEIGHT )).GetValue();
-        eItalic = static_cast<const SvxPostureItem&>(
-                        rSrcSet.Get( ATTR_FONT_POSTURE )).GetValue();
-        eCjkItalic = static_cast<const SvxPostureItem&>(
-                        rSrcSet.Get( ATTR_CJK_FONT_POSTURE )).GetValue();
-        eCtlItalic = static_cast<const SvxPostureItem&>(
-                        rSrcSet.Get( ATTR_CTL_FONT_POSTURE )).GetValue();
-        aUnderlineItem = static_cast<const SvxUnderlineItem&>( rSrcSet.Get( ATTR_FONT_UNDERLINE ) );
-        aOverlineItem  = static_cast<const SvxOverlineItem&>( rSrcSet.Get( ATTR_FONT_OVERLINE ) );
-        bWordLine = static_cast<const SvxWordLineModeItem&>(
-                        rSrcSet.Get( ATTR_FONT_WORDLINE )).GetValue();
-        eStrike = static_cast<const SvxCrossedOutItem&>(
-                        rSrcSet.Get( ATTR_FONT_CROSSEDOUT )).GetValue();
-        bOutline = static_cast<const SvxContourItem&>(
-                        rSrcSet.Get( ATTR_FONT_CONTOUR )).GetValue();
-        bShadow = static_cast<const SvxShadowedItem&>(
-                        rSrcSet.Get( ATTR_FONT_SHADOWED )).GetValue();
-        bForbidden = static_cast<const SvxForbiddenRuleItem&>(
-                        rSrcSet.Get( ATTR_FORBIDDEN_RULES )).GetValue();
-        eEmphasis = static_cast<const SvxEmphasisMarkItem&>(
-                        rSrcSet.Get( ATTR_FONT_EMPHASISMARK )).GetEmphasisMark();
-        eRelief = static_cast<const SvxCharReliefItem&>(
-                        rSrcSet.Get( ATTR_FONT_RELIEF )).GetValue();
-        eLang = static_cast<const SvxLanguageItem&>(
-                        rSrcSet.Get( ATTR_FONT_LANGUAGE )).GetLanguage();
-        eCjkLang = static_cast<const SvxLanguageItem&>(
-                        rSrcSet.Get( ATTR_CJK_FONT_LANGUAGE )).GetLanguage();
-        eCtlLang = static_cast<const SvxLanguageItem&>(
-                        rSrcSet.Get( ATTR_CTL_FONT_LANGUAGE )).GetLanguage();
-        bHyphenate = static_cast<const SfxBoolItem&>(
-                        rSrcSet.Get( ATTR_HYPHENATE )).GetValue();
-        eDirection = static_cast<const SvxFrameDirectionItem&>(
-                        rSrcSet.Get( ATTR_WRITINGDIR )).GetValue();
+        aColorItem = rSrcSet.Get( ATTR_FONT_COLOR );
+        aFontItem = rSrcSet.Get( ATTR_FONT );
+        aCjkFontItem = rSrcSet.Get( ATTR_CJK_FONT );
+        aCtlFontItem = rSrcSet.Get( ATTR_CTL_FONT );
+        nTHeight = rSrcSet.Get( ATTR_FONT_HEIGHT ).GetHeight();
+        nCjkTHeight = rSrcSet.Get( ATTR_CJK_FONT_HEIGHT ).GetHeight();
+        nCtlTHeight = rSrcSet.Get( ATTR_CTL_FONT_HEIGHT ).GetHeight();
+        eWeight = rSrcSet.Get( ATTR_FONT_WEIGHT ).GetValue();
+        eCjkWeight = rSrcSet.Get( ATTR_CJK_FONT_WEIGHT ).GetValue();
+        eCtlWeight = rSrcSet.Get( ATTR_CTL_FONT_WEIGHT ).GetValue();
+        eItalic = rSrcSet.Get( ATTR_FONT_POSTURE ).GetValue();
+        eCjkItalic = rSrcSet.Get( ATTR_CJK_FONT_POSTURE ).GetValue();
+        eCtlItalic = rSrcSet.Get( ATTR_CTL_FONT_POSTURE ).GetValue();
+        aUnderlineItem = rSrcSet.Get( ATTR_FONT_UNDERLINE );
+        aOverlineItem  = rSrcSet.Get( ATTR_FONT_OVERLINE );
+        bWordLine = rSrcSet.Get( ATTR_FONT_WORDLINE ).GetValue();
+        eStrike = rSrcSet.Get( ATTR_FONT_CROSSEDOUT ).GetValue();
+        bOutline = rSrcSet.Get( ATTR_FONT_CONTOUR ).GetValue();
+        bShadow = rSrcSet.Get( ATTR_FONT_SHADOWED ).GetValue();
+        bForbidden = rSrcSet.Get( ATTR_FORBIDDEN_RULES ).GetValue();
+        eEmphasis = rSrcSet.Get( ATTR_FONT_EMPHASISMARK ).GetEmphasisMark();
+        eRelief = rSrcSet.Get( ATTR_FONT_RELIEF ).GetValue();
+        eLang = rSrcSet.Get( ATTR_FONT_LANGUAGE ).GetLanguage();
+        eCjkLang = rSrcSet.Get( ATTR_CJK_FONT_LANGUAGE ).GetLanguage();
+        eCtlLang = rSrcSet.Get( ATTR_CTL_FONT_LANGUAGE ).GetLanguage();
+        bHyphenate = rSrcSet.Get( ATTR_HYPHENATE ).GetValue();
+        eDirection = rSrcSet.Get( ATTR_WRITINGDIR ).GetValue();
     }
 
     // Expect to be compatible to LogicToLogic, ie. 2540/1440 = 127/72, and round
@@ -909,8 +879,7 @@ void ScPatternAttr::FillEditParaItems( SfxItemSet* pEditSet ) const
 
     const SfxItemSet& rMySet = GetItemSet();
 
-    SvxCellHorJustify eHorJust =
-        static_cast<const SvxHorJustifyItem&>(rMySet.Get(ATTR_HOR_JUSTIFY)).GetValue();
+    SvxCellHorJustify eHorJust = rMySet.Get(ATTR_HOR_JUSTIFY).GetValue();
 
     SvxAdjust eSvxAdjust;
     switch (eHorJust)
@@ -1249,12 +1218,12 @@ namespace {
 
 sal_uInt32 getNumberFormatKey(const SfxItemSet& rSet)
 {
-    return static_cast<const SfxUInt32Item&>(rSet.Get(ATTR_VALUE_FORMAT)).GetValue();
+    return rSet.Get(ATTR_VALUE_FORMAT).GetValue();
 }
 
 LanguageType getLanguageType(const SfxItemSet& rSet)
 {
-    return static_cast<const SvxLanguageItem&>(rSet.Get(ATTR_LANGUAGE_FORMAT)).GetLanguage();
+    return rSet.Get(ATTR_LANGUAGE_FORMAT).GetLanguage();
 }
 
 }
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 6395d9df2612..879f74e03a47 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -137,7 +137,7 @@ void ScCaptionUtil::SetDefaultItems( SdrCaptionObj& rCaption, ScDocument& rDoc )
     aItemSet.Put( makeSdrTextAutoGrowWidthItem( false ) );
     aItemSet.Put( makeSdrTextAutoGrowHeightItem( true ) );
     // use the default cell style to be able to modify the caption font
-    const ScPatternAttr& rDefPattern = static_cast< const ScPatternAttr& >( rDoc.GetPool()->GetDefaultItem( ATTR_PATTERN ) );
+    const ScPatternAttr& rDefPattern = rDoc.GetPool()->GetDefaultItem( ATTR_PATTERN );
     rDefPattern.FillEditItemSet( &aItemSet );
 
     rCaption.SetMergedItemSet( aItemSet );
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx
index b71fa4da0e2b..571969b71e4a 100644
--- a/sc/source/core/data/stlpool.cxx
+++ b/sc/source/core/data/stlpool.cxx
@@ -280,7 +280,7 @@ void ScStyleSheetPool::CreateStandardStyles()
     pSheet->SetHelpId( aHelpFile, HID_SC_SHEET_PAGE_STD );
 
     // distance to header/footer for the sheet
-    pHFSetItem = new SvxSetItem( static_cast<const SvxSetItem&>(pSet->Get( ATTR_PAGE_HEADERSET ) ) );
+    pHFSetItem = new SvxSetItem( pSet->Get( ATTR_PAGE_HEADERSET ) );
     pHFSetItem->SetWhich(ATTR_PAGE_HEADERSET);
     pSet->Put( *pHFSetItem );
     pHFSetItem->SetWhich(ATTR_PAGE_FOOTERSET);
@@ -335,7 +335,7 @@ void ScStyleSheetPool::CreateStandardStyles()
     aBoxInfoItem.SetTable( false );
     aBoxInfoItem.SetDist ( true );
 
-    pHFSetItem = new SvxSetItem( static_cast<const SvxSetItem&>(pSet->Get( ATTR_PAGE_HEADERSET ) ) );
+    pHFSetItem = new SvxSetItem( pSet->Get( ATTR_PAGE_HEADERSET ) );
     pHFSet = &(pHFSetItem->GetItemSet());
 
     pHFSet->Put( SvxBrushItem( aColGrey, ATTR_BACKGROUND ) );
diff --git a/sc/source/core/data/stlsheet.cxx b/sc/source/core/data/stlsheet.cxx
index 86eb877e851a..8461994ff61c 100644
--- a/sc/source/core/data/stlsheet.cxx
+++ b/sc/source/core/data/stlsheet.cxx
@@ -28,8 +28,10 @@
 #include <svx/pageitem.hxx>
 #include <editeng/paperinf.hxx>
 #include <editeng/pbinitem.hxx>
+#include <editeng/shaditem.hxx>
 #include <editeng/sizeitem.hxx>
 #include <editeng/ulspitem.hxx>
+#include <editeng/xmlcnitm.hxx>
 #include <sfx2/printer.hxx>
 #include <svl/itempool.hxx>
 #include <svl/itemset.hxx>
@@ -160,8 +162,7 @@ SfxItemSet& ScStyleSheet::GetItemSet()
                         SvxSizeItem     aPaperSizeItem( ATTR_PAGE_SIZE, SvxPaperInfo::GetDefaultPaperSize() );
 
                         SvxSetItem      aHFSetItem(
-                                            static_cast<const SvxSetItem&>(
-                                            rItemPool.GetDefaultItem(ATTR_PAGE_HEADERSET) ));
+                                            rItemPool.GetDefaultItem(ATTR_PAGE_HEADERSET) );
 
                         SfxItemSet&     rHFSet = aHFSetItem.GetItemSet();
                         SvxSizeItem     aHFSizeItem( // 0,5 cm + distance
diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx
index cd09f5d0247f..856eb1697698 100644
--- a/sc/source/core/data/table2.cxx
+++ b/sc/source/core/data/table2.cxx
@@ -873,7 +873,7 @@ void ScTable::TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                     ScPatternAttr aNewPattern( *pPattern );
                     SfxItemSet& rNewSet = aNewPattern.GetItemSet();
 
-                    const SvxBoxItem& rOldBox = static_cast<const SvxBoxItem&>(rSet.Get(ATTR_BORDER));
+                    const SvxBoxItem& rOldBox = rSet.Get(ATTR_BORDER);
                     if ( rOldBox.GetTop() || rOldBox.GetBottom() || rOldBox.GetLeft() || rOldBox.GetRight() )
                     {
                         SvxBoxItem aNew( ATTR_BORDER );
@@ -888,7 +888,7 @@ void ScTable::TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                         rNewSet.Put( aNew );
                     }
 
-                    const ScMergeAttr& rOldMerge = static_cast<const ScMergeAttr&>(rSet.Get(ATTR_MERGE));
+                    const ScMergeAttr& rOldMerge = rSet.Get(ATTR_MERGE);
                     if (rOldMerge.IsMerged())
                         rNewSet.Put( ScMergeAttr( std::min(
                                         static_cast<SCCOL>(rOldMerge.GetRowMerge()),
@@ -896,7 +896,7 @@ void ScTable::TransposeClip( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
                                     std::min(
                                         static_cast<SCROW>(rOldMerge.GetColMerge()),
                                         static_cast<SCROW>(MAXROW+1 - (nCol-nCol1)))));
-                    const ScMergeFlagAttr& rOldFlag = static_cast<const ScMergeFlagAttr&>(rSet.Get(ATTR_MERGE_FLAG));
+                    const ScMergeFlagAttr& rOldFlag = rSet.Get(ATTR_MERGE_FLAG);
                     if (rOldFlag.IsOverlapped())
                     {
                         ScMF nNewFlags = rOldFlag.GetValue() & ~ScMF( ScMF::Hor | ScMF::Ver );
diff --git a/sc/source/core/tool/autoform.cxx b/sc/source/core/tool/autoform.cxx
index 23e5ac68561f..296dae5b9026 100644
--- a/sc/source/core/tool/autoform.cxx
+++ b/sc/source/core/tool/autoform.cxx
@@ -715,34 +715,34 @@ void ScAutoFormatData::GetFromItemSet( sal_uInt16 nIndex, const SfxItemSet& rIte
     ScAutoFormatDataField& rField = GetField( nIndex );
 
     rField.SetNumFormat     ( rNumFormat);
-    rField.SetFont          ( static_cast<const SvxFontItem&>          (rItemSet.Get( ATTR_FONT )) );
-    rField.SetHeight        ( static_cast<const SvxFontHeightItem&>    (rItemSet.Get( ATTR_FONT_HEIGHT )) );
-    rField.SetWeight        ( static_cast<const SvxWeightItem&>        (rItemSet.Get( ATTR_FONT_WEIGHT )) );
-    rField.SetPosture       ( static_cast<const SvxPostureItem&>       (rItemSet.Get( ATTR_FONT_POSTURE )) );
-    rField.SetCJKFont       ( static_cast<const SvxFontItem&>          (rItemSet.Get( ATTR_CJK_FONT )) );
-    rField.SetCJKHeight     ( static_cast<const SvxFontHeightItem&>    (rItemSet.Get( ATTR_CJK_FONT_HEIGHT )) );
-    rField.SetCJKWeight     ( static_cast<const SvxWeightItem&>        (rItemSet.Get( ATTR_CJK_FONT_WEIGHT )) );
-    rField.SetCJKPosture    ( static_cast<const SvxPostureItem&>       (rItemSet.Get( ATTR_CJK_FONT_POSTURE )) );
-    rField.SetCTLFont       ( static_cast<const SvxFontItem&>          (rItemSet.Get( ATTR_CTL_FONT )) );
-    rField.SetCTLHeight     ( static_cast<const SvxFontHeightItem&>    (rItemSet.Get( ATTR_CTL_FONT_HEIGHT )) );
-    rField.SetCTLWeight     ( static_cast<const SvxWeightItem&>        (rItemSet.Get( ATTR_CTL_FONT_WEIGHT )) );
-    rField.SetCTLPosture    ( static_cast<const SvxPostureItem&>       (rItemSet.Get( ATTR_CTL_FONT_POSTURE )) );
-    rField.SetUnderline     ( static_cast<const SvxUnderlineItem&>     (rItemSet.Get( ATTR_FONT_UNDERLINE )) );
-    rField.SetOverline      ( static_cast<const SvxOverlineItem&>      (rItemSet.Get( ATTR_FONT_OVERLINE )) );
-    rField.SetCrossedOut    ( static_cast<const SvxCrossedOutItem&>    (rItemSet.Get( ATTR_FONT_CROSSEDOUT )) );
-    rField.SetContour       ( static_cast<const SvxContourItem&>       (rItemSet.Get( ATTR_FONT_CONTOUR )) );
-    rField.SetShadowed      ( static_cast<const SvxShadowedItem&>      (rItemSet.Get( ATTR_FONT_SHADOWED )) );
-    rField.SetColor         ( static_cast<const SvxColorItem&>         (rItemSet.Get( ATTR_FONT_COLOR )) );
-    rField.SetTLBR          ( static_cast<const SvxLineItem&>          (rItemSet.Get( ATTR_BORDER_TLBR )) );
-    rField.SetBLTR          ( static_cast<const SvxLineItem&>          (rItemSet.Get( ATTR_BORDER_BLTR )) );
-    rField.SetHorJustify    ( static_cast<const SvxHorJustifyItem&>    (rItemSet.Get( ATTR_HOR_JUSTIFY )) );
-    rField.SetVerJustify    ( static_cast<const SvxVerJustifyItem&>    (rItemSet.Get( ATTR_VER_JUSTIFY )) );
-    rField.SetStacked       ( static_cast<const SfxBoolItem&>          (rItemSet.Get( ATTR_STACKED )) );
-    rField.SetLinebreak     ( static_cast<const SfxBoolItem&>          (rItemSet.Get( ATTR_LINEBREAK )) );
-    rField.SetMargin        ( static_cast<const SvxMarginItem&>        (rItemSet.Get( ATTR_MARGIN )) );
-    rField.SetBackground    ( static_cast<const SvxBrushItem&>         (rItemSet.Get( ATTR_BACKGROUND )) );
-    rField.SetRotateAngle   ( static_cast<const SfxInt32Item&>         (rItemSet.Get( ATTR_ROTATE_VALUE )) );
-    rField.SetRotateMode    ( static_cast<const SvxRotateModeItem&>    (rItemSet.Get( ATTR_ROTATE_MODE )) );
+    rField.SetFont          ( rItemSet.Get( ATTR_FONT ) );
+    rField.SetHeight        ( rItemSet.Get( ATTR_FONT_HEIGHT ) );
+    rField.SetWeight        ( rItemSet.Get( ATTR_FONT_WEIGHT ) );
+    rField.SetPosture       ( rItemSet.Get( ATTR_FONT_POSTURE ) );
+    rField.SetCJKFont       ( rItemSet.Get( ATTR_CJK_FONT ) );
+    rField.SetCJKHeight     ( rItemSet.Get( ATTR_CJK_FONT_HEIGHT ) );
+    rField.SetCJKWeight     ( rItemSet.Get( ATTR_CJK_FONT_WEIGHT ) );
+    rField.SetCJKPosture    ( rItemSet.Get( ATTR_CJK_FONT_POSTURE ) );
+    rField.SetCTLFont       ( rItemSet.Get( ATTR_CTL_FONT ) );
+    rField.SetCTLHeight     ( rItemSet.Get( ATTR_CTL_FONT_HEIGHT ) );
+    rField.SetCTLWeight     ( rItemSet.Get( ATTR_CTL_FONT_WEIGHT ) );
+    rField.SetCTLPosture    ( rItemSet.Get( ATTR_CTL_FONT_POSTURE ) );
+    rField.SetUnderline     ( rItemSet.Get( ATTR_FONT_UNDERLINE ) );
+    rField.SetOverline      ( rItemSet.Get( ATTR_FONT_OVERLINE ) );
+    rField.SetCrossedOut    ( rItemSet.Get( ATTR_FONT_CROSSEDOUT ) );
+    rField.SetContour       ( rItemSet.Get( ATTR_FONT_CONTOUR ) );
+    rField.SetShadowed      ( rItemSet.Get( ATTR_FONT_SHADOWED ) );
+    rField.SetColor         ( rItemSet.Get( ATTR_FONT_COLOR ) );
+    rField.SetTLBR          ( rItemSet.Get( ATTR_BORDER_TLBR ) );
+    rField.SetBLTR          ( rItemSet.Get( ATTR_BORDER_BLTR ) );
+    rField.SetHorJustify    ( rItemSet.Get( ATTR_HOR_JUSTIFY ) );
+    rField.SetVerJustify    ( rItemSet.Get( ATTR_VER_JUSTIFY ) );
+    rField.SetStacked       ( rItemSet.Get( ATTR_STACKED ) );
+    rField.SetLinebreak     ( rItemSet.Get( ATTR_LINEBREAK ) );
+    rField.SetMargin        ( rItemSet.Get( ATTR_MARGIN ) );
+    rField.SetBackground    ( rItemSet.Get( ATTR_BACKGROUND ) );
+    rField.SetRotateAngle   ( rItemSet.Get( ATTR_ROTATE_VALUE ) );
+    rField.SetRotateMode    ( rItemSet.Get( ATTR_ROTATE_MODE ) );
 }
 
 static const char* RID_SVXSTR_TBLAFMT[] =
diff --git a/sc/source/core/tool/detfunc.cxx b/sc/source/core/tool/detfunc.cxx
index e8170d41284a..c1f0f2483317 100644
--- a/sc/source/core/tool/detfunc.cxx
+++ b/sc/source/core/tool/detfunc.cxx
@@ -229,8 +229,7 @@ ScCommentData::ScCommentData( ScDocument& rDoc, SdrModel* pModel ) :
 
     //  do use the default cell style, so the user has a chance to
     //  modify the font for the annotations
-    static_cast<const ScPatternAttr&>(rDoc.GetPool()->GetDefaultItem(ATTR_PATTERN)).
-        FillEditItemSet( &aCaptionSet );
+    rDoc.GetPool()->GetDefaultItem(ATTR_PATTERN).FillEditItemSet( &aCaptionSet );
 
     // support the best position for the tail connector now that
     // that notes can be resized and repositioned.
diff --git a/sc/source/core/tool/editutil.cxx b/sc/source/core/tool/editutil.cxx
index 14e906eae5a9..92b20d328e4a 100644
--- a/sc/source/core/tool/editutil.cxx
+++ b/sc/source/core/tool/editutil.cxx
@@ -695,7 +695,7 @@ ScTabEditEngine::ScTabEditEngine( ScDocument* pDoc )
         : ScEditEngineDefaulter( pDoc->GetEnginePool() )
 {
     SetEditTextObjectPool( pDoc->GetEditPool() );
-    Init(static_cast<const ScPatternAttr&>(pDoc->GetPool()->GetDefaultItem(ATTR_PATTERN)));
+    Init(pDoc->GetPool()->GetDefaultItem(ATTR_PATTERN));
 }
 
 ScTabEditEngine::ScTabEditEngine( const ScPatternAttr& rPattern,
diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx
index f3e171288321..45553c6b2110 100644
--- a/sc/source/filter/excel/xehelper.cxx
+++ b/sc/source/filter/excel/xehelper.cxx
@@ -497,7 +497,7 @@ XclExpStringRef lclCreateFormattedString(
                 // add escapement
                 aFont.SetEscapement( nEsc );
                 // modify automatic font color for hyperlinks
-                if( bIsHyperlink && (GETITEM( aItemSet, SvxColorItem, ATTR_FONT_COLOR ).GetValue().GetColor() == COL_AUTO) )
+                if( bIsHyperlink && aItemSet.Get( ATTR_FONT_COLOR ).GetValue().GetColor() == COL_AUTO)
                     aFont.SetColor( Color( COL_LIGHTBLUE ) );
 
                 // insert font into buffer
diff --git a/sc/source/filter/excel/xepage.cxx b/sc/source/filter/excel/xepage.cxx
index 172e01ec3f2f..0e0ce7163354 100644
--- a/sc/source/filter/excel/xepage.cxx
+++ b/sc/source/filter/excel/xepage.cxx
@@ -221,30 +221,30 @@ XclExpPageSettings::XclExpPageSettings( const XclExpRoot& rRoot ) :
 
         // *** page settings ***
 
-        maData.mbPrintInRows   = !GETITEMBOOL( rItemSet, ATTR_PAGE_TOPDOWN   );
-        maData.mbHorCenter     =  GETITEMBOOL( rItemSet, ATTR_PAGE_HORCENTER );
-        maData.mbVerCenter     =  GETITEMBOOL( rItemSet, ATTR_PAGE_VERCENTER );
-        maData.mbPrintHeadings =  GETITEMBOOL( rItemSet, ATTR_PAGE_HEADERS   );
-        maData.mbPrintGrid     =  GETITEMBOOL( rItemSet, ATTR_PAGE_GRID      );
-        maData.mbPrintNotes    =  GETITEMBOOL( rItemSet, ATTR_PAGE_NOTES     );
-
-        maData.mnStartPage     = GETITEM( rItemSet, SfxUInt16Item, ATTR_PAGE_FIRSTPAGENO ).GetValue();
+        maData.mbPrintInRows   = ! rItemSet.Get( ATTR_PAGE_TOPDOWN ).GetValue();
+        maData.mbHorCenter     =  rItemSet.Get( ATTR_PAGE_HORCENTER ).GetValue();
+        maData.mbVerCenter     =  rItemSet.Get( ATTR_PAGE_VERCENTER ).GetValue();
+        maData.mbPrintHeadings =  rItemSet.Get( ATTR_PAGE_HEADERS   ).GetValue();
+        maData.mbPrintGrid     =  rItemSet.Get( ATTR_PAGE_GRID      ).GetValue();
+        maData.mbPrintNotes    =  rItemSet.Get( ATTR_PAGE_NOTES     ).GetValue();
+
+        maData.mnStartPage     = rItemSet.Get( ATTR_PAGE_FIRSTPAGENO ).GetValue();
         maData.mbManualStart   = maData.mnStartPage && (!nScTab || rDoc.NeedPageResetAfterTab( nScTab - 1 ));
 
-        const SvxLRSpaceItem& rLRItem = GETITEM( rItemSet, SvxLRSpaceItem, ATTR_LRSPACE );
+        const SvxLRSpaceItem& rLRItem = rItemSet.Get( ATTR_LRSPACE );
         maData.mfLeftMargin    = XclTools::GetInchFromTwips( rLRItem.GetLeft() );
         maData.mfRightMargin   = XclTools::GetInchFromTwips( rLRItem.GetRight() );
-        const SvxULSpaceItem& rULItem = GETITEM( rItemSet, SvxULSpaceItem, ATTR_ULSPACE );
+        const SvxULSpaceItem& rULItem = rItemSet.Get( ATTR_ULSPACE );
         maData.mfTopMargin     = XclTools::GetInchFromTwips( rULItem.GetUpper() );
         maData.mfBottomMargin  = XclTools::GetInchFromTwips( rULItem.GetLower() );
 
-        const SvxPageItem& rPageItem = GETITEM( rItemSet, SvxPageItem, ATTR_PAGE );
-        const SvxSizeItem& rSizeItem = GETITEM( rItemSet, SvxSizeItem, ATTR_PAGE_SIZE );
+        const SvxPageItem& rPageItem = rItemSet.Get( ATTR_PAGE );
+        const SvxSizeItem& rSizeItem = rItemSet.Get( ATTR_PAGE_SIZE );
         maData.SetScPaperSize( rSizeItem.GetSize(), !rPageItem.IsLandscape() );
 
-        const ScPageScaleToItem& rScaleToItem = GETITEM( rItemSet, ScPageScaleToItem, ATTR_PAGE_SCALETO );
-        sal_uInt16 nPages = GETITEM( rItemSet, SfxUInt16Item, ATTR_PAGE_SCALETOPAGES ).GetValue();
-        sal_uInt16 nScale = GETITEM( rItemSet, SfxUInt16Item, ATTR_PAGE_SCALE ).GetValue();
+        const ScPageScaleToItem& rScaleToItem = rItemSet.Get( ATTR_PAGE_SCALETO );
+        sal_uInt16 nPages = rItemSet.Get( ATTR_PAGE_SCALETOPAGES ).GetValue();
+        sal_uInt16 nScale = rItemSet.Get( ATTR_PAGE_SCALE ).GetValue();
 
         if( ScfTools::CheckItem( rItemSet, ATTR_PAGE_SCALETO, false ) && rScaleToItem.IsValid() )
         {
@@ -265,42 +265,42 @@ XclExpPageSettings::XclExpPageSettings( const XclExpRoot& rRoot ) :
             maData.mbFitToPages = false;
         }
 
-        maData.mxBrushItem.reset( new SvxBrushItem( GETITEM( rItemSet, SvxBrushItem, ATTR_BACKGROUND ) ) );
+        maData.mxBrushItem.reset( new SvxBrushItem( rItemSet.Get( ATTR_BACKGROUND ) ) );
 
         // *** header and footer ***
 
         XclExpHFConverter aHFConv( GetRoot() );
 
         // header
-        const SfxItemSet& rHdrItemSet = GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_HEADERSET ).GetItemSet();
-        if( GETITEMBOOL( rHdrItemSet, ATTR_PAGE_ON ) )
+        const SfxItemSet& rHdrItemSet = rItemSet.Get( ATTR_PAGE_HEADERSET ).GetItemSet();
+        if( rHdrItemSet.Get( ATTR_PAGE_ON ).GetValue() )
         {
-            const ScPageHFItem& rHFItem = GETITEM( rItemSet, ScPageHFItem, ATTR_PAGE_HEADERRIGHT );
+            const ScPageHFItem& rHFItem = rItemSet.Get( ATTR_PAGE_HEADERRIGHT );
             aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() );
             maData.maHeader = aHFConv.GetHFString();
             // header height (Excel excludes header from top margin)
-            sal_Int32 nHdrHeight = GETITEMBOOL( rHdrItemSet, ATTR_PAGE_DYNAMIC ) ?
+            sal_Int32 nHdrHeight = rHdrItemSet.Get( ATTR_PAGE_DYNAMIC ).GetValue() ?
                 // dynamic height: calculate header height, add header <-> sheet area distance
-                (aHFConv.GetTotalHeight() + GETITEM( rHdrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetLower()) :
+                (aHFConv.GetTotalHeight() + rHdrItemSet.Get( ATTR_ULSPACE ).GetLower()) :
                 // static height: ATTR_PAGE_SIZE already includes header <-> sheet area distance
-                static_cast< sal_Int32 >( GETITEM( rHdrItemSet, SvxSizeItem, ATTR_PAGE_SIZE ).GetSize().Height() );
+                static_cast< sal_Int32 >( rHdrItemSet.Get( ATTR_PAGE_SIZE ).GetSize().Height() );
             maData.mfHeaderMargin = maData.mfTopMargin;
             maData.mfTopMargin += XclTools::GetInchFromTwips( nHdrHeight );
         }
 
         // footer
-        const SfxItemSet& rFtrItemSet = GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_FOOTERSET ).GetItemSet();
-        if( GETITEMBOOL( rFtrItemSet, ATTR_PAGE_ON ) )
+        const SfxItemSet& rFtrItemSet = rItemSet.Get( ATTR_PAGE_FOOTERSET ).GetItemSet();
+        if( rFtrItemSet.Get( ATTR_PAGE_ON ).GetValue() )
         {
-            const ScPageHFItem& rHFItem = GETITEM( rItemSet, ScPageHFItem, ATTR_PAGE_FOOTERRIGHT );
+            const ScPageHFItem& rHFItem = rItemSet.Get( ATTR_PAGE_FOOTERRIGHT );
             aHFConv.GenerateString( rHFItem.GetLeftArea(), rHFItem.GetCenterArea(), rHFItem.GetRightArea() );
             maData.maFooter = aHFConv.GetHFString();
             // footer height (Excel excludes footer from bottom margin)
-            sal_Int32 nFtrHeight = GETITEMBOOL( rFtrItemSet, ATTR_PAGE_DYNAMIC ) ?
+            sal_Int32 nFtrHeight = rFtrItemSet.Get( ATTR_PAGE_DYNAMIC ).GetValue() ?
                 // dynamic height: calculate footer height, add sheet area <-> footer distance
-                (aHFConv.GetTotalHeight() + GETITEM( rFtrItemSet, SvxULSpaceItem, ATTR_ULSPACE ).GetUpper()) :
+                (aHFConv.GetTotalHeight() + rFtrItemSet.Get( ATTR_ULSPACE ).GetUpper()) :
                 // static height: ATTR_PAGE_SIZE already includes sheet area <-> footer distance
-                static_cast< sal_Int32 >( GETITEM( rFtrItemSet, SvxSizeItem, ATTR_PAGE_SIZE ).GetSize().Height() );
+                static_cast< sal_Int32 >( rFtrItemSet.Get( ATTR_PAGE_SIZE ).GetSize().Height() );
             maData.mfFooterMargin = maData.mfBottomMargin;
             maData.mfBottomMargin += XclTools::GetInchFromTwips( nFtrHeight );
         }
diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx
index 31d54f5da67e..0e8753643b9f 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -1450,7 +1450,7 @@ OUString XclExpNumFmtBuffer::GetFormatCode( sal_uInt32 nScNumFmt )
 
 bool XclExpCellProt::FillFromItemSet( const SfxItemSet& rItemSet, bool bStyle )
 {
-    const ScProtectionAttr& rProtItem = GETITEM( rItemSet, ScProtectionAttr, ATTR_PROTECTION );
+    const ScProtectionAttr& rProtItem = rItemSet.Get( ATTR_PROTECTION );
     mbLocked = rProtItem.GetProtection();
     mbHidden = rProtItem.GetHideFormula() || rProtItem.GetHideCell();
     return ScfTools::CheckItem( rItemSet, ATTR_PROTECTION, bStyle );
@@ -1474,25 +1474,25 @@ bool XclExpCellAlign::FillFromItemSet(
         const SfxItemSet& rItemSet, bool bForceLineBreak, XclBiff eBiff, bool bStyle )
 {
     bool bUsed = false;
-    SvxCellHorJustify eHorAlign = GETITEM( rItemSet, SvxHorJustifyItem, ATTR_HOR_JUSTIFY ).GetValue();
-    SvxCellVerJustify eVerAlign = GETITEM( rItemSet, SvxVerJustifyItem, ATTR_VER_JUSTIFY ).GetValue();
+    SvxCellHorJustify eHorAlign = rItemSet.Get( ATTR_HOR_JUSTIFY ).GetValue();
+    SvxCellVerJustify eVerAlign = rItemSet.Get( ATTR_VER_JUSTIFY ).GetValue();
 
     switch( eBiff )
     {
         case EXC_BIFF8: // attributes new in BIFF8
         {
             // text indent
-            long nTmpIndent = GETITEM( rItemSet, SfxUInt16Item, ATTR_INDENT ).GetValue();
+            long nTmpIndent = rItemSet.Get( ATTR_INDENT ).GetValue();
             (nTmpIndent += 100) /= 200; // 1 Excel unit == 10 pt == 200 twips
             mnIndent = limit_cast< sal_uInt8 >( nTmpIndent, 0, 15 );
             bUsed |= ScfTools::CheckItem( rItemSet, ATTR_INDENT, bStyle );
 
             // shrink to fit
-            mbShrink = GETITEM( rItemSet, SfxBoolItem, ATTR_SHRINKTOFIT ).GetValue();
+            mbShrink = rItemSet.Get( ATTR_SHRINKTOFIT ).GetValue();
             bUsed |= ScfTools::CheckItem( rItemSet, ATTR_SHRINKTOFIT, bStyle );
 
             // CTL text direction
-            SetScFrameDir( GETITEM( rItemSet, SvxFrameDirectionItem, ATTR_WRITINGDIR ).GetValue() );
+            SetScFrameDir( rItemSet.Get( ATTR_WRITINGDIR ).GetValue() );
             bUsed |= ScfTools::CheckItem( rItemSet, ATTR_WRITINGDIR, bStyle );
 
             SAL_FALLTHROUGH;
@@ -1506,7 +1506,7 @@ bool XclExpCellAlign::FillFromItemSet(
             bUsed |= ScfTools::CheckItem( rItemSet, ATTR_VER_JUSTIFY, bStyle );
 
             // stacked/rotation
-            bool bStacked = GETITEM( rItemSet, SfxBoolItem, ATTR_STACKED ).GetValue();
+            bool bStacked = rItemSet.Get( ATTR_STACKED ).GetValue();
             bUsed |= ScfTools::CheckItem( rItemSet, ATTR_STACKED, bStyle );
             if( bStacked )
             {
@@ -1515,7 +1515,7 @@ bool XclExpCellAlign::FillFromItemSet(
             else
             {
                 // rotation
-                sal_Int32 nScRot = GETITEM( rItemSet, SfxInt32Item, ATTR_ROTATE_VALUE ).GetValue();
+                sal_Int32 nScRot = rItemSet.Get( ATTR_ROTATE_VALUE ).GetValue();
                 mnRotation = XclTools::GetXclRotation( nScRot );
                 bUsed |= ScfTools::CheckItem( rItemSet, ATTR_ROTATE_VALUE, bStyle );
             }
@@ -1527,7 +1527,7 @@ bool XclExpCellAlign::FillFromItemSet(
         case EXC_BIFF3: // attributes new in BIFF3
         {
             // text wrap
-            mbLineBreak = bForceLineBreak || GETITEMBOOL( rItemSet, ATTR_LINEBREAK );
+            mbLineBreak = bForceLineBreak || rItemSet.Get( ATTR_LINEBREAK ).GetValue();
             bUsed |= bForceLineBreak || ScfTools::CheckItem( rItemSet, ATTR_LINEBREAK, bStyle );
 
             SAL_FALLTHROUGH;
@@ -1736,13 +1736,13 @@ bool XclExpCellBorder::FillFromItemSet(
     {
         case EXC_BIFF8: // attributes new in BIFF8
         {
-            const SvxLineItem& rTLBRItem = GETITEM( rItemSet, SvxLineItem, ATTR_BORDER_TLBR );
+            const SvxLineItem& rTLBRItem = rItemSet.Get( ATTR_BORDER_TLBR );
             sal_uInt8 nTLBRLine;
             sal_uInt32 nTLBRColorId;
             lclGetBorderLine( nTLBRLine, nTLBRColorId, rTLBRItem.GetLine(), rPalette, eBiff );
             mbDiagTLtoBR = (nTLBRLine != EXC_LINE_NONE);
 
-            const SvxLineItem& rBLTRItem = GETITEM( rItemSet, SvxLineItem, ATTR_BORDER_BLTR );
+            const SvxLineItem& rBLTRItem = rItemSet.Get( ATTR_BORDER_BLTR );
             sal_uInt8 nBLTRLine;
             sal_uInt32 nBLTRColorId;
             lclGetBorderLine( nBLTRLine, nBLTRColorId, rBLTRItem.GetLine(), rPalette, eBiff );
@@ -1770,7 +1770,7 @@ bool XclExpCellBorder::FillFromItemSet(
         case EXC_BIFF3:
         case EXC_BIFF2:
         {
-            const SvxBoxItem& rBoxItem = GETITEM( rItemSet, SvxBoxItem, ATTR_BORDER );
+            const SvxBoxItem& rBoxItem = rItemSet.Get( ATTR_BORDER );
             lclGetBorderLine( mnLeftLine,   mnLeftColorId,   rBoxItem.GetLeft(),   rPalette, eBiff );
             lclGetBorderLine( mnRightLine,  mnRightColorId,  rBoxItem.GetRight(),  rPalette, eBiff );
             lclGetBorderLine( mnTopLine,    mnTopColorId,    rBoxItem.GetTop(),    rPalette, eBiff );
@@ -1905,7 +1905,7 @@ XclExpCellArea::XclExpCellArea() :
 
 bool XclExpCellArea::FillFromItemSet( const SfxItemSet& rItemSet, XclExpPalette& rPalette, bool bStyle )
 {
-    const SvxBrushItem& rBrushItem = GETITEM( rItemSet, SvxBrushItem, ATTR_BACKGROUND );
+    const SvxBrushItem& rBrushItem = rItemSet.Get( ATTR_BACKGROUND );
     if( rBrushItem.GetColor().GetTransparency() )
     {
         mnPattern = EXC_PATT_NONE;
@@ -2003,7 +2003,7 @@ bool XclExpColor::FillFromItemSet( const SfxItemSet& rItemSet )
     if( !ScfTools::CheckItem( rItemSet, ATTR_BACKGROUND, true ) )
         return false;
 
-    const SvxBrushItem& rBrushItem = GETITEM( rItemSet, SvxBrushItem, ATTR_BACKGROUND );
+    const SvxBrushItem& rBrushItem = rItemSet.Get( ATTR_BACKGROUND );
     maColor = rBrushItem.GetColor();
 
     return true;
@@ -2131,7 +2131,7 @@ void XclExpXF::Init( const SfxItemSet& rItemSet, sal_Int16 nScript,
 
     // number format
     mnScNumFmt = (nForceScNumFmt == NUMBERFORMAT_ENTRY_NOT_FOUND) ?
-        GETITEM( rItemSet, SfxUInt32Item, ATTR_VALUE_FORMAT ).GetValue() : nForceScNumFmt;
+        rItemSet.Get( ATTR_VALUE_FORMAT ).GetValue() : nForceScNumFmt;
     mnXclNumFmt = GetNumFmtBuffer().Insert( mnScNumFmt );
     mbFmtUsed = ScfTools::CheckItem( rItemSet, ATTR_VALUE_FORMAT, IsStyleXF() );
     // alignment
diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx
index 39302bbc637e..75980091a640 100644
--- a/sc/source/filter/excel/xetable.cxx
+++ b/sc/source/filter/excel/xetable.cxx
@@ -828,7 +828,7 @@ XclExpFormulaCell::XclExpFormulaCell(
 
         // current cell number format
         sal_uInt32 nScNumFmt = pPattern ?
-            GETITEM( pPattern->GetItemSet(), SfxUInt32Item, ATTR_VALUE_FORMAT ).GetValue() :
+            pPattern->GetItemSet().Get( ATTR_VALUE_FORMAT ).GetValue() :
             rNumFmtBfr.GetStandardFormat();
 
         // alternative number format passed to XF buffer
@@ -2517,11 +2517,11 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) :
         {
             const SfxItemSet& rItemSet = pPattern->GetItemSet();
             // base cell in a merged range
-            const ScMergeAttr& rMergeItem = GETITEM( rItemSet, ScMergeAttr, ATTR_MERGE );
+            const ScMergeAttr& rMergeItem = rItemSet.Get( ATTR_MERGE );
             bIsMergedBase = rMergeItem.IsMerged();
             /*  overlapped cell in a merged range; in Excel all merged cells
                 must contain same XF index, for correct border */
-            const ScMergeFlagAttr& rMergeFlagItem = GETITEM( rItemSet, ScMergeFlagAttr, ATTR_MERGE_FLAG );
+            const ScMergeFlagAttr& rMergeFlagItem = rItemSet.Get( ATTR_MERGE_FLAG );
             if( rMergeFlagItem.IsOverlapped() )
                 nMergeBaseXFId = mxMergedcells->GetBaseXFId( aScPos );
         }
@@ -2537,7 +2537,7 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) :
                 // try to create a Boolean cell
                 if( pPattern && ((fValue == 0.0) || (fValue == 1.0)) )
                 {
-                    sal_uInt32 nScNumFmt = GETITEM( pPattern->GetItemSet(), SfxUInt32Item, ATTR_VALUE_FORMAT ).GetValue();
+                    sal_uInt32 nScNumFmt = pPattern->GetItemSet().Get( ATTR_VALUE_FORMAT ).GetValue();
                     if( rFormatter.GetType( nScNumFmt ) == css::util::NumberFormat::LOGICAL )
                         xCell.reset( new XclExpBooleanCell(
                             GetRoot(), aXclPos, pPattern, nMergeBaseXFId, fValue != 0.0 ) );
@@ -2612,7 +2612,7 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) :
             // base cell in a merged range
             if( bIsMergedBase )
             {
-                const ScMergeAttr& rMergeItem = GETITEM( rItemSet, ScMergeAttr, ATTR_MERGE );
+                const ScMergeAttr& rMergeItem = rItemSet.Get( ATTR_MERGE );
                 ScRange aScRange( aScPos );
                 aScRange.aEnd.IncCol( rMergeItem.GetColMerge() - 1 );
                 aScRange.aEnd.IncRow( rMergeItem.GetRowMerge() - 1 );
@@ -2631,7 +2631,7 @@ XclExpCellTable::XclExpCellTable( const XclExpRoot& rRoot ) :
             // data validation
             if( ScfTools::CheckItem( rItemSet, ATTR_VALIDDATA, false ) )
             {
-                sal_uLong nScHandle = GETITEM( rItemSet, SfxUInt32Item, ATTR_VALIDDATA ).GetValue();
+                sal_uLong nScHandle = rItemSet.Get( ATTR_VALIDDATA ).GetValue();
                 ScRange aScRange( aScPos );
                 aScRange.aEnd.SetCol( nLastScCol );
                 mxDval->InsertCellRange( aScRange, nScHandle );
diff --git a/sc/source/filter/excel/xipage.cxx b/sc/source/filter/excel/xipage.cxx
index 9c97f36e583d..526a8e355e9b 100644
--- a/sc/source/filter/excel/xipage.cxx
+++ b/sc/source/filter/excel/xipage.cxx
@@ -187,7 +187,7 @@ void lclPutMarginItem( SfxItemSet& rItemSet, sal_uInt16 nRecId, double fMarginIn
         case EXC_ID_TOPMARGIN:
         case EXC_ID_BOTTOMMARGIN:
         {
-            SvxULSpaceItem aItem( GETITEM( rItemSet, SvxULSpaceItem, ATTR_ULSPACE ) );
+            SvxULSpaceItem aItem( rItemSet.Get( ATTR_ULSPACE ) );
             if( nRecId == EXC_ID_TOPMARGIN )
                 aItem.SetUpperValue( nMarginTwips );
             else
@@ -198,7 +198,7 @@ void lclPutMarginItem( SfxItemSet& rItemSet, sal_uInt16 nRecId, double fMarginIn
         case EXC_ID_LEFTMARGIN:
         case EXC_ID_RIGHTMARGIN:
         {
-            SvxLRSpaceItem aItem( GETITEM( rItemSet, SvxLRSpaceItem, ATTR_LRSPACE ) );
+            SvxLRSpaceItem aItem( rItemSet.Get( ATTR_LRSPACE ) );
             if( nRecId == EXC_ID_LEFTMARGIN )
                 aItem.SetLeftValue( nMarginTwips );
             else
@@ -251,7 +251,7 @@ void XclImpPageSettings::Finalize()
 
     if( mbValidPaper )
     {
-        SvxPageItem aPageItem( GETITEM( rItemSet, SvxPageItem, ATTR_PAGE ) );
+        SvxPageItem aPageItem( rItemSet.Get( ATTR_PAGE ) );
         aPageItem.SetLandscape( !maData.mbPortrait );
         rItemSet.Put( aPageItem );
         ScfTools::PutItem( rItemSet, SvxSizeItem( ATTR_PAGE_SIZE, maData.GetScPaperSize() ), true );
@@ -285,7 +285,7 @@ void XclImpPageSettings::Finalize()
 
     // header
     bool bHasHeader = !maData.maHeader.isEmpty();
-    SvxSetItem aHdrSetItem( GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_HEADERSET ) );
+    SvxSetItem aHdrSetItem( rItemSet.Get( ATTR_PAGE_HEADERSET ) );
     SfxItemSet& rHdrItemSet = aHdrSetItem.GetItemSet();
     rHdrItemSet.Put( SfxBoolItem( ATTR_PAGE_ON, bHasHeader ) );
     if( bHasHeader )
@@ -321,7 +321,7 @@ void XclImpPageSettings::Finalize()
 
     // footer
     bool bHasFooter = !maData.maFooter.isEmpty();
-    SvxSetItem aFtrSetItem( GETITEM( rItemSet, SvxSetItem, ATTR_PAGE_FOOTERSET ) );
+    SvxSetItem aFtrSetItem( rItemSet.Get( ATTR_PAGE_FOOTERSET ) );
     SfxItemSet& rFtrItemSet = aFtrSetItem.GetItemSet();
     rFtrItemSet.Put( SfxBoolItem( ATTR_PAGE_ON, bHasFooter ) );
     if( bHasFooter )
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
index 17fa3853fa51..853868ec7894 100644
--- a/sc/source/filter/html/htmlexp.cxx
+++ b/sc/source/filter/html/htmlexp.cxx
@@ -482,7 +482,7 @@ const SfxItemSet& ScHTMLExport::PageDefaults( SCTAB nTab )
     const SfxItemSet& rSet = pStyleSheet->GetItemSet();
     if ( !aHTMLStyle.bInitialized )
     {
-        const SvxBrushItem* pBrushItem = static_cast<const SvxBrushItem*>(&rSet.Get( ATTR_BACKGROUND ));
+        const SvxBrushItem* pBrushItem = &rSet.Get( ATTR_BACKGROUND );
         aHTMLStyle.aBackgroundColor = pBrushItem->GetColor();
         aHTMLStyle.bInitialized = true;
     }
@@ -564,7 +564,7 @@ OString ScHTMLExport::BorderToStyle(const char* pBorderName,
 void ScHTMLExport::WriteBody()
 {
     const SfxItemSet& rSet = PageDefaults( bAll ? 0 : aRange.aStart.Tab() );
-    const SvxBrushItem* pBrushItem = static_cast<const SvxBrushItem*>(&rSet.Get( ATTR_BACKGROUND ));
+    const SvxBrushItem* pBrushItem = &rSet.Get( ATTR_BACKGROUND );
 
     // default text color black
     if (!mbSkipHeaderFooter)
diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx
index 6414b99956c0..72d56b4d9126 100644
--- a/sc/source/filter/html/htmlimp.cxx
+++ b/sc/source/filter/html/htmlimp.cxx
@@ -70,13 +70,13 @@ ScHTMLImport::ScHTMLImport( ScDocument* pDocP, const OUString& rBaseURL, const S
     if ( pStyleSheet )
     {
         const SfxItemSet& rSet = pStyleSheet->GetItemSet();
-        const SvxLRSpaceItem* pLRItem = static_cast<const SvxLRSpaceItem*>( &rSet.Get( ATTR_LRSPACE ) );
+        const SvxLRSpaceItem* pLRItem = &rSet.Get( ATTR_LRSPACE );
         long nLeftMargin   = pLRItem->GetLeft();
         long nRightMargin  = pLRItem->GetRight();
-        const SvxULSpaceItem* pULItem = static_cast<const SvxULSpaceItem*>( &rSet.Get( ATTR_ULSPACE ) );
+        const SvxULSpaceItem* pULItem = &rSet.Get( ATTR_ULSPACE );
         long nTopMargin    = pULItem->GetUpper();
         long nBottomMargin = pULItem->GetLower();
-        aPageSize = static_cast<const SvxSizeItem&>(rSet.Get(ATTR_PAGE_SIZE)).GetSize();
+        aPageSize = rSet.Get(ATTR_PAGE_SIZE).GetSize();
         if ( !aPageSize.Width() || !aPageSize.Height() )
         {
             OSL_FAIL("PageSize Null ?!?!?");
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx
index 6acc7a8724f5..66daf08139f8 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -457,7 +457,7 @@ void SheetDataBuffer::finalizeImport()
             pDefPattern = rDoc.getDoc().GetPattern( nScCol, nScRow, getSheetIndex() );
             if ( pDefPattern )
             {
-                const ScMergeFlagAttr* pAttr = static_cast<const ScMergeFlagAttr*>( pDefPattern->GetItemSet().GetItem( ATTR_MERGE_FLAG ) );
+                const ScMergeFlagAttr* pAttr = pDefPattern->GetItemSet().GetItem( ATTR_MERGE_FLAG );
                 bAutoFilter = pAttr->HasAutoFilter();
             }
             else
diff --git a/sc/source/filter/rtf/eeimpars.cxx b/sc/source/filter/rtf/eeimpars.cxx
index 89b8b088be0c..0214a78240d6 100644
--- a/sc/source/filter/rtf/eeimpars.cxx
+++ b/sc/source/filter/rtf/eeimpars.cxx
@@ -24,7 +24,9 @@
 #include <editeng/editobj.hxx>
 #include <editeng/editview.hxx>
 #include <editeng/escapementitem.hxx>
+#include <editeng/justifyitem.hxx>
 #include <editeng/langitem.hxx>
+#include <editeng/shaditem.hxx>
 #include <svx/svdograf.hxx>
 #include <svx/svdpage.hxx>
 #include <editeng/scripttypeitem.hxx>
diff --git a/sc/source/filter/rtf/rtfparse.cxx b/sc/source/filter/rtf/rtfparse.cxx
index 1b091aa6234a..3d0297f73f68 100644
--- a/sc/source/filter/rtf/rtfparse.cxx
+++ b/sc/source/filter/rtf/rtfparse.cxx
@@ -23,6 +23,7 @@
 #include <editeng/editeng.hxx>
 #include <editeng/fhgtitem.hxx>
 #include <editeng/svxrtf.hxx>
+#include <editeng/shaditem.hxx>
 #include <vcl/outdev.hxx>
 #include <svtools/rtftoken.h>
 
diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx b/sc/source/ui/Accessibility/AccessibleText.cxx
index 5ceb341135d5..cf9a4e9cca4b 100644
--- a/sc/source/ui/Accessibility/AccessibleText.cxx
+++ b/sc/source/ui/Accessibility/AccessibleText.cxx
@@ -1374,7 +1374,7 @@ SvxTextForwarder* ScAccessibleHeaderTextData::GetTextForwarder()
         //  -> use global pool from module
 
         SfxItemSet aDefaults( pHdrEngine->GetEmptyItemSet() );
-        const ScPatternAttr& rPattern = static_cast<const ScPatternAttr&>(SC_MOD()->GetPool().GetDefaultItem(ATTR_PATTERN));
+        const ScPatternAttr& rPattern = SC_MOD()->GetPool().GetDefaultItem(ATTR_PATTERN);
         rPattern.FillEditItemSet( &aDefaults );
         //  FillEditItemSet adjusts font height to 1/100th mm,
         //  but for header/footer twips is needed, as in the PatternAttr:
diff --git a/sc/source/ui/app/transobj.cxx b/sc/source/ui/app/transobj.cxx
index e2e57ed657b6..fdbf874ceb66 100644
--- a/sc/source/ui/app/transobj.cxx
+++ b/sc/source/ui/app/transobj.cxx
@@ -724,7 +724,7 @@ void ScTransferObj::InitDocShell(bool bLimitToPageSize)
         if (pStyleSheet)
         {
             const SfxItemSet& rSourceSet = pStyleSheet->GetItemSet();
-            aPaperSize = static_cast<const SvxSizeItem&>( rSourceSet.Get(ATTR_PAGE_SIZE)).GetSize();
+            aPaperSize = rSourceSet.Get(ATTR_PAGE_SIZE).GetSize();
 
             // CopyStyleFrom copies SetItems with correct pool
             ScStyleSheetPool* pDestPool = rDestDoc.GetStyleSheetPool();
diff --git a/sc/source/ui/cctrl/dpcontrol.cxx b/sc/source/ui/cctrl/dpcontrol.cxx
index 3fdba111c780..e1fabdb3540c 100644
--- a/sc/source/ui/cctrl/dpcontrol.cxx
+++ b/sc/source/ui/cctrl/dpcontrol.cxx
@@ -121,7 +121,7 @@ void ScDPFieldButton::draw()
         {
             //  use ScPatternAttr::GetFont only for font size
             vcl::Font aAttrFont;
-            static_cast<const ScPatternAttr&>(mpDoc->GetPool()->GetDefaultItem(ATTR_PATTERN)).
+            mpDoc->GetPool()->GetDefaultItem(ATTR_PATTERN).
                 GetFont( aAttrFont, SC_AUTOCOL_BLACK, mpOutDev, &maZoomY );
             aTextFont.SetFontSize( aAttrFont.GetFontSize() );
         }
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index b2cdf855982c..35f174613450 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -369,8 +369,7 @@ void ScDocShell::CalcOutputFactor()
             "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567890123456789");
     long nPrinterWidth = 0;
     long nWindowWidth = 0;
-    const ScPatternAttr* pPattern = static_cast<const ScPatternAttr*>(&aDocument.GetPool()->
-                                            GetDefaultItem(ATTR_PATTERN));
+    const ScPatternAttr* pPattern = &aDocument.GetPool()->GetDefaultItem(ATTR_PATTERN);
 
     vcl::Font aDefFont;
     OutputDevice* pRefDev = GetRefDevice();
@@ -537,7 +536,7 @@ sal_uInt16 ScDocShell::SetPrinter( VclPtr<SfxPrinter> const & pNewPrinter, SfxPr
 
             if (nDiffFlags & SfxPrinterChangeFlags::CHG_ORIENTATION)
             {
-                const SvxPageItem& rOldItem = static_cast<const SvxPageItem&>(rSet.Get(ATTR_PAGE));
+                const SvxPageItem& rOldItem = rSet.Get(ATTR_PAGE);
                 bool bWasLand = rOldItem.IsLandscape();
                 bool bNewLand = ( pNewPrinter->GetOrientation() == Orientation::Landscape );
                 if (bNewLand != bWasLand)
@@ -547,7 +546,7 @@ sal_uInt16 ScDocShell::SetPrinter( VclPtr<SfxPrinter> const & pNewPrinter, SfxPr
                     rSet.Put( aNewItem );
 
                     // flip size
-                    Size aOldSize = static_cast<const SvxSizeItem&>(rSet.Get(ATTR_PAGE_SIZE)).GetSize();
+                    Size aOldSize = rSet.Get(ATTR_PAGE_SIZE).GetSize();
                     Size aNewSize(aOldSize.Height(),aOldSize.Width());
                     SvxSizeItem aNewSItem(ATTR_PAGE_SIZE,aNewSize);
                     rSet.Put( aNewSItem );
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 60beffb4bfff..f70909e4e24e 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -1483,8 +1483,8 @@ void ScDocShell::SetPrintZoom( SCTAB nTab, sal_uInt16 nScale, sal_uInt16 nPages
         const bool bUndo(aDocument.IsUndoEnabled());
         if (bUndo)
         {
-            sal_uInt16 nOldScale = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_SCALE)).GetValue();
-            sal_uInt16 nOldPages = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_SCALETOPAGES)).GetValue();
+            sal_uInt16 nOldScale = rSet.Get(ATTR_PAGE_SCALE).GetValue();
+            sal_uInt16 nOldPages = rSet.Get(ATTR_PAGE_SCALETOPAGES).GetValue();
             GetUndoManager()->AddUndoAction( new ScUndoPrintZoom(
                             this, nTab, nOldScale, nOldPages, nScale, nPages ) );
         }
@@ -1514,9 +1514,9 @@ bool ScDocShell::AdjustPrintZoom( const ScRange& rRange )
     if ( pStyleSheet )
     {
         SfxItemSet& rSet = pStyleSheet->GetItemSet();
-        bool bHeaders = static_cast<const SfxBoolItem&>(rSet.Get(ATTR_PAGE_HEADERS)).GetValue();
-        sal_uInt16 nOldScale = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_SCALE)).GetValue();
-        sal_uInt16 nOldPages = static_cast<const SfxUInt16Item&>(rSet.Get(ATTR_PAGE_SCALETOPAGES)).GetValue();
+        bool bHeaders = rSet.Get(ATTR_PAGE_HEADERS).GetValue();
+        sal_uInt16 nOldScale = rSet.Get(ATTR_PAGE_SCALE).GetValue();
+        sal_uInt16 nOldPages = rSet.Get(ATTR_PAGE_SCALETOPAGES).GetValue();
         const ScRange* pRepeatCol = aDocument.GetRepeatColRange( nTab );
         const ScRange* pRepeatRow = aDocument.GetRepeatRowRange( nTab );
 
@@ -1719,21 +1719,17 @@ void ScDocShell::ExecutePageStyle( const SfxViewShell& rCaller,
                     {
                         SfxItemSet&  rStyleSet = pStyleSheet->GetItemSet();
 
-                        SvxPageUsage eUsage = static_cast<const SvxPageItem&>(
-                                                  rStyleSet.Get( ATTR_PAGE )).
-                                                      GetPageUsage();
-                        bool bShareHeader = static_cast<const SfxBoolItem&>(
-                                                static_cast<const SvxSetItem&>(rStyleSet
-                                                        .Get(ATTR_PAGE_HEADERSET))
+                        SvxPageUsage eUsage = rStyleSet.Get( ATTR_PAGE ).GetPageUsage();
+                        bool bShareHeader = rStyleSet
+                                                    .Get(ATTR_PAGE_HEADERSET)
                                                     .GetItemSet()
-                                                    .Get(ATTR_PAGE_SHARED))
-                                                .GetValue();
-                        bool bShareFooter = static_cast<const SfxBoolItem&>(
-                                                static_cast<const SvxSetItem&>(rStyleSet
-                                                        .Get(ATTR_PAGE_FOOTERSET))
+                                                    .Get(ATTR_PAGE_SHARED)
+                                                    .GetValue();
+                        bool bShareFooter = rStyleSet
+                                                    .Get(ATTR_PAGE_FOOTERSET)
                                                     .GetItemSet()
-                                                    .Get(ATTR_PAGE_SHARED))
-                                                .GetValue();
+                                                    .Get(ATTR_PAGE_SHARED)
+                                                    .GetValue();
                         sal_uInt16 nResId = 0;
 
                         switch ( eUsage )
@@ -2185,13 +2181,13 @@ void ScDocShell::GetPageOnFromPageStyleSet( const SfxItemSet* pStyleSet,
     const SvxSetItem*   pSetItem = nullptr;
     const SfxItemSet*   pSet     = nullptr;
 
-    pSetItem = static_cast<const SvxSetItem*>( &pStyleSet->Get( ATTR_PAGE_HEADERSET ) );
+    pSetItem = &pStyleSet->Get( ATTR_PAGE_HEADERSET );
     pSet     = &pSetItem->GetItemSet();
-    rbHeader = static_cast<const SfxBoolItem&>(pSet->Get(ATTR_PAGE_ON)).GetValue();
+    rbHeader = pSet->Get(ATTR_PAGE_ON).GetValue();
 
-    pSetItem = static_cast<const SvxSetItem*>( &pStyleSet->Get( ATTR_PAGE_FOOTERSET ) );
+    pSetItem = &pStyleSet->Get( ATTR_PAGE_FOOTERSET );
     pSet     = &pSetItem->GetItemSet();
-    rbFooter = static_cast<const SfxBoolItem&>(pSet->Get(ATTR_PAGE_ON)).GetValue();
+    rbFooter = pSet->Get(ATTR_PAGE_ON).GetValue();
 }
 
 #if defined(_WIN32)
diff --git a/sc/source/ui/pagedlg/hfedtdlg.cxx b/sc/source/ui/pagedlg/hfedtdlg.cxx
index 76a8be272ee4..df9683bc2363 100644
--- a/sc/source/ui/pagedlg/hfedtdlg.cxx
+++ b/sc/source/ui/pagedlg/hfedtdlg.cxx
@@ -28,26 +28,13 @@
 #include <scresid.hxx>
 #include <scuitphfedit.hxx>
 
-//  macros from docsh4.cxx
-//! use SIDs?
-
-#define IS_SHARE_HEADER(set) \
-    static_cast<const SfxBoolItem&>( \
-        static_cast<const SvxSetItem&>((set).Get(ATTR_PAGE_HEADERSET)).GetItemSet(). \
-            Get(ATTR_PAGE_SHARED)).GetValue()
-
-#define IS_SHARE_FOOTER(set) \
-    static_cast<const SfxBoolItem&>( \
-        static_cast<const SvxSetItem&>((set).Get(ATTR_PAGE_FOOTERSET)).GetItemSet(). \
-            Get(ATTR_PAGE_SHARED)).GetValue()
-
 ScHFEditDlg::ScHFEditDlg( vcl::Window*           pParent,
                           const SfxItemSet& rCoreSet,
                           const OUString&   rPageStyle,
                           const OUString& rID, const OUString& rUIXMLDescription )
     :   SfxTabDialog( pParent, rID, rUIXMLDescription, &rCoreSet )
 {
-    eNumType = static_cast<const SvxPageItem&>(rCoreSet.Get(ATTR_PAGE)).GetNumType();
+    eNumType = rCoreSet.Get(ATTR_PAGE).GetNumType();
 
     OUString aTmp = GetText();
 
@@ -177,13 +164,15 @@ ScHFEditActiveDlg::ScHFEditActiveDlg(
     {
         //  #69193a# respect "shared" setting
 
-        bool bShareHeader = IS_SHARE_HEADER(rCoreSet);
+        bool bShareHeader = rCoreSet.Get(ATTR_PAGE_HEADERSET).GetItemSet().
+                                Get(ATTR_PAGE_SHARED).GetValue();
         if ( bShareHeader )
             AddTabPage( "header", ScRightHeaderEditPage::Create, nullptr );
         else
             AddTabPage( "header", ScLeftHeaderEditPage::Create, nullptr );
 
-        bool bShareFooter = IS_SHARE_FOOTER(rCoreSet);
+        bool bShareFooter = rCoreSet.Get(ATTR_PAGE_FOOTERSET).GetItemSet().
+                                Get(ATTR_PAGE_SHARED).GetValue();
         if ( bShareFooter )
             AddTabPage( "footer", ScRightFooterEditPage::Create, nullptr );
         else
diff --git a/sc/source/ui/pagedlg/tphf.cxx b/sc/source/ui/pagedlg/tphf.cxx
index a94cca63e746..5a810ac498e3 100644
--- a/sc/source/ui/pagedlg/tphf.cxx
+++ b/sc/source/ui/pagedlg/tphf.cxx
@@ -25,6 +25,7 @@
 #include <vcl/svapp.hxx>
 #include <vcl/msgbox.hxx>
 
+#include <attrib.hxx>
 #include <tphf.hxx>
 #include <sc.hrc>
 #include <scabstdlg.hxx>
@@ -222,7 +223,7 @@ IMPL_LINK_NOARG(ScHFPage, HFEditHdl, void*, void)
                 pDlg->SetTabPage( ScLeftFooterEditPage::Create( pDlg->get_content_area(), &aDataSet ), nSettingsId );
         }
 
-        SvxNumType eNumType = static_cast<const SvxPageItem&>(aDataSet.Get(ATTR_PAGE)).GetNumType();
+        SvxNumType eNumType = aDataSet.Get(ATTR_PAGE).GetNumType();
         static_cast<ScHFEditPage*>(pDlg->GetTabPage())->SetNumType(eNumType);
 
         aText += " (" + ScGlobal::GetRscString( STR_PAGESTYLE );
diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx
index 5c10cd3282aa..becde96c8018 100644
--- a/sc/source/ui/undo/undocell.cxx
+++ b/sc/source/ui/undo/undocell.cxx
@@ -22,10 +22,12 @@
 #include <scitems.hxx>
 #include <editeng/eeitem.hxx>
 #include <editeng/editobj.hxx>
+#include <editeng/justifyitem.hxx>
 #include <svl/zforlist.hxx>
 #include <svl/sharedstringpool.hxx>
 #include <sfx2/app.hxx>
 
+#include <attrib.hxx>
 #include <document.hxx>
 #include <docpool.hxx>
 #include <patattr.hxx>
diff --git a/sc/source/ui/unoobj/afmtuno.cxx b/sc/source/ui/unoobj/afmtuno.cxx
index 007da41edc94..a6f8df946c86 100644
--- a/sc/source/ui/unoobj/afmtuno.cxx
+++ b/sc/source/ui/unoobj/afmtuno.cxx
@@ -20,6 +20,7 @@
 #include <scitems.hxx>
 #include <editeng/memberids.h>
 #include <svl/poolitem.hxx>
+#include <svl/eitem.hxx>
 #include <vcl/svapp.hxx>
 #include <svx/unomid.hxx>
 #include <unowids.hxx>
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 1c948adbdd28..a44dc4ae781d 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -2146,8 +2146,8 @@ static void lcl_SetCellProperty( const SfxItemPropertySimpleEntry& rEntry, const
             {
                 // language for number formats
                 SvNumberFormatter* pFormatter = rDoc.GetFormatTable();
-                sal_uLong nOldFormat = static_cast<const SfxUInt32Item&>(rSet.Get( ATTR_VALUE_FORMAT )).GetValue();
-                LanguageType eOldLang = static_cast<const SvxLanguageItem&>(rSet.Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
+                sal_uLong nOldFormat = rSet.Get( ATTR_VALUE_FORMAT ).GetValue();
+                LanguageType eOldLang = rSet.Get( ATTR_LANGUAGE_FORMAT ).GetLanguage();
                 nOldFormat = pFormatter->GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
 
                 sal_Int32 nIntVal = 0;
@@ -2486,10 +2486,10 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
                         {
                             ScDocument& rDoc = pDocShell->GetDocument();
 
-                            sal_uLong nOldFormat = static_cast<const SfxUInt32Item&>(
-                                    pDataSet->Get( ATTR_VALUE_FORMAT )).GetValue();
-                            LanguageType eOldLang = static_cast<const SvxLanguageItem&>(
-                                    pDataSet->Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
+                            sal_uLong nOldFormat =
+                                    pDataSet->Get( ATTR_VALUE_FORMAT ).GetValue();
+                            LanguageType eOldLang =
+                                    pDataSet->Get( ATTR_LANGUAGE_FORMAT ).GetLanguage();
                             nOldFormat = rDoc.GetFormatTable()->
                                     GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
                             rAny <<= (sal_Int32)nOldFormat;
@@ -2501,7 +2501,7 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE
                         break;
                     case ATTR_STACKED:
                         {
-                            sal_Int32 nRot = static_cast<const SfxInt32Item&>(pDataSet->Get(ATTR_ROTATE_VALUE)).GetValue();
+                            sal_Int32 nRot = pDataSet->Get(ATTR_ROTATE_VALUE).GetValue();
                             bool bStacked = static_cast<const SfxBoolItem&>(pDataSet->Get(pEntry->nWID)).GetValue();
                             SvxOrientationItem( nRot, bStacked, 0 ).QueryValue( rAny );
                         }
diff --git a/sc/source/ui/unoobj/defltuno.cxx b/sc/source/ui/unoobj/defltuno.cxx
index 2705ce07baa6..a8b70f9e9455 100644
--- a/sc/source/ui/unoobj/defltuno.cxx
+++ b/sc/source/ui/unoobj/defltuno.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <editeng/memberids.h>
+#include <editeng/langitem.hxx>
 #include <svl/hint.hxx>
 #include <svl/itemprop.hxx>
 #include <svx/unomid.hxx>
diff --git a/sc/source/ui/unoobj/styleuno.cxx b/sc/source/ui/unoobj/styleuno.cxx
index 3f52656351cc..3cbecb95c7d4 100644
--- a/sc/source/ui/unoobj/styleuno.cxx
+++ b/sc/source/ui/unoobj/styleuno.cxx
@@ -21,14 +21,20 @@
 #include <editeng/memberids.h>
 #include <svx/algitem.hxx>
 #include <editeng/boxitem.hxx>
+#include <editeng/justifyitem.hxx>
 #include <editeng/langitem.hxx>
+#include <editeng/lineitem.hxx>
 #include <editeng/numitem.hxx>
+#include <editeng/shaditem.hxx>
+#include <editeng/sizeitem.hxx>
 #include <svx/pageitem.hxx>
 #include <editeng/pbinitem.hxx>
 #include <svx/unomid.hxx>
 #include <editeng/unonrule.hxx>
 #include <sfx2/bindings.hxx>
 #include <sfx2/printer.hxx>
+#include <svx/rotmodit.hxx>
+#include <svl/stritem.hxx>
 #include <vcl/virdev.hxx>
 #include <vcl/svapp.hxx>
 #include <svl/itempool.hxx>
@@ -1137,13 +1143,13 @@ const SfxItemSet* ScStyleObj::GetStyleItemSet_Impl( const OUString& rPropName,
             if ( pEntry )     // only item-WIDs in header/footer map
             {
                 rpResultEntry = pEntry;
-                return &static_cast<const SvxSetItem&>(pStyle->GetItemSet().Get(ATTR_PAGE_HEADERSET)).GetItemSet();
+                return &pStyle->GetItemSet().Get(ATTR_PAGE_HEADERSET).GetItemSet();
             }
             pEntry = lcl_GetFooterStyleMap()->getByName( rPropName );
             if ( pEntry )      // only item-WIDs in header/footer map
             {
                 rpResultEntry = pEntry;
-                return &static_cast<const SvxSetItem&>(pStyle->GetItemSet().Get(ATTR_PAGE_FOOTERSET)).GetItemSet();
+                return &pStyle->GetItemSet().Get(ATTR_PAGE_FOOTERSET).GetItemSet();
             }
         }
         pEntry = pPropSet->getPropertyMap().getByName( rPropName );
@@ -1490,7 +1496,7 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
                 const SfxItemPropertySimpleEntry* pHeaderEntry = lcl_GetHeaderStyleMap()->getByName( rPropertyName );
                 if ( pHeaderEntry ) // only item-WIDs in header/footer map
                 {
-                    SvxSetItem aNewHeader( static_cast<const SvxSetItem&>(rSet.Get(ATTR_PAGE_HEADERSET)) );
+                    SvxSetItem aNewHeader( rSet.Get(ATTR_PAGE_HEADERSET) );
                     if (pValue)
                         pPropSet->setPropertyValue( *pHeaderEntry, *pValue, aNewHeader.GetItemSet() );
                     else
@@ -1504,7 +1510,7 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
                 const SfxItemPropertySimpleEntry* pFooterEntry = lcl_GetFooterStyleMap()->getByName( rPropertyName );
                 if ( pFooterEntry ) // only item-WIDs in header/footer map
                 {
-                    SvxSetItem aNewFooter( static_cast<const SvxSetItem&>(rSet.Get(ATTR_PAGE_FOOTERSET)) );
+                    SvxSetItem aNewFooter( rSet.Get(ATTR_PAGE_FOOTERSET) );
                     if (pValue)
                         pPropSet->setPropertyValue( *pFooterEntry, *pValue, aNewFooter.GetItemSet() );
                     else
@@ -1529,10 +1535,10 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
                                     // language for number formats
                                     SvNumberFormatter* pFormatter =
                                             pDocShell->GetDocument().GetFormatTable();
-                                    sal_uInt32 nOldFormat = static_cast<const SfxUInt32Item&>(
-                                            rSet.Get( ATTR_VALUE_FORMAT )).GetValue();
-                                    LanguageType eOldLang = static_cast<const SvxLanguageItem&>(
-                                            rSet.Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
+                                    sal_uInt32 nOldFormat =
+                                            rSet.Get( ATTR_VALUE_FORMAT ).GetValue();
+                                    LanguageType eOldLang =
+                                            rSet.Get( ATTR_LANGUAGE_FORMAT ).GetLanguage();
                                     pFormatter->GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
 
                                     sal_uInt32 nNewFormat = 0;
@@ -1664,7 +1670,7 @@ void ScStyleObj::setPropertyValue_Impl( const OUString& rPropertyName, const Sfx
                                     sal_Int16 nPages = 0;
                                     if (*pValue >>= nPages)
                                     {
-                                        ScPageScaleToItem aItem = static_cast<const ScPageScaleToItem&>(rSet.Get(ATTR_PAGE_SCALETO));
+                                        ScPageScaleToItem aItem = rSet.Get(ATTR_PAGE_SCALETO);
                                         if ( rPropertyName == SC_UNO_PAGE_SCALETOX )
                                             aItem.SetWidth(static_cast<sal_uInt16>(nPages));
                                         else
@@ -1806,10 +1812,10 @@ uno::Any ScStyleObj::getPropertyValue_Impl( const OUString& aPropertyName )
                     case ATTR_VALUE_FORMAT:
                         if ( pDocShell )
                         {
-                            sal_uInt32 nOldFormat = static_cast<const SfxUInt32Item&>(
-                                    pItemSet->Get( ATTR_VALUE_FORMAT )).GetValue();
-                            LanguageType eOldLang = static_cast<const SvxLanguageItem&>(
-                                    pItemSet->Get( ATTR_LANGUAGE_FORMAT )).GetLanguage();
+                            sal_uInt32 nOldFormat =
+                                    pItemSet->Get( ATTR_VALUE_FORMAT ).GetValue();
+                            LanguageType eOldLang =
+                                    pItemSet->Get( ATTR_LANGUAGE_FORMAT ).GetLanguage();
                             nOldFormat = pDocShell->GetDocument().GetFormatTable()->
                                     GetFormatForLanguageIfBuiltIn( nOldFormat, eOldLang );
                             aAny <<= nOldFormat;
@@ -1821,7 +1827,7 @@ uno::Any ScStyleObj::getPropertyValue_Impl( const OUString& aPropertyName )
                         break;
                     case ATTR_STACKED:
                         {
-                            sal_Int32 nRot = static_cast<const SfxInt32Item&>(pItemSet->Get(ATTR_ROTATE_VALUE)).GetValue();
+                            sal_Int32 nRot = pItemSet->Get(ATTR_ROTATE_VALUE).GetValue();
                             bool bStacked = static_cast<const SfxBoolItem&>(pItemSet->Get(nWhich)).GetValue();
                             SvxOrientationItem( nRot, bStacked, 0 ).QueryValue( aAny );
                         }
@@ -1856,7 +1862,7 @@ uno::Any ScStyleObj::getPropertyValue_Impl( const OUString& aPropertyName )
                         break;
                     case ATTR_PAGE_SCALETO:
                         {
-                            ScPageScaleToItem aItem(static_cast<const ScPageScaleToItem&>(pItemSet->Get(ATTR_PAGE_SCALETO)));
+                            ScPageScaleToItem aItem(pItemSet->Get(ATTR_PAGE_SCALETO));
                             if ( aPropertyName == SC_UNO_PAGE_SCALETOX )
                                 aAny <<= static_cast<sal_Int16>(aItem.GetWidth());
                             else
diff --git a/sc/source/ui/unoobj/textuno.cxx b/sc/source/ui/unoobj/textuno.cxx
index 3801904f4a5b..3f7787d7d736 100644
--- a/sc/source/ui/unoobj/textuno.cxx
+++ b/sc/source/ui/unoobj/textuno.cxx
@@ -219,7 +219,7 @@ SvxTextForwarder* ScHeaderFooterTextData::GetTextForwarder()
         //  -> use global pool from module
 
         SfxItemSet aDefaults( pHdrEngine->GetEmptyItemSet() );
-        const ScPatternAttr& rPattern = static_cast<const ScPatternAttr&>(SC_MOD()->GetPool().GetDefaultItem(ATTR_PATTERN));
+        const ScPatternAttr& rPattern = SC_MOD()->GetPool().GetDefaultItem(ATTR_PATTERN);
         rPattern.FillEditItemSet( &aDefaults );
         //  FillEditItemSet adjusts font height to 1/100th mm,
         //  but for header/footer twips is needed, as in the PatternAttr:
diff --git a/sc/source/ui/vba/vbaformat.cxx b/sc/source/ui/vba/vbaformat.cxx
index 6ad20222c8bb..941c840d1e94 100644
--- a/sc/source/ui/vba/vbaformat.cxx
+++ b/sc/source/ui/vba/vbaformat.cxx
@@ -565,7 +565,7 @@ ScVbaFormat< Ifc... >::getLocked(  )
             SfxItemSet* pDataSet = getCurrentDataSet();
             if ( pDataSet )
             {
-                const ScProtectionAttr& rProtAttr = static_cast<const ScProtectionAttr &>( pDataSet->Get(ATTR_PROTECTION) );
+                const ScProtectionAttr& rProtAttr = pDataSet->Get(ATTR_PROTECTION);
                 SfxItemState eState = pDataSet->GetItemState(ATTR_PROTECTION);
                 if(eState != SfxItemState::DONTCARE)
                     aCellProtection <<= rProtAttr.GetProtection();
@@ -598,7 +598,7 @@ ScVbaFormat< Ifc... >::getFormulaHidden(  )
             SfxItemSet* pDataSet = getCurrentDataSet();
             if ( pDataSet )
             {
-                const ScProtectionAttr& rProtAttr = static_cast<const ScProtectionAttr &>( pDataSet->Get(ATTR_PROTECTION) );
+                const ScProtectionAttr& rProtAttr = pDataSet->Get(ATTR_PROTECTION);
                 SfxItemState eState = pDataSet->GetItemState(ATTR_PROTECTION);
                 if(eState != SfxItemState::DONTCARE)
                     aBoolRet <<= rProtAttr.GetHideFormula();
diff --git a/sc/source/ui/view/formatsh.cxx b/sc/source/ui/view/formatsh.cxx
index 70c459a6d286..26c5033fec39 100644
--- a/sc/source/ui/view/formatsh.cxx
+++ b/sc/source/ui/view/formatsh.cxx
@@ -805,8 +805,7 @@ void ScFormatShell::ExecuteStyle( SfxRequest& rReq )
                                 sal_uLong nFormat =
                                     static_cast<const SfxUInt32Item*>(pItem)->GetValue();
                                 LanguageType eLang =
-                                    static_cast<const SvxLanguageItem*>(&rSet.Get(
-                                    ATTR_LANGUAGE_FORMAT ))->GetLanguage();
+                                    rSet.Get(ATTR_LANGUAGE_FORMAT ).GetLanguage();
                                 sal_uLong nLangFormat = rDoc.GetFormatTable()->
                                     GetFormatForLanguageIfBuiltIn( nFormat, eLang );
                                 if ( nLangFormat != nFormat )
@@ -889,10 +888,8 @@ void ScFormatShell::ExecuteStyle( SfxRequest& rReq )
                             for (SCTAB nTab=0; nTab<nTabCount; nTab++)
                                 rDoc.SetStreamValid(nTab, false);
 
-                            sal_uLong nOldFormat = static_cast<const SfxUInt32Item&>(aOldSet.
-                                                    Get( ATTR_VALUE_FORMAT )).GetValue();
-                            sal_uLong nNewFormat = static_cast<const SfxUInt32Item&>(rNewSet.
-                                                    Get( ATTR_VALUE_FORMAT )).GetValue();
+                            sal_uLong nOldFormat = aOldSet.Get( ATTR_VALUE_FORMAT ).GetValue();

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list