summaryrefslogtreecommitdiff
path: root/sc/source/ui/dataprovider
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-14 23:45:17 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-15 00:57:56 +0200
commit46aba1db9a8e43da03f4db580b8dc9de7b850b00 (patch)
treed5cbc9acc44d0dc8ba4425b11641bd3723bc3758 /sc/source/ui/dataprovider
parent3ecec2dbcff2870c385b0814203b1883887eddec (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.cxx23
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: */