summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/CppunitTest_sc_bugfix_test.mk4
-rw-r--r--sc/CppunitTest_sc_filters_test.mk4
-rw-r--r--sc/inc/document.hxx2
-rw-r--r--sc/qa/unit/data/xml/merged-cells.xml101
-rw-r--r--sc/qa/unit/helper/qahelper.cxx2
-rw-r--r--sc/qa/unit/helper/qahelper.hxx2
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx37
7 files changed, 141 insertions, 11 deletions
diff --git a/sc/CppunitTest_sc_bugfix_test.mk b/sc/CppunitTest_sc_bugfix_test.mk
index d14a9e1154da..7a5d5825d1d8 100644
--- a/sc/CppunitTest_sc_bugfix_test.mk
+++ b/sc/CppunitTest_sc_bugfix_test.mk
@@ -119,8 +119,4 @@ endif
$(eval $(call gb_CppunitTest_use_configuration,sc_bugfix_test))
-$(eval $(call gb_CppunitTest_use_packages,sc_bugfix_test,\
- filter_xslt \
-))
-
# vim: set noet sw=4 ts=4:
diff --git a/sc/CppunitTest_sc_filters_test.mk b/sc/CppunitTest_sc_filters_test.mk
index 3026f841504a..1f83822b107a 100644
--- a/sc/CppunitTest_sc_filters_test.mk
+++ b/sc/CppunitTest_sc_filters_test.mk
@@ -113,8 +113,4 @@ $(eval $(call gb_CppunitTest_use_components,sc_filters_test,\
$(eval $(call gb_CppunitTest_use_configuration,sc_filters_test))
-$(eval $(call gb_CppunitTest_use_packages,sc_filters_test,\
- filter_xslt \
-))
-
# vim: set noet sw=4 ts=4:
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 26d82e631683..c74e6789cf36 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1196,7 +1196,7 @@ public:
SCCOL& rEndCol, SCROW& rEndRow, SCTAB nTab,
bool bRefresh = false );
bool ExtendMerge( ScRange& rRange, bool bRefresh = false );
- void ExtendTotalMerge( ScRange& rRange ) const;
+ SC_DLLPUBLIC void ExtendTotalMerge( ScRange& rRange ) const;
SC_DLLPUBLIC void ExtendOverlapped( SCCOL& rStartCol, SCROW& rStartRow,
SCCOL nEndCol, SCROW nEndRow, SCTAB nTab ) const;
SC_DLLPUBLIC void ExtendOverlapped( ScRange& rRange ) const;
diff --git a/sc/qa/unit/data/xml/merged-cells.xml b/sc/qa/unit/data/xml/merged-cells.xml
new file mode 100644
index 000000000000..6bc69d55b165
--- /dev/null
+++ b/sc/qa/unit/data/xml/merged-cells.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0"?>
+<?mso-application progid="Excel.Sheet"?>
+<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:o="urn:schemas-microsoft-com:office:office"
+ xmlns:x="urn:schemas-microsoft-com:office:excel"
+ xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
+ xmlns:html="http://www.w3.org/TR/REC-html40">
+ <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
+ <Author>Kohei Yoshida</Author>
+ <LastAuthor>Kohei Yoshida</LastAuthor>
+ <Created>2016-12-15T03:48:24Z</Created>
+ <LastSaved>2016-12-15T03:54:21Z</LastSaved>
+ <Version>15.00</Version>
+ </DocumentProperties>
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+ <AllowPNG/>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+ <WindowHeight>14385</WindowHeight>
+ <WindowWidth>24000</WindowWidth>
+ <WindowTopX>0</WindowTopX>
+ <WindowTopY>0</WindowTopY>
+ <RefModeR1C1/>
+ <ProtectStructure>False</ProtectStructure>
+ <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <Styles>
+ <Style ss:ID="Default" ss:Name="Normal">
+ <Alignment ss:Vertical="Bottom"/>
+ <Borders/>
+ <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
+ <Interior/>
+ <NumberFormat/>
+ <Protection/>
+ </Style>
+ <Style ss:ID="s17">
+ <Interior ss:Color="#FCE4D6" ss:Pattern="Solid"/>
+ </Style>
+ <Style ss:ID="s22">
+ <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+ <Interior ss:Color="#EDEDED" ss:Pattern="Solid"/>
+ </Style>
+ <Style ss:ID="s23">
+ <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+ <Interior ss:Color="#FFF2CC" ss:Pattern="Solid"/>
+ </Style>
+ <Style ss:ID="s24">
+ <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+ <Interior ss:Color="#F8CBAD" ss:Pattern="Solid"/>
+ </Style>
+ <Style ss:ID="s25">
+ <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+ <Interior ss:Color="#F4B084" ss:Pattern="Solid"/>
+ </Style>
+ <Style ss:ID="s26">
+ <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/>
+ <Interior ss:Color="#FFFF00" ss:Pattern="Solid"/>
+ </Style>
+ </Styles>
+ <Worksheet ss:Name="Sheet1">
+ <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="6" x:FullColumns="1"
+ x:FullRows="1" ss:DefaultRowHeight="15">
+ <Row>
+ <Cell ss:StyleID="s17"><Data ss:Type="Number">1</Data></Cell>
+ <Cell ss:MergeAcross="1" ss:StyleID="s22"><Data ss:Type="Number">2</Data></Cell>
+ <Cell ss:MergeAcross="2" ss:StyleID="s23"><Data ss:Type="Number">3</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:MergeDown="1" ss:StyleID="s24"><Data ss:Type="Number">2</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:Index="3" ss:MergeAcross="3" ss:MergeDown="3" ss:StyleID="s26"><Data
+ ss:Type="String">merged cell</Data></Cell>
+ </Row>
+ <Row>
+ <Cell ss:MergeDown="2" ss:StyleID="s25"><Data ss:Type="Number">3</Data></Cell>
+ </Row>
+ </Table>
+ <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
+ <PageSetup>
+ <Header x:Margin="0.3"/>
+ <Footer x:Margin="0.3"/>
+ <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
+ </PageSetup>
+ <Print>
+ <ValidPrinterInfo/>
+ <VerticalResolution>0</VerticalResolution>
+ </Print>
+ <Selected/>
+ <Panes>
+ <Pane>
+ <Number>3</Number>
+ <ActiveRow>8</ActiveRow>
+ <ActiveCol>5</ActiveCol>
+ </Pane>
+ </Panes>
+ <ProtectObjects>False</ProtectObjects>
+ <ProtectScenarios>False</ProtectScenarios>
+ </WorksheetOptions>
+ </Worksheet>
+</Workbook>
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index bb260aa23080..90f37a89db56 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -78,7 +78,7 @@ const FileFormat ScBootstrapFixture::aFileFormats[] = {
{ "html" , "calc_HTML_WebQuery", "generic_HTML", HTML_FORMAT_TYPE },
{ "123" , "Lotus", "calc_Lotus", LOTUS123_FORMAT_TYPE },
{ "dif", "DIF", "calc_DIF", DIF_FORMAT_TYPE },
- { "xml", "MS Excel 2003 XML", "calc_MS_Excel_2003_XML", XLS_XML_FORMAT_TYPE },
+ { "xml", "MS Excel 2003 XML Orcus", "calc_MS_Excel_2003_XML", XLS_XML_FORMAT_TYPE },
{ "xlsb", "Calc MS Excel 2007 Binary", "MS Excel 2007 Binary", XLSB_XML_FORMAT_TYPE },
{ "fods", "OpenDocument Spreadsheet Flat XML", "calc_ODS_FlatXML", FODS_FORMAT_TYPE },
{ "gnumeric", "Gnumeric Spreadsheet", "Gnumeric XML", GNUMERIC_FORMAT_TYPE }
diff --git a/sc/qa/unit/helper/qahelper.hxx b/sc/qa/unit/helper/qahelper.hxx
index 92c91b37564f..69f1f7735791 100644
--- a/sc/qa/unit/helper/qahelper.hxx
+++ b/sc/qa/unit/helper/qahelper.hxx
@@ -50,7 +50,7 @@
#define CSV_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN )
#define HTML_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN )
#define DIF_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN )
-#define XLS_XML_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER)
+#define XLS_XML_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED)
#define XLSB_XML_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED)
#define FODS_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::OWN | SfxFilterFlags::STARONEFILTER )
#define GNUMERIC_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED )
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 24b93c5e6a8f..a38396ceb674 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -235,6 +235,8 @@ public:
void testUnicodeFileNameGnumeric();
#endif
+ void testMergedCellsXLSXML();
+
CPPUNIT_TEST_SUITE(ScFiltersTest);
CPPUNIT_TEST(testBooleanFormatXLSX);
CPPUNIT_TEST(testBasicCellContentODS);
@@ -356,6 +358,7 @@ public:
#ifdef UNX
CPPUNIT_TEST(testUnicodeFileNameGnumeric);
#endif
+ CPPUNIT_TEST(testMergedCellsXLSXML);
CPPUNIT_TEST_SUITE_END();
@@ -3498,6 +3501,40 @@ void ScFiltersTest::testUnicodeFileNameGnumeric()
}
#endif
+void ScFiltersTest::testMergedCellsXLSXML()
+{
+ ScDocShellRef xDocSh = loadDoc("merged-cells.", FORMAT_XLS_XML);
+ CPPUNIT_ASSERT_MESSAGE("Failed to load merged-cells.xml", xDocSh.is());
+ ScDocument& rDoc = xDocSh->GetDocument();
+
+ // B1:C1 is merged.
+ ScRange aMergedRange(1,0,0); // B1
+ rDoc.ExtendTotalMerge(aMergedRange);
+ CPPUNIT_ASSERT_EQUAL(ScRange(1,0,0,2,0,0), aMergedRange);
+
+ // D1:F1 is merged.
+ aMergedRange = ScRange(3,0,0); // D1
+ rDoc.ExtendTotalMerge(aMergedRange);
+ CPPUNIT_ASSERT_EQUAL(ScRange(3,0,0,5,0,0), aMergedRange);
+
+ // A2:A3 is merged.
+ aMergedRange = ScRange(0,1,0); // A2
+ rDoc.ExtendTotalMerge(aMergedRange);
+ CPPUNIT_ASSERT_EQUAL(ScRange(0,1,0,0,2,0), aMergedRange);
+
+ // A4:A6 is merged.
+ aMergedRange = ScRange(0,3,0); // A4
+ rDoc.ExtendTotalMerge(aMergedRange);
+ CPPUNIT_ASSERT_EQUAL(ScRange(0,3,0,0,5,0), aMergedRange);
+
+ // C3:F6 is merged.
+ aMergedRange = ScRange(2,2,0); // C3
+ rDoc.ExtendTotalMerge(aMergedRange);
+ CPPUNIT_ASSERT_EQUAL(ScRange(2,2,0,5,5,0), aMergedRange);
+
+ xDocSh->DoClose();
+}
+
void ScFiltersTest::testCondFormatXLSB()
{
ScDocShellRef xDocSh = loadDoc("cond_format.", FORMAT_XLSB);