tdf#143940: the style index might be -1

Similar to 52aebe6986bcec07071adb3f94d6c09fea147044
< tdf#138466 Crash when creating different scenarios >

ExportColumns calls GetStyleNameIndex which might return -1
so check the index is different than -1 as it's already done
when calling ScFormatRangeStyles::GetStyleNameByIndex

Also move fix for tdf#138466 down the stack to be consistent

Debug builds will still assert, see coverity#1438402

Since 5e777f23fd0118f6649f0d9e30eb77a72f1099e4
< loplugin:useuniqueptr in ScColumnRowStylesBase >
where the nIndex < 0 check in
ScColumnRowStylesBase::GetStyleNameByIndex was removed

Change-Id: I084bfa04c39f37cb325c3b3df76801b3abdea994
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121128
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
(cherry picked from commit 7246759822aff30e4e4e1bca7949eae3b0d960ef)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121069
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
(cherry picked from commit 476ad4fe6f62e7b5880f70aa67bfba702fbdef4e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121288
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 6e6f60d7..3aeefa2 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -737,7 +737,9 @@
    const sal_Int32 nIndex, const bool bIsAutoStyle, const bool bIsVisible)
{
    CheckAttrList();
    AddAttribute(sAttrStyleName, pColumnStyles->GetStyleNameByIndex(nStyleIndex));
    // tdf#138466
    if (nStyleIndex != -1)
        AddAttribute(sAttrStyleName, pColumnStyles->GetStyleNameByIndex(nStyleIndex));
    if (!bIsVisible)
        AddAttribute(XML_NAMESPACE_TABLE, XML_VISIBILITY, XML_COLLAPSE);
    if (nRepeatColumns > 1)
@@ -870,9 +872,7 @@
            nColsRepeated = 1;
        }
    }
    // tdf#138466
    if (nPrevIndex != -1)
        WriteColumn(nPrevColumn, nColsRepeated, nPrevIndex, bPrevIsVisible);
    WriteColumn(nPrevColumn, nColsRepeated, nPrevIndex, bPrevIsVisible);
    if (!bIsClosed)
        CloseHeaderColumn();
    if (pGroupColumns->IsGroupEnd(nColumn - 1))
@@ -1351,7 +1351,9 @@
    const sal_Int32 nIndex, const sal_Int32 nEqualRows,
    bool bHidden, bool bFiltered)
{
    AddAttribute(sAttrStyleName, pRowStyles->GetStyleNameByIndex(nIndex));
    // tdf#143940
    if (nIndex != -1)
        AddAttribute(sAttrStyleName, pRowStyles->GetStyleNameByIndex(nIndex));
    if (bHidden)
    {
        if (bFiltered)