diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/AbstractXLSExportHelper.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/AbstractXLSExportHelper.java
index c7fac581199807ea4d9457ecac26a8633bf37421..5d7d2765a3573380fb1ec2c8557657f4e4e9337c 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/AbstractXLSExportHelper.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/AbstractXLSExportHelper.java
@@ -21,6 +21,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IEntityType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.common.interfaces.IEntityTypeHolder;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.plugin.Plugin;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyAssignment;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.vocabulary.Vocabulary;
@@ -127,13 +128,16 @@ abstract class AbstractXLSExportHelper implements IXLSExportHelper
         return null;
     }
 
-    protected static Function<String, String> getPropertiesMappingFunction(
+    protected static Function<Map.Entry<String, DataType>, String> getPropertiesMappingFunction(
             final XLSExport.TextFormatting textFormatting, final Map<String, String> properties)
     {
         return textFormatting == XLSExport.TextFormatting.PLAIN
-                ? propertyCode -> properties.get(propertyCode) != null
-                        ? properties.get(propertyCode).replaceAll("<[^>]+>", "") : null
-                : properties::get;
+                ? codeToTypeEntry -> codeToTypeEntry.getValue() == DataType.MULTILINE_VARCHAR
+                        ? properties.get(codeToTypeEntry.getKey()) != null
+                                ? properties.get(codeToTypeEntry.getKey()).replaceAll("<[^>]+>", "")
+                                : null
+                        : properties.get(codeToTypeEntry.getKey())
+                : codeToTypeEntry -> properties.get(codeToTypeEntry.getKey());
     }
-
+    
 }
diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSDataSetExportHelper.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSDataSetExportHelper.java
index 1bda579ccc93e193326a02b2514e0f31b2d5b243..307f06b9dd58fbae7a61723d39ff3e16b818e037 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSDataSetExportHelper.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSDataSetExportHelper.java
@@ -15,6 +15,9 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.DataSet;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.DataSetType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.fetchoptions.DataSetFetchOptions;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.dataset.id.DataSetPermId;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyAssignment;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyType;
 import ch.ethz.sis.openbis.generic.server.xls.export.XLSExport;
 
 public class XLSDataSetExportHelper extends AbstractXLSExportHelper
@@ -41,10 +44,12 @@ public class XLSDataSetExportHelper extends AbstractXLSExportHelper
 
             final List<String> headers = new ArrayList<>(List.of("Code",
                     entry.getValue().get(0).getSample() != null ? "Sample" : "Experiment"));
-            final List<String> propertyNames = entry.getKey().getPropertyAssignments().stream().map(
+            final List<PropertyAssignment> propertyAssignments = entry.getKey().getPropertyAssignments();
+            final List<String> propertyNames = propertyAssignments.stream().map(
                     assignment -> assignment.getPropertyType().getLabel()).collect(Collectors.toList());
-            final List<String> propertyCodes = entry.getKey().getPropertyAssignments().stream().map(
-                    assignment -> assignment.getPropertyType().getCode()).collect(Collectors.toList());
+            final Map<String, DataType> propertyCodeToTypeMap = propertyAssignments.stream()
+                    .map(PropertyAssignment::getPropertyType)
+                    .collect(Collectors.toMap(PropertyType::getCode, PropertyType::getDataType));
             headers.addAll(propertyNames);
 
             addRow(wb, rowNumber++, true, headers.toArray(String[]::new));
@@ -58,7 +63,7 @@ public class XLSDataSetExportHelper extends AbstractXLSExportHelper
                         List.of(dataSet.getCode(), identifierHolder.getIdentifier().getIdentifier()));
 
                 final Map<String, String> properties = dataSet.getProperties();
-                dataSetValues.addAll(propertyCodes.stream()
+                dataSetValues.addAll(propertyCodeToTypeMap.entrySet().stream()
                         .map(getPropertiesMappingFunction(textFormatting, properties))
                         .collect(Collectors.toList()));
                 
diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSExperimentExportHelper.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSExperimentExportHelper.java
index 60adfc86fef8b2351aee07309651277d6f84a011..1b8afff5851c1df84e3052b7a9af66dd1e29ca63 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSExperimentExportHelper.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSExperimentExportHelper.java
@@ -14,6 +14,9 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.Experiment;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.ExperimentType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.fetchoptions.ExperimentFetchOptions;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.ExperimentPermId;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyAssignment;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyType;
 import ch.ethz.sis.openbis.generic.server.xls.export.XLSExport;
 
 public class XLSExperimentExportHelper extends AbstractXLSExportHelper
@@ -39,10 +42,12 @@ public class XLSExperimentExportHelper extends AbstractXLSExportHelper
             addRow(wb, rowNumber++, false, entry.getKey().getPermId().getPermId());
 
             final List<String> headers = new ArrayList<>(List.of("Identifier", "Code", "Project"));
-            final List<String> propertyNames = entry.getKey().getPropertyAssignments().stream().map(
+            final List<PropertyAssignment> propertyAssignments = entry.getKey().getPropertyAssignments();
+            final List<String> propertyNames = propertyAssignments.stream().map(
                     assignment -> assignment.getPropertyType().getLabel()).collect(Collectors.toList());
-            final List<String> propertyCodes = entry.getKey().getPropertyAssignments().stream().map(
-                    assignment -> assignment.getPropertyType().getCode()).collect(Collectors.toList());
+            final Map<String, DataType> propertyCodeToTypeMap = propertyAssignments.stream()
+                    .map(PropertyAssignment::getPropertyType)
+                    .collect(Collectors.toMap(PropertyType::getCode, PropertyType::getDataType));
             headers.addAll(propertyNames);
 
             addRow(wb, rowNumber++, true, headers.toArray(String[]::new));
@@ -54,7 +59,7 @@ public class XLSExperimentExportHelper extends AbstractXLSExportHelper
                                 experiment.getProject().getIdentifier().getIdentifier()));
 
                 final Map<String, String> properties = experiment.getProperties();
-                experimentValues.addAll(propertyCodes.stream()
+                experimentValues.addAll(propertyCodeToTypeMap.entrySet().stream()
                         .map(getPropertiesMappingFunction(textFormatting, properties))
                         .collect(Collectors.toList()));
                 
diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
index bf216a8faf9b76c1e43feb52f27e4f26547789fd..9aab8b9baf88ca1d87f89d8786edc0073b040c00 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
@@ -10,6 +10,9 @@ import java.util.stream.Collectors;
 import org.apache.poi.ss.usermodel.Workbook;
 
 import ch.ethz.sis.openbis.generic.asapi.v3.IApplicationServerApi;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyAssignment;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.PropertyType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.Sample;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.SampleType;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.sample.fetchoptions.SampleFetchOptions;
@@ -40,10 +43,13 @@ public class XLSSampleExportHelper extends AbstractXLSExportHelper
 
             final List<String> headers = new ArrayList<>(List.of("$", "Identifier", "Code", "Space", "Project",
                     "Experiment", "Auto generate code", "Parents", "Children"));
-            final List<String> propertyNames = entry.getKey().getPropertyAssignments().stream().map(
+            final List<PropertyAssignment> propertyAssignments = entry.getKey().getPropertyAssignments();
+            final List<String> propertyNames = propertyAssignments.stream().map(
                     assignment -> assignment.getPropertyType().getLabel()).collect(Collectors.toList());
-            final List<String> propertyCodes = entry.getKey().getPropertyAssignments().stream().map(
-                    assignment -> assignment.getPropertyType().getCode()).collect(Collectors.toList());
+            final Map<String, DataType> propertyCodeToTypeMap = propertyAssignments.stream()
+                    .map(PropertyAssignment::getPropertyType)
+                    .collect(Collectors.toMap(PropertyType::getCode, PropertyType::getDataType));
+
             headers.addAll(propertyNames);
 
             addRow(wb, rowNumber++, true, headers.toArray(String[]::new));
@@ -64,7 +70,7 @@ public class XLSSampleExportHelper extends AbstractXLSExportHelper
                                 "FALSE", parents, children));
 
                 final Map<String, String> properties = sample.getProperties();
-                sampleValues.addAll(propertyCodes.stream()
+                sampleValues.addAll(propertyCodeToTypeMap.entrySet().stream()
                         .map(getPropertiesMappingFunction(textFormatting, properties))
                         .collect(Collectors.toList()));