sc/source/filter/excel/xistyle.cxx | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-)
New commits: commit abb13e9c635aac37b56f294110b966be44120f1c Author: Kohei Yoshida <kohei.yosh...@suse.com> Date: Tue Oct 25 15:10:53 2011 -0400 fdo#41369: Use the 'Default' style as the parent style. Some buggy XLS documents such as those generated by 1C (app used in Russia) don't include built-in style definitions, and the cell formats in those docs are not associated with any style at all. Let's associate them with the 'Default' style in such cases. diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx index 9262940..f49b469 100644 --- a/sc/source/filter/excel/xistyle.cxx +++ b/sc/source/filter/excel/xistyle.cxx @@ -69,6 +69,7 @@ #include "root.hxx" #include "colrowst.hxx" #include "svl/poolcach.hxx" +#include "rsc/rscsfx.hxx" #include <list> @@ -1297,10 +1298,31 @@ void XclImpXF::ApplyPatternToAttrList( // insert into document ScDocument& rDoc = GetDoc(); - if (IsCellXF() && mpStyleSheet) + if (IsCellXF()) { - // Apply style sheet. Don't clear the direct formats. - rPat.SetStyleSheet(mpStyleSheet, false); + if (mpStyleSheet) + { + // Apply style sheet. Don't clear the direct formats. + rPat.SetStyleSheet(mpStyleSheet, false); + } + else + { + // When the cell format is not associated with any style, use the + // 'Default' style. Some buggy XLS docs generated by apps other + // than Excel (such as 1C) may not have any built-in styles at + // all. + ScStyleSheetPool* pStylePool = rDoc.GetStyleSheetPool(); + if (pStylePool) + { + ScStyleSheet* pStyleSheet = static_cast<ScStyleSheet*>( + pStylePool->Find( + ScGlobal::GetRscString(STR_STYLENAME_STANDARD), SFX_STYLE_FAMILY_PARA)); + + if (pStyleSheet) + rPat.SetStyleSheet(pStyleSheet, false); + } + + } } if (nForceScNumFmt != NUMBERFORMAT_ENTRY_NOT_FOUND) _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits