sc/qa/unit/data/xls/shared-formula/horizontal.xls |binary sc/qa/unit/subsequent_filters-test.cxx | 45 ++++++++++++++++++++++ sc/source/filter/excel/excform.cxx | 2 3 files changed, 46 insertions(+), 1 deletion(-)
New commits: commit 16442998b8b6ac7e284ab2377013f36c28b2cb8c Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Feb 6 18:08:03 2014 -0500 fdo#74553: Use the shared formula column position Excel tells you... Because sometimes this may be correct. Change-Id: Id2c47bb4ad3f91b366a25306169de58bb38c1e81 diff --git a/sc/source/filter/excel/excform.cxx b/sc/source/filter/excel/excform.cxx index 6d925fb..cf44d3c 100644 --- a/sc/source/filter/excel/excform.cxx +++ b/sc/source/filter/excel/excform.cxx @@ -124,7 +124,7 @@ void ImportExcel::Formula( SCROW nSharedRow; if (pFormConv->ReadSharedFormulaPosition(maStrm, nSharedCol, nSharedRow)) { - ScAddress aRefPos(aScPos.Col(), nSharedRow, GetCurrScTab()); + ScAddress aRefPos(nSharedCol, nSharedRow, GetCurrScTab()); const ScTokenArray* pSharedCode = pFormConv->GetSharedFormula(aRefPos); if (pSharedCode) { commit 642d0c9abc30b5f9c06abe4d91b55fdf06427ce5 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Thu Feb 6 18:05:50 2014 -0500 fdo#74553: Write unit test for this. Change-Id: Ie33047dff35c7aa31aaed9ec6c8e1fe5f8f5b9d7 diff --git a/sc/qa/unit/data/xls/shared-formula/horizontal.xls b/sc/qa/unit/data/xls/shared-formula/horizontal.xls new file mode 100644 index 0000000..318379f Binary files /dev/null and b/sc/qa/unit/data/xls/shared-formula/horizontal.xls differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index 003fdd0..448a9fa 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -158,6 +158,8 @@ public: void testColumnStyleXLSX(); + void testSharedFormulaHorizontalXLS(); + CPPUNIT_TEST_SUITE(ScFiltersTest); CPPUNIT_TEST(testBasicCellContentODS); CPPUNIT_TEST(testRangeNameXLS); @@ -231,6 +233,7 @@ public: CPPUNIT_TEST(testPrintRangeODS); CPPUNIT_TEST(testOutlineODS); CPPUNIT_TEST(testColumnStyleXLSX); + CPPUNIT_TEST(testSharedFormulaHorizontalXLS); CPPUNIT_TEST_SUITE_END(); private: @@ -2443,6 +2446,48 @@ void ScFiltersTest::testColumnStyleXLSX() const ScProtectionAttr& rAttrNew = static_cast<const ScProtectionAttr&>(pPattern->GetItem(ATTR_PROTECTION)); CPPUNIT_ASSERT(!rAttrNew.GetProtection()); + + xDocSh->DoClose(); +} + +void ScFiltersTest::testSharedFormulaHorizontalXLS() +{ + ScDocShellRef xDocSh = loadDoc("shared-formula/horizontal.", XLS); + CPPUNIT_ASSERT(xDocSh.Is()); + ScDocument* pDoc = xDocSh->GetDocument(); + + // Make sure K2:S2 on the 2nd sheet are all formula cells. + ScAddress aPos(0, 1, 1); + for (SCCOL nCol = 10; nCol <= 18; ++nCol) + { + aPos.SetCol(nCol); + CPPUNIT_ASSERT_MESSAGE("Formula cell is expected here.", pDoc->GetCellType(aPos) == CELLTYPE_FORMULA); + } + + // Likewise, B3:J9 all should be formula cells. + for (SCCOL nCol = 1; nCol <= 9; ++nCol) + { + aPos.SetCol(nCol); + for (SCROW nRow = 2; nRow <= 8; ++nRow) + { + aPos.SetRow(nRow); + CPPUNIT_ASSERT_MESSAGE("Formula cell is expected here.", pDoc->GetCellType(aPos) == CELLTYPE_FORMULA); + } + } + + // B2:I2 too. + aPos.SetRow(1); + for (SCCOL nCol = 1; nCol <= 8; ++nCol) + { + aPos.SetCol(nCol); + CPPUNIT_ASSERT_MESSAGE("Formula cell is expected here.", pDoc->GetCellType(aPos) == CELLTYPE_FORMULA); + } + + // J2 has a string of "MW". + aPos.SetCol(9); + CPPUNIT_ASSERT_EQUAL(OUString("MW"), pDoc->GetString(aPos)); + + xDocSh->DoClose(); } ScFiltersTest::ScFiltersTest() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits