diff --git a/src/main/java/no/nibio/vips/logic/entity/Observation.java b/src/main/java/no/nibio/vips/logic/entity/Observation.java
index 863a6be53cf41ac3278c12cb6f182341bd7fecea..1e8027b0595316fa42e4f7a312f514aeb8dd0c64 100755
--- a/src/main/java/no/nibio/vips/logic/entity/Observation.java
+++ b/src/main/java/no/nibio/vips/logic/entity/Observation.java
@@ -691,6 +691,8 @@ public class Observation implements Serializable, no.nibio.vips.observation.Obse
         }
         return new ObservationListItem(
                 this.getObservationId(),
+                this.userId,
+                this.user != null ? this.user.getFullName() : null,
                 this.getObservationTimeSeriesId(),
                 this.getTimeOfObservation(),
                 this.getOrganismId(),
diff --git a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
index c8d96e9477c78f3cac0cb482c7168e210f084eb1..0d9c0f09189b5ed1e42c857df8748a611b141114 100755
--- a/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
+++ b/src/main/java/no/nibio/vips/logic/entity/VipsLogicUser.java
@@ -143,6 +143,12 @@ public class VipsLogicUser implements Serializable, Comparable{
         this.lastName = lastName;
     }
 
+    @JsonIgnore
+    @Transient
+    public String getFullName() {
+        return firstName + " " + lastName;
+    }
+
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "vipsLogicUser", fetch=FetchType.EAGER)
     @XmlTransient
     @JsonIgnore
diff --git a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
index 463da57b11f2b4966cd75e3d16d8990f2950122e..7ba4386cc08c8a77c18dc94621cce7539cd049c3 100644
--- a/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
+++ b/src/main/java/no/nibio/vips/logic/entity/rest/ObservationListItem.java
@@ -28,6 +28,8 @@ import no.nibio.vips.observationdata.ObservationDataSchema;
  */
 public class ObservationListItem implements Comparable{
     private Integer observationId, observationTimeSeriesId, organismId, cropOrganismId;
+    private Integer observerId;
+    private String observerName;
     private Date timeOfObservation;
     private String organismName, cropOrganismName;
     private String observationTimeSeriesLabel;
@@ -42,6 +44,8 @@ public class ObservationListItem implements Comparable{
 
     public ObservationListItem(
             Integer observationId,
+            Integer observerId,
+            String observerName,
             Integer observationTimeSeriesId,
             Date timeOfObservation,
             Integer organismId,
@@ -59,6 +63,8 @@ public class ObservationListItem implements Comparable{
             ObservationDataSchema observationDataSchema
     ){
         this.observationId = observationId;
+        this.observerId = observerId;
+        this.observerName = observerName;
         this.observationTimeSeriesId = observationTimeSeriesId;
         this.timeOfObservation = timeOfObservation;
         this.organismId = organismId;
@@ -101,6 +107,34 @@ public class ObservationListItem implements Comparable{
         this.observationId = observationId;
     }
 
+    /**
+     * @return The ID of the observer
+     */
+    public Integer getObserverId() {
+        return observerId;
+    }
+
+    /**
+     * @param observerId The ID to set
+     */
+    public void setObserverId(Integer observerId) {
+        this.observerId = observerId;
+    }
+
+    /**
+     * @return The full name of the observer
+     */
+    public String getObserverName() {
+        return observerName;
+    }
+
+    /**
+     * @param observerName The observer name to set
+     */
+    public void setObserverName(String observerName) {
+        this.observerName = observerName;
+    }
+
     /**
      * @return the observationTimeSeriesId
      */
diff --git a/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java b/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java
index 2a68e68af240bf195e3221fb462e74b8e634da67..a639e56fb524697577af3d538c5fd1cf0b2b8db7 100644
--- a/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java
+++ b/src/main/java/no/nibio/vips/logic/util/ExcelFileGenerator.java
@@ -24,11 +24,13 @@ public final class ExcelFileGenerator {
 
     private static final int COL_INDEX_DATE = 0;
     private static final int COL_INDEX_LOCATION = 1;
-    private static final int COL_INDEX_ORGANISM = 2;
-    private static final int COL_INDEX_CROP_ORGANISM = 3;
-    private static final int COL_INDEX_HEADING = 4;
-    private static final int COL_INDEX_DESCRIPTION = 5;
-    private static final int COL_START_INDEX_DATA = 6;
+    private static final int COL_INDEX_OBSERVER_ID = 2;
+    private static final int COL_INDEX_OBSERVER_NAME = 3;
+    private static final int COL_INDEX_ORGANISM = 4;
+    private static final int COL_INDEX_CROP_ORGANISM = 5;
+    private static final int COL_INDEX_HEADING = 6;
+    private static final int COL_INDEX_DESCRIPTION = 7;
+    private static final int COL_START_INDEX_DATA = 8;
 
     public static byte[] generateExcel(VipsLogicUser user, ULocale locale, List<ObservationListItem> observations) throws IOException {
         ResourceBundle rb = ResourceBundle.getBundle("no.nibio.vips.logic.i18n.vipslogictexts", locale.toLocale());
@@ -174,6 +176,8 @@ public final class ExcelFileGenerator {
         Row headerRow = sheet.createRow(0);
         headerRow.createCell(COL_INDEX_DATE).setCellValue(rb.getString("timeOfObservation"));
         headerRow.createCell(COL_INDEX_LOCATION).setCellValue(rb.getString("location"));
+        headerRow.createCell(COL_INDEX_OBSERVER_ID).setCellValue(rb.getString("observerId"));
+        headerRow.createCell(COL_INDEX_OBSERVER_NAME).setCellValue(rb.getString("observer"));
         headerRow.createCell(COL_INDEX_ORGANISM).setCellValue(rb.getString("organism"));
         headerRow.createCell(COL_INDEX_CROP_ORGANISM).setCellValue(rb.getString("cropOrganismId"));
         headerRow.createCell(COL_INDEX_HEADING).setCellValue(rb.getString("observationHeading"));
@@ -196,6 +200,8 @@ public final class ExcelFileGenerator {
         Row row = sheet.createRow(rowIndex);
         row.createCell(COL_INDEX_DATE).setCellValue(localDateOfObservation.format(DATE_FORMATTER));
         row.createCell(COL_INDEX_LOCATION).setCellValue(pointOfInterestName);
+        row.createCell(COL_INDEX_OBSERVER_ID).setCellValue(item.getObserverId());
+        row.createCell(COL_INDEX_OBSERVER_NAME).setCellValue(item.getObserverName());
         row.createCell(COL_INDEX_ORGANISM).setCellValue(item.getOrganismName());
         row.createCell(COL_INDEX_CROP_ORGANISM).setCellValue(item.getCropOrganismName());
         row.createCell(COL_INDEX_HEADING).setCellValue(item.getObservationHeading());
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
index 7ad797d99f3104b5d4eb6739d06f09316118b934..4173a36fefb3bec5c95ff50f44ef186e9bd6c86e 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts.properties
@@ -602,6 +602,8 @@ observedDateOfFirstCatch = Observed date of first catch
 
 observedValue = Observed value
 
+observerId = Observer ID
+
 observer = Observer
 
 older = Older
diff --git a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
index cbb0beb9c8901c5960d5e8a728789b4b012c2cad..36e5f7897646287b0253d570192a7f1a545a750e 100755
--- a/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
+++ b/src/main/resources/no/nibio/vips/logic/i18n/vipslogictexts_nb.properties
@@ -602,6 +602,8 @@ observedDateOfFirstCatch = Observert dato for f\u00f8rste fellefangst
 
 observedValue = Observert verdi
 
+observerId = Observat\u00f8r-Id
+
 observer = Observat\u00f8r
 
 older = Eldre