summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorLászló Németh <nemeth@numbertext.org>2019-02-12 15:14:01 +0100
committerLászló Németh <nemeth@numbertext.org>2019-02-12 16:45:24 +0100
commitb3d88a0875efcbc3efcabeef743ff0dc4d8cf686 (patch)
tree2eaf225be0f732f4c8dcdb37ff701fa832b1793d /sw
parent052b5d375307245223e694bb835d86966c370d3b (diff)
tdf#122594 XLSX OLE in DOCX: export ActiveTable
(visible sheet) of an embedded spreadsheet, instead of exporting always the first sheet. Change-Id: I5c6f982b1b814a5f3830f08d247f4db3fdc3c384 Reviewed-on: https://gerrit.libreoffice.org/67733 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org>
Diffstat (limited to 'sw')
-rw-r--r--sw/qa/extras/ooxmlexport/data/tdf122594.docxbin0 -> 23235 bytes
-rw-r--r--sw/qa/extras/ooxmlexport/ooxmlexport12.cxx37
2 files changed, 37 insertions, 0 deletions
diff --git a/sw/qa/extras/ooxmlexport/data/tdf122594.docx b/sw/qa/extras/ooxmlexport/data/tdf122594.docx
new file mode 100644
index 000000000000..847d8ef590b5
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/tdf122594.docx
Binary files differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
index a91fe0c3b67b..7f485a1f2847 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport12.cxx
@@ -947,6 +947,43 @@ DECLARE_OOXMLEXPORT_TEST(testTdf122563, "tdf122563.docx")
"width:255.75pt;height:63.75pt");
}
+DECLARE_OOXMLEXPORT_TEST(testTdf122594, "tdf122594.docx")
+{
+ // test import/export of ActiveTable (visible sheet) of embedded XLSX OLE objects
+ uno::Reference<text::XTextEmbeddedObjectsSupplier> xEmbeddedObjectsSupplier(mxComponent,
+ uno::UNO_QUERY);
+ uno::Reference<container::XIndexAccess> xObjects(xEmbeddedObjectsSupplier->getEmbeddedObjects(),
+ uno::UNO_QUERY);
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xObjects->getCount());
+
+ uno::Reference<beans::XPropertySet> xSheets;
+ xObjects->getByIndex(0) >>= xSheets;
+
+ uno::Reference<frame::XModel> xModel;
+ xSheets->getPropertyValue("Model") >>= xModel;
+ uno::Reference<document::XViewDataSupplier> xViewDataSupplier(xModel, uno::UNO_QUERY);
+
+ uno::Reference<container::XIndexAccess> xIndexAccess(xViewDataSupplier->getViewData());
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), xIndexAccess->getCount());
+
+ uno::Sequence<beans::PropertyValue> aSeq;
+ if (xIndexAccess->getByIndex(0) >>= aSeq)
+ {
+ sal_Int32 nCount(aSeq.getLength());
+ for (sal_Int32 i = 0; i < nCount; ++i)
+ {
+ OUString sName(aSeq[i].Name);
+ if (sName == "ActiveTable")
+ {
+ OUString sTabName;
+ if (aSeq[i].Value >>= sTabName)
+ // Sheet2, not Sheet1
+ CPPUNIT_ASSERT_EQUAL(OUString("Munka2"), sTabName);
+ }
+ }
+ }
+}
+
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */