diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-14 23:45:17 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-08-15 00:57:56 +0200 |
commit | 46aba1db9a8e43da03f4db580b8dc9de7b850b00 (patch) | |
tree | d5cbc9acc44d0dc8ba4425b11641bd3723bc3758 /sc/source/ui/dataprovider | |
parent | 3ecec2dbcff2870c385b0814203b1883887eddec (diff) |
external data: add merge column transformation
Change-Id: I112650bbb0ed279b386389e7df6b372bde080b62
Reviewed-on: https://gerrit.libreoffice.org/41157
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc/source/ui/dataprovider')
-rw-r--r-- | sc/source/ui/dataprovider/datatransformation.cxx | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/sc/source/ui/dataprovider/datatransformation.cxx b/sc/source/ui/dataprovider/datatransformation.cxx index e5e65dc43344..2c2fe72bbcf4 100644 --- a/sc/source/ui/dataprovider/datatransformation.cxx +++ b/sc/source/ui/dataprovider/datatransformation.cxx @@ -68,6 +68,29 @@ void SplitColumnTransformation::Transform(ScDocument& rDoc) } } +MergeColumnTransformation::MergeColumnTransformation(SCCOL nCol1, SCCOL nCol2, const OUString& rMergeString): + mnCol1(nCol1), + mnCol2(nCol2), + maMergeString(rMergeString) +{ +} + +void MergeColumnTransformation::Transform(ScDocument& rDoc) +{ + SCROW nEndRow1 = getLastRow(rDoc, mnCol1); + SCROW nEndRow2 = getLastRow(rDoc, mnCol2); + SCROW nEndRow = std::max(nEndRow1, nEndRow2); + + for (SCROW nRow = 0; nRow <= nEndRow; ++nRow) + { + OUString aStr1 = rDoc.GetString(mnCol1, nRow, 0); + OUString aStr2 = rDoc.GetString(mnCol2, nRow, 0); + rDoc.SetString(mnCol1, nRow, 0, aStr1 + maMergeString + aStr2); + } + + rDoc.DeleteCol(0, 0, MAXROW, 0, mnCol2, 1); +} + } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |