<html>
    <head>
      <base href="https://bugs.documentfoundation.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - FILEOPEN: OOXML Workbook file hangs when opening"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=79049#c18">Comment # 18</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - FILEOPEN: OOXML Workbook file hangs when opening"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=79049">bug 79049</a>
              from <span class="vcard"><a class="email" href="mailto:serval2412@yahoo.fr" title="Julien Nabet <serval2412@yahoo.fr>"> <span class="fn">Julien Nabet</span></a>
</span></b>
        <pre>Following my comment from 2015, there's indeed something very slow in
sc/source/filter/oox/sheetdatabuffer.cxx:

Indeed, with this patch, I don't reproduce the hang (it's still not very quick
to open):
diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx
b/sc/source/filter/oox/sheetdatabuffer.cxx
index de1d2c76f3c9..65db163e55bc 100644
--- a/sc/source/filter/oox/sheetdatabuffer.cxx
+++ b/sc/source/filter/oox/sheetdatabuffer.cxx
@@ -321,7 +321,7 @@ void SheetDataBuffer::setMergedRange( const ScRange& rRange
)
 }

 typedef std::pair<sal_Int32, sal_Int32> FormatKeyPair;
-
+/*
 static void addIfNotInMyMap( const StylesBuffer& rStyles, std::map<
FormatKeyPair, ScRangeList >& rMap, sal_Int32 nXfId, sal_Int32 nFormatId, const
ScRangeList& rRangeList )
 {
     Xf* pXf1 = rStyles.getCellXf( nXfId ).get();
@@ -345,6 +345,7 @@ static void addIfNotInMyMap( const StylesBuffer& rStyles,
std::map< FormatKeyPai
     }
     rMap[ FormatKeyPair( nXfId, nFormatId ) ] = rRangeList;
 }
+*/

 void SheetDataBuffer::addColXfStyle( sal_Int32 nXfId, sal_Int32 nFormatId,
const ScRange& rAddress, bool bProcessRowRange )
 {
@@ -413,7 +414,7 @@ void SheetDataBuffer::finalizeImport()

     // write default formatting of remaining row range
     maXfIdRowRangeList[ maXfIdRowRange.mnXfId ].push_back(
maXfIdRowRange.maRowRange );
-
+/*
     std::map< FormatKeyPair, ScRangeList > rangeStyleListMap;
     for( const auto& [rFormatKeyPair, rRangeList] : maXfIdRangeLists )
     {
@@ -493,7 +494,7 @@ void SheetDataBuffer::finalizeImport()

         rDocImport.setAttrEntries(getSheetIndex(), nScCol,
std::move(aAttrParam));
     }
-
+*/
     // merge all cached merged ranges and update right/bottom cell borders
     for( const auto& rMergedRange : maMergedRanges )
         applyCellMerging( rMergedRange.maRange );</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>