diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
index 89c334d66bed808dc473f8bcd7ce5dfbc79d21a6..c1a4f3469afd7a024ba62e6874c7212a682b240f 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/xls/export/helper/XLSSampleExportHelper.java
@@ -72,7 +72,7 @@ public class XLSSampleExportHelper extends AbstractXLSEntityExportHelper<Sample,
     protected String[] getAttributeNames(final Sample entity)
     {
         return new String[] { "$", "Identifier", "Code", "Space", "Project", "Experiment",
-                "Auto generate code", "Parents", "Children" };
+                "Auto generate code", "Parents", "Children", "Registrator", "Registration Date", "Modifier", "Modification Date" };
     }
 
     @Override
@@ -89,6 +89,8 @@ public class XLSSampleExportHelper extends AbstractXLSEntityExportHelper<Sample,
         fetchOptions.withChildren();
         fetchOptions.withType().withPropertyAssignments().withPropertyType();
         fetchOptions.withProperties();
+        fetchOptions.withRegistrator();
+        fetchOptions.withModifier();
         return api.getSamples(sessionToken, samplePermIds, fetchOptions).values();
     }
 
@@ -136,6 +138,22 @@ public class XLSSampleExportHelper extends AbstractXLSEntityExportHelper<Sample,
                         .map(child -> child.getIdentifier().getIdentifier())
                         .collect(Collectors.joining("\n"));
             }
+            case "Registrator":
+            {
+                return sample.getRegistrator().getUserId();
+            }
+            case "Registration Date":
+            {
+                return DATE_FORMAT.format(sample.getRegistrationDate());
+            }
+            case "Modifier":
+            {
+                return sample.getModifier().getUserId();
+            }
+            case "Modification Date":
+            {
+                return DATE_FORMAT.format(sample.getModificationDate());
+            }
             default:
             {
                 return null;
@@ -155,7 +173,9 @@ public class XLSSampleExportHelper extends AbstractXLSEntityExportHelper<Sample,
                         .collect(Collectors.joining("\n")),
                 sample.getChildren() == null ? "" : sample.getChildren().stream()
                         .map(child -> child.getIdentifier().getIdentifier())
-                        .collect(Collectors.joining("\n")));
+                        .collect(Collectors.joining("\n")), sample.getRegistrator().getUserId(),
+                DATE_FORMAT.format(sample.getRegistrationDate()), sample.getModifier().getUserId(),
+                DATE_FORMAT.format(sample.getModificationDate()));
     }
 
     @Override
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/SampleExpectations.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/SampleExpectations.java
index 0edee9c4f93107dab5f6929c83f14b85ae76668b..882d3b87e664639630f426f5e23a3add39176fc3 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/SampleExpectations.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/SampleExpectations.java
@@ -16,6 +16,8 @@
 package ch.ethz.sis.openbis.generic.server.xls.export;
 
 import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.function.Function;
@@ -30,6 +32,7 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.EntityKind;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.entitytype.id.EntityTypePermId;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.Experiment;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.experiment.id.ExperimentIdentifier;
+import ch.ethz.sis.openbis.generic.asapi.v3.dto.person.Person;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.Project;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.project.id.ProjectIdentifier;
 import ch.ethz.sis.openbis.generic.asapi.v3.dto.property.DataType;
@@ -106,6 +109,19 @@ class SampleExpectations extends Expectations
                 defaultExperiment.setCode("DEFAULT");
                 defaultExperiment.setIdentifier(new ExperimentIdentifier("/DEFAULT/DEFAULT/DEFAULT"));
 
+                final Calendar calendar = Calendar.getInstance();
+                calendar.set(2023, Calendar.MARCH, 10, 17, 23, 44);
+                final Date registrationDate = calendar.getTime();
+
+                calendar.set(2023, Calendar.MARCH, 11, 17, 23, 44);
+                final Date modificationDate = calendar.getTime();
+
+                final Person registrator = new Person();
+                registrator.setUserId("system");
+
+                final Person modifier = new Person();
+                modifier.setUserId("test");
+
                 final Sample[] samples = new Sample[5];
 
                 samples[0] = new Sample();
@@ -119,6 +135,10 @@ class SampleExpectations extends Expectations
                 samples[0].setExperiment(experiment);
                 samples[0].setProperty("$NAME", "Bench");
                 samples[0].setProperty("$STORAGE.BOX_NUM", "9999");
+                samples[0].setRegistrator(registrator);
+                samples[0].setModifier(modifier);
+                samples[0].setRegistrationDate(registrationDate);
+                samples[0].setModificationDate(modificationDate);
 
                 samples[1] = new Sample();
                 samples[1].setType(sampleType);
@@ -132,6 +152,10 @@ class SampleExpectations extends Expectations
                 samples[1].setExperiment(experiment);
                 samples[1].setProperty("$NAME", "Default Storage");
                 samples[1].setProperty("$STORAGE.BOX_NUM", "1111");
+                samples[1].setRegistrator(registrator);
+                samples[1].setModifier(modifier);
+                samples[1].setRegistrationDate(registrationDate);
+                samples[1].setModificationDate(modificationDate);
 
                 samples[2] = new Sample();
                 samples[2].setType(defaultSampleType);
@@ -144,6 +168,10 @@ class SampleExpectations extends Expectations
                 samples[2].setProject(defaultProject);
                 samples[2].setExperiment(defaultExperiment);
                 samples[2].setProperty("$NAME", "Default");
+                samples[2].setRegistrator(registrator);
+                samples[2].setModifier(modifier);
+                samples[2].setRegistrationDate(registrationDate);
+                samples[2].setModificationDate(modificationDate);
 
                 samples[3] = new Sample();
                 samples[3].setType(sampleType);
@@ -157,6 +185,10 @@ class SampleExpectations extends Expectations
                 samples[3].setExperiment(experiment);
                 samples[3].setProperty("$NAME", "Child 1");
                 samples[3].setProperty("$STORAGE.BOX_NUM", "1");
+                samples[3].setRegistrator(registrator);
+                samples[3].setModifier(modifier);
+                samples[3].setRegistrationDate(registrationDate);
+                samples[3].setModificationDate(modificationDate);
 
                 samples[4] = new Sample();
                 samples[4].setType(sampleType);
@@ -170,6 +202,10 @@ class SampleExpectations extends Expectations
                 samples[4].setExperiment(experiment);
                 samples[4].setProperty("$NAME", "Child 2");
                 samples[4].setProperty("$STORAGE.BOX_NUM", "2");
+                samples[4].setRegistrator(registrator);
+                samples[4].setModifier(modifier);
+                samples[4].setRegistrationDate(registrationDate);
+                samples[4].setModificationDate(modificationDate);
 
                 samples[0].setChildren(List.of(samples[3], samples[4]));
                 samples[1].setChildren(List.of(samples[3], samples[4]));
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/XLSExportTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/XLSExportTest.java
index aab49b71d3d8fe00ea467073feb292d8390752e0..39e86a4679a25d7a2d35324780daf18a28dc118a 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/XLSExportTest.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/XLSExportTest.java
@@ -90,26 +90,26 @@ public class XLSExportTest
     public static final Map<String, Map<String, List<Map<String, String>>>> EXPORT_FIELDS =
             Map.of(
                     DATASET.toString(), Map.of(
-                        "ATTACHMENT", List.of(
-                                Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Code"),
-                                Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Sample"),
-                                Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(), FIELD_ID_KEY, "$ATTACHMENT")),
-                        "RAW_DATA", List.of(
+                            "ATTACHMENT", List.of(
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Code"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Sample"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(), FIELD_ID_KEY, "$ATTACHMENT")),
+                            "RAW_DATA", List.of(
                                     Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(), FIELD_ID_KEY, "$NAME"),
                                     Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Experiment"),
                                     Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Code"),
                                     Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(), FIELD_ID_KEY, "NOTES"))
                     ),
                     EXPERIMENT.toString(), Map.of(
-                        "COLLECTION", List.of(
-                                Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Identifier"),
-                                Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Project"),
-                                Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(),
-                                        FIELD_ID_KEY, "$DEFAULT_OBJECT_TYPE")),
-                        "DEFAULT_EXPERIMENT", List.of(Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(),
-                                            FIELD_ID_KEY, "FINISHED_FLAG"),
-                            Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Identifier"),
-                            Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Code"))
+                            "COLLECTION", List.of(
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Identifier"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Project"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(),
+                                            FIELD_ID_KEY, "$DEFAULT_OBJECT_TYPE")),
+                            "DEFAULT_EXPERIMENT", List.of(Map.of(FIELD_TYPE_KEY, FieldType.PROPERTY.toString(),
+                                                FIELD_ID_KEY, "FINISHED_FLAG"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Identifier"),
+                                    Map.of(FIELD_TYPE_KEY, FieldType.ATTRIBUTE.toString(), FIELD_ID_KEY, "Code"))
                     ),
                     SAMPLE.toString(), Map.of(
                             "DEFAULT", List.of(
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/resources/export-sample.xlsx b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/resources/export-sample.xlsx
index 68a3239cd91e3ef2a78a60237b8d55c707bf8bb7..cb9c9457ec2a77c15e536c8cd0b40bccd9b05901 100644
Binary files a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/resources/export-sample.xlsx and b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/xls/export/resources/export-sample.xlsx differ