diff options
author | László Németh <nemeth@numbertext.org> | 2019-02-12 15:14:01 +0100 |
---|---|---|
committer | László Németh <nemeth@numbertext.org> | 2019-02-12 16:45:24 +0100 |
commit | b3d88a0875efcbc3efcabeef743ff0dc4d8cf686 (patch) | |
tree | 2eaf225be0f732f4c8dcdb37ff701fa832b1793d /sw | |
parent | 052b5d375307245223e694bb835d86966c370d3b (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.docx | bin | 0 -> 23235 bytes | |||
-rw-r--r-- | sw/qa/extras/ooxmlexport/ooxmlexport12.cxx | 37 |
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 Binary files differnew file mode 100644 index 000000000000..847d8ef590b5 --- /dev/null +++ b/sw/qa/extras/ooxmlexport/data/tdf122594.docx 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: */ |