# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- # # This file is part of the LibreOffice project. # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # $(eval $(call gb_UIConfig_UIConfig,formula)) $(eval $(call gb_UIConfig_add_uifiles,formula,\ formula/uiconfig/ui/formuladialog \ formula/uiconfig/ui/functionpage \ formula/uiconfig/ui/structpage \ formula/uiconfig/ui/parameter \ )) # vim: set noet sw=4 ts=4: >
LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel/xetable.cxx
AgeCommit message (Collapse)Author
2024-11-25tdf#124741 export xlsx: no defaultRowHeight without customHeightJustin Luth
Apparently, the value of defaultRowHeight is just some nice kind of suggestion to Excel, since optimalRowHeight rows can be less than what is specified in defaultRowHeight. Since Calc always treats defaultRowHeight as authoritative, on export it needs to always export it that way. Apparently there are some TWIPS calculations going on because while Calc defaults to exporting a defaultRowHeight of 12.80, Excel is still round-tripping it as 12.75. make CppunitTest_sc_subsequent_export_test2 \ CPPUNIT_TEST_NAME=testTdf120168 (In this unit test, it originates as customHeight=1, but Calc was round-tripping it without that. Although the round-trip looked identical in Calc, in Excel the empty rows were now much shorter, being height-formatted according to the default font size.) Change-Id: I7ed6b612de0fa508a89dc4cf357b873de230962c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177276 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2024-10-19tdf#158460 xls/x export: don't force wrap-text for imported single-lineJustin Luth
Starting in LO 24.2, we started displaying imported XLS/X files that had contents-with-newlines on a single line if the cell did not have the wrap-text property - just like buggy Excel. So, now we need to round-trip that without setting wrap-text, so that we can continue to exhibit buggy behaviour (instead of fixing the document so that the newlines aren't ignored). A previous attempt to do this was reverted (for many reasons), significantly because it failed to handle the situation where a user entered new newline content (without forcing wrap-text). So in LO the new content DISPLAYS on multiple lines, but after a round-trip it was all squashed together. So it is important to keep the traditional behaviour of forcing wrap-text, and ONLY avoiding it when round-tripping imported content. It also preserves ODS -> XLS/X conversions. I also took the opportunity to rename mbWrapped. make CppunitTest_sc_subsequent_export_test3 \ CPPUNIT_TEST_NAME=testPreserveTextWhitespace2XLSX Change-Id: Ia35b0679946b51626fabd4043779c1b43cc1ae37 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174436 Reviewed-by: Justin Luth <jluth@mail.com> Tested-by: Jenkins
2024-10-03tdf#161453 tdf#158252 tdf#159690 Revert "sc: Fix wrapText ...Justin Luth
...not being applied correctly on export" This reverts 24.2 commit 1760ee4d328cfb6ba22a5b3c84016625b12adb25 which was presumably made for tdf#158460. There are two bug reports in QA statistics - Regressions with most dups that relate to the chain of commits started by this patch. So just revert everything and let any initial fixes start again fresh. make CppunitTest_sc_subsequent_export_test3 \ CPPUNIT_TEST_NAME=testCustomXml make CppunitTest_sc_subsequent_export_test4 \ CPPUNIT_TEST_NAME=testTdf152980 Change-Id: I3df533daa67dfec0080c99dcdc2f593b1b6da8f3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174401 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2024-07-20cid#1554791 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1554819 COPY_INSTEAD_OF_MOVE cid#1554837 COPY_INSTEAD_OF_MOVE cid#1554881 COPY_INSTEAD_OF_MOVE cid#1554882 COPY_INSTEAD_OF_MOVE cid#1554884 COPY_INSTEAD_OF_MOVE cid#1554891 COPY_INSTEAD_OF_MOVE cid#1554892 COPY_INSTEAD_OF_MOVE cid#1554897 COPY_INSTEAD_OF_MOVE cid#1554904 COPY_INSTEAD_OF_MOVE cid#1554918 COPY_INSTEAD_OF_MOVE cid#1554928 COPY_INSTEAD_OF_MOVE cid#1554931 COPY_INSTEAD_OF_MOVE cid#1554944 COPY_INSTEAD_OF_MOVE cid#1554945 COPY_INSTEAD_OF_MOVE cid#1554959 COPY_INSTEAD_OF_MOVE cid#1554960 COPY_INSTEAD_OF_MOVE cid#1554963 COPY_INSTEAD_OF_MOVE cid#1554966 COPY_INSTEAD_OF_MOVE cid#1554969 COPY_INSTEAD_OF_MOVE cid#1554973 COPY_INSTEAD_OF_MOVE cid#1555011 COPY_INSTEAD_OF_MOVE cid#1555012 COPY_INSTEAD_OF_MOVE cid#1555015 COPY_INSTEAD_OF_MOVE cid#1555044 COPY_INSTEAD_OF_MOVE cid#1555051 COPY_INSTEAD_OF_MOVE cid#1555055 COPY_INSTEAD_OF_MOVE cid#1555063 COPY_INSTEAD_OF_MOVE cid#1555068 COPY_INSTEAD_OF_MOVE cid#1555073 COPY_INSTEAD_OF_MOVE cid#1555074 COPY_INSTEAD_OF_MOVE cid#1555078 COPY_INSTEAD_OF_MOVE cid#1555080 COPY_INSTEAD_OF_MOVE cid#1555091 COPY_INSTEAD_OF_MOVE cid#1555099 COPY_INSTEAD_OF_MOVE cid#1555101 COPY_INSTEAD_OF_MOVE cid#1555121 COPY_INSTEAD_OF_MOVE cid#1610739 COPY_INSTEAD_OF_MOVE cid#1608424 COPY_INSTEAD_OF_MOVE cid#1608059 COPY_INSTEAD_OF_MOVE cid#1607952 COPY_INSTEAD_OF_MOVE cid#1607653 COPY_INSTEAD_OF_MOVE cid#1607614 COPY_INSTEAD_OF_MOVE cid#1607592 COPY_INSTEAD_OF_MOVE Change-Id: Ie9f922a9fe1b8001dfab31e2741fe8bd5558e442 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170802 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-29speed up ScPatternAttrNoel Grandin
we know that ScPatternAttr uses a single, contiguous range of item ids, so we can compute the item offset at compile time. Shaves 1-2% off some workloads. Change-Id: I623b8cb3e0d5d070118117196d2b48575f505725 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165550 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-08-28sc: Fix wrapText not being applied correctly on exportParis Oplopoios
Change-Id: I03aaa36af8fe820fa07d2eea13c5b0f69ad74dad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155970 Tested-by: Jenkins Reviewed-by: Paris Oplopoios <parisoplop@gmail.com>
2023-03-26loplugin:stringadd in scNoel Grandin
after my patch to merge the bufferadd loplugin into stringadd Change-Id: Ifa70db5be4719fe66d3043e5e49403246f6aa8bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149582 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-12-19tdf#151755 fix export of borders of contentless cellsAttila Szűcs
Change-Id: I650aeebb4d021911c1f14d4867c5beee84020155 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143880 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2022-08-27sal_uLong->sal_uInt32 in XclExpDVNoel Grandin
we are already passing this through ATTR_VALIDDATA which is a SfxUInt32Item Change-Id: I491a85379a2f4900c70f3eb92f5be3f3c16a1d42 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138916 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-18create getter for ScCellValue::mpFormulaNoel Grandin
so we can assert that it has the correct tag type Change-Id: Iab13a6d6ea1783c69395f06f28732769e5fe8b18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136059 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-17create getter for ScCellValue::mpEditTextNoel Grandin
so we can assert that it has the correct tag type Change-Id: I984c22ae2527d652f2d4194227dc1173793300c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136054 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-17create getter for ScCellValue::mpStringNoel Grandin
so we can assert that it has the correct tag type Change-Id: I8933919aefc2bb22694a283b54dc3de11d16e5a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136002 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-16create getter for ScCellValue::mfValueNoel Grandin
so we can assert that has the correct tag type Change-Id: I0d626130cb014e19239e88a6988018c83d061f68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136001 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-16make meType in ScCellValue privateNoel Grandin
as a first step to wrapping up the internals of this class and adding some asserts Change-Id: Ic13ddd917948dbf3fd6d73f44b8efcc727726baf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135994 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-07cid#1500534 silence bogus Using invalid iteratorCaolán McNamara
Change-Id: I4885335832baaafd4468ae55bcafa2b541e26913 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131105 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-03-07optimize repeated std::vector removal (tdf#126326)Luboš Luňák
Also it's enough to use just pointers to the elements, no need to refcount. Change-Id: I2e6a2f981d75e3dd57aefb41ba1fdbf800fed813 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131107 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-05compress RowHidden()/GetRowHeight() use in excel export (tdf#126326)Luboš Luňák
Change-Id: Idc6a704cfc820bbbb2b51eff8db8159c251ea9ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131062 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-02fix incorrect search startLuboš Luňák
A mistake from 05259e880db187f6698d6d545504775459d6e96a, the second if branch doesn't guarantee anything about where EXC_XF_NOTFOUND elements start. Change-Id: I942f87a7320c13a8f87ab3c9f1683a75d7a1e135 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130876 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-02reuse a vector instead of repeatedly creating it (tdf#95346)Luboš Luňák
With some documents this actually is a noticeable cost. Change-Id: Ibaf2157eeba83e0c8f78c7ba058771f92bb44e24 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130795 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-03-02try to avoid using map when searching most used item (tdf#95346)Luboš Luňák
The last item is usually going to be the most common, so first check that. Change-Id: Ibad8b6bb9a829a96691c10b780b8e52610475126 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130794 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-02-20optimize XclExpRowBuffer::GetOrCreateRow() (tdf#140893)Luboš Luňák
This gets called often especially with larger spreadsheets. Change-Id: I6acf23d0942d1745a52963c9b5b08453e1ec28bc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130207 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-02-17optimize blank cell Excel export (tdf#133749)Luboš Luňák
The code in XclExpRow::Finalize() apparently creates an array of indexes for blank cells, and then uses it to efficiently write many blank cells (or whatever it's all exactly). But especially with huge sheets all this processing is basically repeatedly checking for all the blank cells at the end of the rows. Optimize this by calculating where the all the remaining blank cells start and process those more efficiently or sometimes even just plain ignore them. Possibly this could be optimized even more if I understood the code better, but this seems to be good enough. I've also changed some of the loops to use indexing instead of iterators, as libstdc++ debug iterators are horribly slow here (which possibly may even make a difference for Jenkins builds). Change-Id: Iafe36ccd2795a85b10b98cf84c041a7427aabc29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130046 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-02-17std::map -> std::unordered_mapLuboš Luňák
Change-Id: I70a039af151b7dd398d2665e6fc9bb825f719e39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130006 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-02-11basic import/export test for ods/xlsx with a value in column 2000Luboš Luňák
Which is above the "normal" 1024 column limit. This tests my recent commits. Change-Id: I8ec3fcdbfef879ca0eeec4cfa3fa067378f6f57f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129823 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-01-27Simplify oox::xls::UnitConverter and its usesMike Kaganski
Use o3tl::convert where it was used to convert between two fixed units. Simplify cases where several conversions were performed in a row. Use EMUs as UnitConverter base unit, to have simplest quotients and increase accuracy. Change-Id: I07c197dba470cfe289cef84e82b78547635cf9af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129016 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-11Drop ScGlobal::GetEmptyOUString() and EMPTY_OUSTRINGMike Kaganski
OUString default ctor already uses a static instance (through rtl_uString_new), no need to have another module-specific static. Commit d8037ae18a297229d1b79f8f76331abfd548350d had removed its sw counterpart some time ago. Change-Id: I140fe13bc1f6b0cbe188e83e602fdebe995e467a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125061 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-13split SvNumberFormatter into it's own headerNoel Grandin
so I can make changes without running into cyclic dependencies between header files Change-Id: I98a91c7cc66002ba745cdb8239e5cc267922a45c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120412 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-05Make sanitiseMm100ToTwip simpler and more correctMike Kaganski
The result's absolute value is always smaller than n. Returning an uncorrected value taken from reversing multiplication and division order when intermediate value would overflow is better than arbitrary constant. Also further deduplicate Twips <-> 100th-mm conversion, and make sure they all are in a single header. Using conversion implementation that handles negatives correctly improves accuracy, as seen in unit tests; e.g. in testPictureEffectPreservation (the original doc had "dir" equal to "8100000", while we tested that it was "8076614" after roundtrip). Change-Id: Icd027af6238a9f45f916f53f8684506cc959e696 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110433 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-02-04have one set of twips<->mm conversionsNoel
Change-Id: I510f4a0524a7c72eb124cba103cbf398024976d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110407 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-20use tools::Long in scNoel
Change-Id: I8f37a8d1174ed816df971b8cee036d4e88d4a7fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104526 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-09-25change pointers to references where never possible to be nullptrsCaolán McNamara
and drop some null checks then shown not to be needed Change-Id: I2806eeb64f43072a34aecd46424dbd063a119b7c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103356 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-13GetMultipleOpRefs never passed a null ScDocument*Caolán McNamara
Change-Id: Ib31f77d8cf669881df5cc23bdd91278531c1f8ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102531 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-13toAbs always dereferences its ScDocument*Caolán McNamara
Change-Id: I6bddbca2289074ecf333227b3fc1a49da4b431a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102529 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>