summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2019-04-25 15:30:49 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2019-04-25 20:09:39 +0200
commite056abae09796f2b3806e94e62cae7f0d262d4d5 (patch)
tree1fed30922ce404ee926066369dd2fa51469d4ac2
parent1e2682235cded9a7cd90e55f0bfc60a1285e9a46 (diff)
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>
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx15
-rw-r--r--sc/source/filter/excel/colrowst.cxx2
2 files changed, 16 insertions, 1 deletions
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 578ff72435d2..fa9abf92f4f1 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -248,6 +248,7 @@ public:
void testTdf62268();
void testVBAMacroFunctionODS();
void testAutoheight2Rows();
+ void testXLSDefColWidth();
CPPUNIT_TEST_SUITE(ScFiltersTest);
CPPUNIT_TEST(testBooleanFormatXLSX);
@@ -387,6 +388,7 @@ public:
CPPUNIT_TEST(testTdf62268);
CPPUNIT_TEST(testVBAMacroFunctionODS);
CPPUNIT_TEST(testAutoheight2Rows);
+ CPPUNIT_TEST(testXLSDefColWidth);
CPPUNIT_TEST_SUITE_END();
@@ -4269,6 +4271,19 @@ void ScFiltersTest::testAutoheight2Rows()
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 5640335f08b8..fb8e3e1c3836 100644
--- a/sc/source/filter/excel/colrowst.cxx
+++ b/sc/source/filter/excel/colrowst.cxx
@@ -184,7 +184,7 @@ void XclImpColRowSettings::Convert( SCTAB nScTab )
// 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))