tdf#50916: XLS: make sure to set default widths to all columns
See https://lists.freedesktop.org/archives/libreoffice/2019-April/082479.html
Ths partially reverts commit 1463625ae26900d2461fd72a5a2c894b9f1b8726
Change-Id: I36ec01c8d331d879143f60e12dc239158a8822ec
Reviewed-on: https://gerrit.libreoffice.org/71301
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 578ff72..fa9abf9 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -248,6 +248,7 @@
void testTdf62268();
void testVBAMacroFunctionODS();
void testAutoheight2Rows();
void testXLSDefColWidth();
CPPUNIT_TEST_SUITE(ScFiltersTest);
CPPUNIT_TEST(testBooleanFormatXLSX);
@@ -387,6 +388,7 @@
CPPUNIT_TEST(testTdf62268);
CPPUNIT_TEST(testVBAMacroFunctionODS);
CPPUNIT_TEST(testAutoheight2Rows);
CPPUNIT_TEST(testXLSDefColWidth);
CPPUNIT_TEST_SUITE_END();
@@ -4269,6 +4271,19 @@
xDocSh->DoClose();
}
void ScFiltersTest::testXLSDefColWidth()
{
// XLS has only 256 columns; but on import, we need to set default width to all above that limit
ScDocShellRef xDocSh = loadDoc("chartx.", FORMAT_XLS); // just some XLS with narrow columns
ScDocument& rDoc = xDocSh->GetDocument();
int nWidth = rDoc.GetColWidth(MAXCOL, 0, false);
// This was 1280
CPPUNIT_ASSERT_EQUAL(1005, nWidth);
xDocSh->DoClose();
}
ScFiltersTest::ScFiltersTest()
: ScBootstrapFixture( "sc/qa/unit/data" )
{
diff --git a/sc/source/filter/excel/colrowst.cxx b/sc/source/filter/excel/colrowst.cxx
index 5640335f..fb8e3e1 100644
--- a/sc/source/filter/excel/colrowst.cxx
+++ b/sc/source/filter/excel/colrowst.cxx
@@ -184,7 +184,7 @@
// column widths ----------------------------------------------------------
maColWidths.build_tree();
for( SCCOL nCol : rDoc.GetColumnsRange(nScTab, 0, MAXCOL) )
for (SCCOL nCol = 0; nCol <= MAXCOL; ++nCol)
{
sal_uInt16 nWidth = mnDefWidth;
if (GetColFlag(nCol, ExcColRowFlags::Used))