summaryrefslogtreecommitdiff
path: root/sc/inc
AgeCommit message (Collapse)Author
2024-07-09tdf#158857: [Power Query] export connections.xmlBayram Çiçek
- import&export connections stream - insert xl/connections.xml reference to [Content_Types].xml - add Relationship::CONNECTIONS - add support for xr16 namespace - add ../customXml/item1.xml relationship to xl/_rels/workbook.xml.rels - add import&export support for following xml elements in xl/connections.xml: <connections> <connection> <dbPr /> <olapPr /> <webPr> (Web Query Properties) <tables> <m /> <s /> <x /> </tables> </webPr> <textPr> <textFields> <textField /> </textFields> </textPr> <parameters> <parameter /> </parameters> <extLst> <ext> (Any element in any namespace) <- TODO/LATER </ext> </extLst> </connection> </connections> Change-Id: I1d1c10675b3fe5ffd6a35f1b91d4b83401be2cae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164290 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-05tdf#158110 - Paste special: improve check for cells with notesAndreas Heinisch
Change-Id: Ia18d8f91ee2d4493174255424ce7e3b7310c369d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169355 Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de> Tested-by: Jenkins
2024-07-04tdf#152104 speed xls->ods convert part 2Noel Grandin
We are doing a lot of work in ScAttrArray::SetPatternAreaImpl, where we move the mvData vector of CellAttributeHolder around, so inline and reduce some of the work. The move operator= can be simplified, leaving some of the work to the destructor (which may well be elided when moving arrays of elements around). Reduces time from 50s to 39s Change-Id: I358f48fa30f785f7b3f221079db93ab0288a7f14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169941 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-06-27Related: tdf#127293 Ignore 'search-criteria-must-apply-to-whole-cell'Balazs Varga
dependency for XLOOKUP and XMATCH because of better compatibility. The idea is to specify, that the global setting 'search-criteria-must-apply-to-whole-cell' is ignored and XMATCH and XLOOKUP always behaves as if 'search-criteria-must-apply-to-whole-cell'=true. That would affect exact search in Match_mode value 0. Users would need to use wildcard or regex to get a match to part of the content. But removing dependency to the global setting increases interoperability with MS Excel. Also the ODF TC will follow that in the final specification of these functions: https://issues.oasis-open.org/browse/OFFICE-4154 Follow-up commit: 17d578ba91f9c78a0e41d19b58183d2214c0b7a4 (Related: tdf#127293 Add new Match_mode option for XLOOKUP and XMATCH functions.) Change-Id: I1317865631d2925eaff72e9c1425d93386c3d016 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169582 Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Reviewed-by: Regina Henschel <rb.henschel@t-online.de> Tested-by: Jenkins
2024-06-21Related: tdf#127293 Add new Match_mode option for XLOOKUP andBalazs Varga
XMATCH functions. Introduce a value "3" for parameter Match_mode for Regular Expression mode in XMATCH and XLOOKUP, to seperate the original Match_mode value "2", which was used for both, Wildcard and Regular Expression mode as well. Note: "The ODF TC will follow that in the specification of these functions and at the same time specify, that the host dependent properties HOST-USE-REGULAR-EXPRESSIONS and HOST-USE-WILDCARDS (file format table:use-regular-expressions and table:use-wildcards) will be ignored by these functions." https://issues.oasis-open.org/browse/OFFICE-4154 Also Microsoft Office will introduce this new value for Match_mode in XLOOKUP and XMATCH: https://insider.microsoft365.com/en-us/blog/new-regular-expression-regex-functions-in-excel Follow-up commit: 0ca20dca3349daa303b89251443f550491968a39 (Related: tdf#127293 Add unit test for xlookup regex search mode) Change-Id: Ibcbfa4cf227ab9a9d317d94c1bab8254b1f91822 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169275 Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Tested-by: Jenkins
2024-06-20Resolves tdf#64028 - Command to retain source cell on cutHeiko Tietze
.uno:CopyDelete copies the cell and deletes the content, assigned to shift+ctrl+X Misses to block the command while in edit mode, see tdf#161712 Change-Id: I479008b0484ef8ced86b709a0dc2bdbfa6c44cb1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169266 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-06-20loplugin:unusedmethodsNoel Grandin
Change-Id: Ia216da9bd7764f2d21aaee761a02eafda88d892e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169257 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-06-18Add warning and progress to AutoFormatOliver Specht
Applying AutoFormat to large selections may take really long. A warning has been added to warn users. Additionally a progress is shown while AutoFormat is working. Change-Id: I74909a6243748ebfe0089406ebe947bb48eb93d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167950 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de> Tested-by: Jenkins
2024-06-17tdf#161616: do not set error when XGoalSeek failsXisco Fauli
Change-Id: I2fcec37cd9d22862dd136c97e5b4097e69fd41cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169035 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-06-16cid#1603805 COPY_INSTEAD_OF_MOVECaolán McNamara
Change-Id: Ieb2c72dbdfec8431bd23da8a5e4844f3c1a5b74e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168958 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-06-14tdf#161338: Pass a flag to ScDocument::Solver to avoid #NA! on errorMike Kaganski
This fixes the remaining problems: 1. It didn't restore variable cells with text of formulas properly. 2. Undoing after accepting the "closest value" dialog gave #NA! in the variable cell. This doesn't change the behavior of XGoalSeek::seekGoal. Change-Id: Ic9fbd3c99e6491b1c54b2e3b334090e51b1be661 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168763 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-06-13tdf#161462 Remember Goal Seek settingsRafael Lima
Each time the user opens the Goal Seek dialogs, all settings are reset. This patch makes these settings be remembered during the same session. Change-Id: I60a121b4001f4666ee25ab807fdc3860cf798296 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168683 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-06-11ITEM: Change SfxItemSet to use unordered_setArmin Le Grand (allotropia)
With all the changes done for Items we can now do deeper basic changes to the ItemSet itself with manageable risk. I already did https://gerrit.libreoffice.org/c/core/+/166455 aka 'ITEM: Add measurements for SfxItemSet usages' to get some statistical information about the fill/usage grade of the ItemSet's fixed PtrArray to SfxPoolItems, check that out to get an own picture. Those results show that an average usage is between some extremes ranging from 0% to 50%, but when using more checks and using multiple files/interactions/edits in all applications we end up with around typical 12%-19% of that array used, the rest is nullptr's. Thus I thought about one of the initial ideas of this series of changes (ITEM), to use a std::unordered_map (A) instead of that fixed array of SfxPoolItem Ptr's (B). Tthat again was for a complete type-based rewrite, which I once did a POC, but the code cannot be adapted to that, just too much work. Those are very different in architecture, (B) is done since a long time (since ever), but as pointed out above, (A) is now possible. There are many aspects to it, let's grep some: Speed (iterate): (A) and (B) are both linear. (A) has less entries, but may touch different mem areas (buckets). (B) is linear, but many empty spaces which are usually uselessly iterated. Speed (access Item by WhichID): (A) is hashed by WhichID, so mostly linear for unordered_set/hash. (B) is in a linear array, but has to calculate the offset for each WhichID access. So I guess speed will mostly equal out. Memory: (A) will be dynamically allocated (buckets), but stl is highly optimized and may even re-use areas, has to provide some extra info but will need less places for Items since it's dynamic and can start empty. (B) will be allocated once (except AllItemSet) and may even be 'derived' to the ItemSet (SfxItemSetFixed), but has to allocate all space at once. I can go in lots of more detail here, but due to the results of the statistics I just made a test now, including measuring some results (will include in gerrit, not here). I used two pro versions for that. That way I have some data now. Result is: - It is now possible to do this, it runs stable :-) - Speed: As expected, mostly no change - Memory: Depending on usage, 0% to 25% less, usually around 8-10% Side effects: - SfxAllItemSet could be done without WhichRanges, thus without expensive 'merges' - SfxItemSetFixed is not needed. While the idea is good, it needs a lot of extra stuff - Access to Items is linear if set - WhichRanges: Still needed, but for vaildity checking/filtering of ItemSet content - WhichRanges: Worth to think about if these are needed at all, probably just exist for historical reasons since allocation/number of added Items was never ever dynamic -> just not allocatable Putting the current version on gerrit, may still trigger some UTs (checked SW/SC/SD...) I did not like that functionality at ItemSet that hands out a vector of the set items for cases where to avoid iterating and deleting items at the same time at an ItemSet, so changed to using a local vector of remembered WhichIDs and deleting after the iterator is done. I also saw some strange usages of SfxItemIter in sw which i will have to check. Since there are still problems with UTs which I can not reproduce locally I have now added asserts to the case that an ItemSet gets changed with still having active SfxItemIter(s). That is always an error, but with the architecture of that fixed array of ItemPtrs did not have devastating effects (purely by coincidence). With that asserts, UTs run well in SC and SD, but in SW I get 11 (eleven!) asserts from the UTs, all of them from 'ITEM: SfxItemSet ClearItem' BTW. I guess these have to be fixed before thinking about this change... Good news is that all 11 cases were the same in SW, in SwHistorySetAttrSet::SwHistorySetAttrSet which does some strange things using two SfxItemIter in parallel. Thus SW UTs are also clear and I see no more errors caused by ItemSets being changed while SfxItemIters are alive. Bad news is that I still have errors to hunt... NOTE: Have now cleaned all UTs, this showed that there are some unexpected side-effects of the Items being processed in another order when SfxItemIter is used, also found one case where a WhichRangesContainer is constructed for a SfxItemSet using the set items from another ItemSet and SfxItemIter to do so. There *might* be more cases not covered by UTs. NOTE: While speed stays the same and mem is reduced up to 25% (see measurements in 1st comment) another *important* aspect is that this frees the way for using ItemSets *without* WhichRanges - these are necessary mainly to create that fixed array of pointers to the Items in a *manageable* size. With a dynamic structure like unordered_set there is in principle *no need* anymore to use WhichRanges to pre-define the Items a Set could hold. There is one exception: We have cases where one ItemSet is set at another one with defined WhichRanges to *filter* the contained Items - these would have to be identified. This is a rare case and we would have to check cases where an ItemSet gets set at another ItemSet. This would be as if all ItemSets would be AllItemSets in principle - much easier for everyone. NOTE: Waited for 24.8 split just to not take unnecessary risks. Change-Id: I75b0ac1d8a4495a3ee93c1117bdf618702785990 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166972 Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> Tested-by: Jenkins
2024-06-10tdf#161454 - Fix new array functions handle empty matrix cellsBalazs Varga
Newly added calc array functions didn't handle empty matrix cells as empty cells but they were handled as empty strings. Change-Id: Ie24a38dd8c3f947cfe10ba05b234807891453824 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168591 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-06-09Related: tdf#137543 - fix LET function jump count numberBalazs Varga
Clean-up and fix wrong jump count. Change-Id: Ie64ff95f63c17d2726b3a522af981bcaea2a9a32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168590 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-06-06Related: tdf#137543 - Add new LET function to CalcBalazs Varga
Fix parsing name strings in Let function, so the invalid names will be parsed as an ocBad - svString like before. follow-up commit: 521a56d8d1e12b7471fda6b62b21d51776c9fbaf Change-Id: If4645584500ffd85556695b12fa7c99eaa8f7662 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168503 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-06-06tdf#137543 - Add new LET function to CalcBalazs Varga
Add new LET function to Calc which assigns names to calculation results. TODO: oasis proposal Change-Id: Ia0d56a30751a44a72e364a28b64fd8f617e997dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168349 Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-06-04Resolves tdf#161395 - Rename Whole Number to IntegerHeiko Tietze
Change-Id: Id4cce115823781e5f2a4870d38d1f456cdf417a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168395 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-06-04Related: tdf#128425 tdf#127293 - Extend function wizard descriptionBalazs Varga
about match_mode and search_mode options. Also do not allow wildcard match mode with binary search mode as it was decided at the odf meetings. Change-Id: Iadc1b6735ae62bb07675a664d9954ebc27519691 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168366 Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Tested-by: Jenkins
2024-06-03loplugin:ostr in scNoel Grandin
Change-Id: I72438d38c75a7facb9bd5f9cfb7be1213ac3d141 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168356 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-17tdf#160835 Fix the use of "population" in Calc functionsRafael Lima
Change-Id: If72058a34534dc477d07e9683c0d38d7169eecf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167688 Tested-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2024-05-17Review of UNIQUE function arguments textOlivier Hallot
Feel free to consider this as suggestion. Change-Id: Ia3addb8ee7157ab0e5c5a10230adabc5963f94d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167756 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-05-15tdf#126573 Add Excel2021 array function UNIQUE to CalcBalazs Varga
Add new function called UNIQUE to the function list. (TODO: dynamic array in separate patch, oasis proposal) Change-Id: Ie138aee545995d4af1e66be5a4cf4e99e6e2f581 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167484 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-05-15Review RANDARRAY arguments explanationOlivier Hallot
- As discussed in IRC, remove potential ambiguities in Min and Max - changed "Whole number" to "Integer" to distance terms used in other suites - Rephrased main RANDARRAY definition Change-Id: I5e557f1e11ce321652df04a300f2cc4103fe1161 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167645 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2024-05-13tdf#157657 - sc: add option to make data validity case-sensitiveBalazs Varga
Add option to check data validity with case sensitive and case insensitive. The default set would remain the original case insensitive mode for data validity. Change-Id: Ic4fe56e2b31b7fc348b742f3b95fb44cd35bc49d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167280 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-05-12replace createFromAscii with OUString literals in ScIconSetFormatNoel Grandin
Change-Id: I5af0128c55608bf6192af4dc46f9476393a15afa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167528 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-05-08tdf#126573 Add Excel2021 array function RANDARRAY to CalcBalazs Varga
Add new function called RANDARRAY to the function list. (TODO: dynamic array in separate patch, oasis proposal) Change-Id: I34bad3b7e8d631d649a0350d7c1170b26161331d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167003 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-05-07Resolves tdf#156885 - Make comment authorship optionalHeiko Tietze
Change-Id: I3422c9e5606fa9eb9aa450f518af8426e598ab8f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167260 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2024-05-06ScGlobal::GetUserList never returns nullCaolán McNamara
Change-Id: Ibce3fc1b6d85fc6183fc2552a71ead6443b45fad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167172 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-05-06Lets see if "MSVC '12 'unreferenced formal parameter'" workaround can go nowStephan Bergmann
Change-Id: Iea4cd4ccec178ff32832eb2bf9a6586d6014b89b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167184 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-05-05Avoid loplugin:casttovoid with recent Clang 19 trunkStephan Bergmann
> In file included from sc/source/core/data/autonamecache.cxx:23: > In file included from sc/inc/dociter.hxx:23: > In file included from sc/inc/formulagroup.hxx:17: > sc/inc/stlalgorithm.hxx:52:9: error: unnecessary cast to void [loplugin:casttovoid] > 52 | (void)p; // avoid bogus MSVC '12 "unreferenced formal parameter" warning > | ^~~~~~~ > sc/inc/stlalgorithm.hxx:51:9: note: first consumption is here [loplugin:casttovoid] > 51 | p->~value_type(); > | ^ Change-Id: I14bcc32fcaf3026a9c3c36e522b1e61da15f224f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167158 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-05-01Related: tdf#160725 - Add horizontal binary search mode for SortedCacheBalazs Varga
and ScSortedRangeCache classes to support binary search mode in case of different columns. Which is used by the new XLOOKUP function from now on in case of binary search mode. Change-Id: Ibb2ae33670cbe9b47110de57afb6376cd829b465 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166758 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-04-30tdf#160725 - Fix XLOOKUP has different result for approximateBalazs Varga
search than Excel. Some rework for xlookup binary search in rows to get the correct results when we are searching with binary mode in rows. Change-Id: I7ef710c4ae638e2cf5d4bee45810cec7057f5d4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166451 Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Tested-by: Jenkins
2024-04-29fix macos buildNoel Grandin
after commit cfb913db1b2024f8ff6a55f45742b303107a1924 Author: Justin Luth <justin.luth@collabora.com> Date: Tue Apr 23 20:15:27 2024 -0400 xlsx import: parse short-hand version of range address Change-Id: Ia75b2bd90ac02b682f1c86865a07ac5e2557b555 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166875 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-29fix Windows buildNoel Grandin
after commit a7094c815628c70ac0430cd2ddc21f13b0b316d2 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Mon Feb 26 15:36:48 2024 +0200 make more symbols private in calc Seems different jenkins boxes compile slightly differently Change-Id: I7a439e236e8c3c753ce358b8d5f6e06ccf181768 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166869 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-27reduce symbol visibility in scNoel Grandin
Change-Id: I7a1c7dbe61e302584b977fdf202d041d987d0833 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166777 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-04-26tdf#126573 Add Excel2021 array function SEQUENCE to CalcBalazs Varga
Add new function called SEQUENCE to the function list. (TODO: dynamic array in separate patch, oasis proposal) Change-Id: I9fa6f2c83536536987542cc00a9eec5c196ada8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166245 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2024-04-22tdf#61313 Replace the static ">=" with a dropdown of different operatorsAhmedHamed
The problem is with conditional formatting using icon set, as the icons order is fixed. It is solved by using comboBoxes for condition mode in ScIconSetFrmtDataEntry for every icon, and adjusting the UI file. A function that compares according to the currnt mode is added. Related CppunitTest files are updated. For every cell, last valid condition is applied. Change-Id: I489206d349a46092b307203c180705f42883183d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165701 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2024-04-22pivot: handle whole row/column selections, added many testsTomaž Vajngerl
This adds support for selecting whole rows/columns, where the field reference is set but no indices are present. This means that all the data cells apply (selecting the whole thing), which are not subtotals. For this the support for multiple matching and maybe matching results was added (previously max 1 would apply), which would apply the pattern to multiple cells in the pivot table. In addition handle labels of columns with multiple data fields correctly. This also adds many more test scenarios, which all cover the changes mentioned above. Change-Id: Ibcdaa933c69991eaa55a2ad18b9f9a838308d478 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166384 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-04-21Related: tdf#160056 add number format info to ScPatternAttr cacheCaolán McNamara
2411.71ms -> 2395.36ms Change-Id: Ie6a3f281b56e827b77dddd1eb8ae6db9d2691c8d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166387 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-20tdf#80390 Extend InsertCells Dialog to allow adding a set of Rows/ColumnsSahil Gautam
Change-Id: I103574d720fef685b806943672a2aeb1fbf87097 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164316 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-04-19tdf#160706 speed up loading conditional formatting rule in XLS (4)Noel Grandin
speed up the matching of duplicates in CellAttributeHelper by using std::set and partial sorting by name Takes my time from 33s to 6s Change-Id: I06376c1e253981cb5a3020142d24fa5776513d4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166262 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-04-16pivot: suppprt multiple cell format reference indicesTomaž Vajngerl
This adds support for multiple cell format reference indices, so the same cell format is applied to multiple cells (defined by indices) so that each doesn't need to be defined by its own reference (as they are all the same anyway and only differ by single index). The solution is to create multiple format outputs for one format entry - each for a selection index, but have other data still the same. This is a bit tricky as previously it was one format output for one format entry, which is not the case anymore. Change-Id: I074ac03e7d81e26562a6a6cc395b11cfed16766d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166131 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-04-15pivot: improve format matching, add empty cell checking to testsTomaž Vajngerl
The patch improves the pivot table cell format matching with the output data, so we check if there is a complete match or a partial match. A partial match is when we found one match for a field, but other fields are not set, and if this partial match is found in exactly 1 line of output data, then we treat it as a complete match. This also refactors the code so there is code no duplication for column and row matching code - they work in the same way, just in a different orientation. This also adds checking of empty cells to the tests, so we can make sure there is no other cell in the pivot table that got the pivot table cell format applied to. A new test case was also added to the test class. Change-Id: I102ec8e33bc7a3f26bc898568ee0e33abe08bd27 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166086 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-04-15Related: tdf#160056 FormulaResult may ref an initial interpreter FormulaTokenCaolán McNamara
If a token from the original tokens, supplied to a parallel group calculation while RefCounting was disabled for those tokens, ends up as a FormulaResult token, then fix up the ref count when parallel calculation ends Change-Id: I2587c25d216ab170725017b67b97d203a578160b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166080 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-13Related: tdf#160056 all maTokens are FormulaTypedDoubleToken*Caolán McNamara
Change-Id: I6eacaf58c25ef9c5cb930a79177471c79a6a26c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166047 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-04-13Remove duplicated includeAndrea Gelmini
Change-Id: Ie70543c67549498d51eeb53d262b52f8ef1ec700 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166043 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-04-13Fix typoAndrea Gelmini
Change-Id: If0fbaae23b98d3bdd178473db8fdb8ab2263ef67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166042 Tested-by: Jenkins Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2024-04-13pivot: Export Pivot Table "formats" element(s)Tomaž Vajngerl
This change adds the "formats" element tree export for a pivot table. The source are the formats (sc::PivotTableFormats) added to the pivot table - in the ScDPSaveData class. This are currently set on import but in the future hopefully those are also set through the UI. Change-Id: I5ed8f7e8d7ac248b0222a884fb97555ef6bb8427 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166035 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-04-12crashtesting: assert seen on importing forum-mso-en4-62805.xlsxCaolán McNamara
Change-Id: I1d1ab4539775c8c2fce591ca32fc15c3c0dd6060 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166024 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>