Wie man E-Mails nach Excel / Google Sheets exportiert

Wenn Sie Ihre E-Mails in einer Tabellenkalkulation benötigen, zeigen wir Ihnen genau, wie das geht. Es gibt Apps, die Ihre E-Mail-Nachrichten und die extrahierten Daten parsen und in ein Google-Spreadsheet exportieren. ActorAi kann Ihnen dabei ebenfalls helfen.

Hier ist eine knappe Liste häufigerer Anwendungsfälle für den Export von E-Mails nach Excel oder Google Spreadsheets:

  • Bestellungen und Versandbenachrichtigungen exportieren.
  • E-Mail-Leads für CRM- oder Datenbankaktualisierungen exportieren.
  • Bounced E-Mail-Adressen für die Listenverwaltung parsen.
  • Offene Probleme oder Anfragen mit Teams über gemeinsame Tabellen teilen.
  • Strukturierte E-Mail-Daten in Datenbanken oder Geschäftsanwendungen importieren.
  • Wichtige Geschäftsemails sichern und archivieren.
  • Verteilerlisten aus Kontakten und Adressen erstellen.
  • Finanz- und Ausgabeninformationen für Berichte extrahieren.

E-Mails von Gmail in Google Sheets exportieren

Option A – Mit Google Workspace-Add-on (einfachste Methode)

  • Google Sheets öffnen → Erweiterungen → Add-ons.
  • Nach dem Add-on „Gmail to Sheets“ suchen (wählen Sie eines, das Ihren Anforderungen entspricht).
  • Installieren und Gmail-Konto verbinden.
  • Label/Ordner oder Suchfilter auswählen.
  • Export ausführen → die Daten erscheinen in Ihrem Sheet.
  • Tipp: Autoaktualisierung einrichten, um täglich zu aktualisieren.

Option B – Mit Google Apps Script (DIY-Methode)

  • Zieht E-Mails, die einer Gmail-Suche entsprechen (Label, from:, subject:, after:, usw.).
  • Schreibt sie in das aktive Tabellenblatt mit sauberen Spalten
  • Fügt ein benutzerdefiniertes Menü hinzu: E-Mail-Export → Export ausführen
  • Ermöglicht die Steuerung von: Suchabfrage, max. E-Mails und ob Nachrichteninhalte eingeschlossen werden sollen

Google Apps Script einrichten (DIY-Methode zum Export nach Excel)

  1. Öffnen Sie ein neues Google Sheet.
  2. Erweiterungen → Apps Script.
  3. Löschen Sie beliebigen Code und fügen Sie das untenstehende Skript ein.
  4. Klicken Sie Speichern Sie, dann Ausführen → onOpen() um das benutzerdefinierte Menü hinzuzufügen.
  5. Zurück im Sheet, gehen Sie zu E-Mail-Export → Tabellenblatt einrichten (es erstellt einen Konfigurations-Tab und Kopfzeilen).
  6. Geben Sie Ihre Suche ein in Config!B2 (Beispiele unten), dann E-Mail-Export → Export ausführen.
/**************************************
 * Gmail → Google Sheets Exporter
 * Simple, DYI method for tech advanced.
 **************************************/

const CONFIG_SHEET = 'Config';
const OUTPUT_SHEET = 'Emails';
const PROPERTY_STORE = PropertiesService.getDocumentProperties();

function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Email Export')
    .addItem('Setup sheet', 'setupSheet')
    .addItem('Run export', 'exportEmails')
    .addToUi();
}

function setupSheet() {
  const ss = SpreadsheetApp.getActive();
  // Config sheet
  let conf = ss.getSheetByName(CONFIG_SHEET);
  if (!conf) conf = ss.insertSheet(CONFIG_SHEET);
  conf.clear();

  conf.getRange('A1').setValue('Setting');
  conf.getRange('B1').setValue('Value');

  const rows = [
    ['Search query', 'label:inbox newer_than:30d'], // B2
    ['Max emails to fetch (per run)', 500],          // B3 (limit to avoid timeouts)
    ['Include message body? (true/false)', false],   // B4
    ['Body max characters', 5000],                  // B5
    ['Continue from last run? (true/false)', false]  // B6
  ];
  conf.getRange(2, 1, rows.length, 2).setValues(rows);
  conf.autoResizeColumns(1, 2);

  // Output sheet
  let out = ss.getSheetByName(OUTPUT_SHEET);
  if (!out) out = ss.insertSheet(OUTPUT_SHEET);
  out.clear();

  const headers = [
    'Date',
    'From',
    'To',
    'Subject',
    'Snippet',
    'Thread ID',
    'Message ID',
    'Labels',
    'Has Attachments',
    'Thread Link',
    'Message Link',
    'Body (optional)'
  ];
  out.getRange(1, 1, 1, headers.length).setValues([headers]);
  out.setFrozenRows(1);
  out.autoResizeColumns(1, headers.length);

  SpreadsheetApp.getUi().alert('Setup complete. Enter your query in Config!B2, then run "Email Export → Run export".');
}

function getConfig_() {
  const ss = SpreadsheetApp.getActive();
  const conf = ss.getSheetByName(CONFIG_SHEET);
  if (!conf) throw new Error('Config sheet missing. Run "Setup sheet" first.');

  const getVal = (row) => conf.getRange(row, 2).getValue();

  return {
    query: String(getVal(2) || '').trim(),
    maxEmails: Number(getVal(3) || 500),
    includeBody: String(getVal(4)).toLowerCase() === 'true',
    bodyMaxChars: Number(getVal(5) || 5000),
    continueFromLast: String(getVal(6)).toLowerCase() === 'true',
  };
}

function exportEmails() {
  const cfg = getConfig_();
  if (!cfg.query) throw new Error('Please fill a Gmail search in Config!B2.');

  const ss = SpreadsheetApp.getActive();
  const out = ss.getSheetByName(OUTPUT_SHEET) || ss.insertSheet(OUTPUT_SHEET);

  // Resume support (optional)
  let startIndex = 0;
  if (cfg.continueFromLast) {
    startIndex = Number(PROPERTY_STORE.getProperty('startIndex') || 0);
  } else {
    PROPERTY_STORE.deleteProperty('startIndex');
    // If not continuing, start fresh by clearing previous rows (keep header)
    const lastRow = out.getLastRow();
    if (lastRow > 1) out.getRange(2, 1, lastRow - 1, out.getLastColumn()).clearContent();
  }

  const BATCH_SIZE_THREADS = 100; // Gmail returns threads, we’ll page through them
  const rows = [];
  let fetchedEmails = 0;

  while (fetchedEmails < cfg.maxEmails) {
    const threads = GmailApp.search(cfg.query, startIndex, BATCH_SIZE_THREADS);
    if (!threads.length) break;

    for (const thread of threads) {
      const msgs = thread.getMessages();
      for (const msg of msgs) {
        if (fetchedEmails >= cfg.maxEmails) break;

        const date = msg.getDate();
        const from = msg.getFrom();
        const to = msg.getTo();
        const subject = msg.getSubject() || '';
        const snippet = msg.getPlainBody().slice(0, 120).replace(/\s+/g, ' ').trim();
        const threadId = thread.getId();
        const msgId = msg.getId();
        const labels = thread.getLabels().map(l => l.getName()).join(', ');
        const hasAttachments = msg.getAttachments().length > 0;

        const threadLink = `https://mail.google.com/mail/u/0/#all/${threadId}`;
        const messageLink = `https://mail.google.com/mail/u/0/#inbox/${msgId}`;

        let body = '';
        if (cfg.includeBody) {
          // Prefer plain body; fallback to HTML stripped
          body = msg.getPlainBody();
          if (!body) {
            const html = msg.getBody();
            body = stripHtml_(html);
          }
          if (cfg.bodyMaxChars > 0 && body.length > cfg.bodyMaxChars) {
            body = body.slice(0, cfg.bodyMaxChars) + '…';
          }
        }

        rows.push([
          date,
          from,
          to,
          subject,
          snippet,
          threadId,
          msgId,
          labels,
          hasAttachments,
          threadLink,
          messageLink,
          body
        ]);

        fetchedEmails++;
      }
      if (fetchedEmails >= cfg.maxEmails) break;
    }

    startIndex += BATCH_SIZE_THREADS;
    // Safety: avoid 6-minute execution limit
    if (Utilities.getRemainingDailyQuota && rows.length >= 5000) break;
  }

  if (rows.length) {
    out.insertRowsAfter(out.getLastRow() || 1, rows.length);
    out.getRange(out.getLastRow() - rows.length + 1, 1, rows.length, rows[0].length).setValues(rows);
    out.autoResizeColumns(1, out.getLastColumn());
  }

  if (cfg.continueFromLast) {
    PROPERTY_STORE.setProperty('startIndex', String(startIndex));
  }

  SpreadsheetApp.getUi().alert(`Export complete: ${fetchedEmails} emails added.`);
}

function stripHtml_(html) {
  // Lightweight HTML → text
  return String(html || '')
    .replace(/<style[\s\S]*?<\/style>/gi, '')
    .replace(/<script[\s\S]*?<\/script>/gi, '')
    .replace(/<[^>]+>/g, ' ')
    .replace(/\s+/g, ' ')
    .trim();
}

Einfache Skriptversion für Google Sheets.

function exportSimple() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const query = 'label:inbox newer_than:7d';
  const threads = GmailApp.search(query, 0, 100);
  const rows = [['Date','From','Subject','Snippet','Thread Link']];
  threads.forEach(t => {
    t.getMessages().forEach(m => {
      rows.push([
        m.getDate(),
        m.getFrom(),
        m.getSubject(),
        m.getPlainBody().slice(0,120).replace(/\s+/g,' ').trim(),
        'https://mail.google.com/mail/u/0/#all/' + t.getId()
      ]);
    });
  });
  sheet.clear().getRange(1,1,rows.length,rows[0].length).setValues(rows);
}

E-Mails von Outlook nach Excel exportieren

1. Verwenden Sie die Exportieren-nach-CSV-Funktion in Outlook:

  • Navigieren Sie zu  Datei > Öffnen und Exportieren > Importieren/Exportieren.
  • Wählen Sie  In eine Datei exportieren  und wählen Sie  Kommagetrennte Werte (CSV).
  • Wählen Sie den E-Mail-Ordner, den Sie exportieren möchten (z. B. Posteingang).
  • Wenn Sie dazu aufgefordert werden, klicken Sie  Benutzerdefinierte Felder zuordnen  um nur die spezifischen E-Mail-Attribute auszuwählen, die Sie benötigen, wie z. B.  Von,  An,  Betreff,  Empfangsdatum, usw.
  • Schließen Sie den Export ab und öffnen Sie die CSV-Datei in Excel, um nur die Metadaten anzuzeigen.

2. Filtern und kopieren Sie textbasierte Metadaten in Outlook:

  • Erstellen Sie in Outlook eine benutzerdefinierte Ansicht, in der nur die gewünschten Spalten sichtbar sind (z. B. Absender, Datum usw.).
  • Wählen Sie die E-Mails aus, kopieren Sie sie und fügen Sie sie dann in Excel ein.
  • Diese Methode kann bei kleinen Mengen schneller sein, besonders wenn Sie nur bestimmte Header-Informationen oder Metadaten exportieren.

3. Verwenden Sie Power Query für dynamischen Export:

  • Power Query in Excel kann direkt eine Verbindung zu Outlook herstellen und nur die erforderlichen Felder filtern.
  • Diese Methode ermöglicht fortlaufende Aktualisierungen und Automatisierung, während die Daten minimal bleiben.
  1. Öffnen Sie Excel und gehen Sie auf die Registerkarte Daten.
  2. Wählen Sie Daten abrufen > Aus anderen Quellen > Aus Microsoft Exchange.
  3. Geben Sie Ihre Outlook-E-Mail-Adresse ein und melden Sie sich an, um eine Verbindung herzustellen.
  4. Wählen Sie den Postfachordner (z. B. Posteingang) aus, der die gewünschten E-Mails enthält.
  5. Wählen Sie im Power Query-Editor nur die Spalten aus, die Sie benötigen, wie Betreff, Von, An und Empfangsdatum.
  6. Wenden Sie ggf. Filter an, um E-Mails einzugrenzen, z. B. nach Datum oder Absender.
  7. Klicken Sie auf Schließen & Laden, um die gefilterten E-Mail-Daten in eine Excel-Tabelle zu importieren.
  8. Aktualisieren Sie die Abfrage jederzeit, um Ihre Daten mit neuen oder geänderten E-Mails zu aktualisieren.

Hinweis: Wir planen, dies innerhalb von Actor als E-Mail-App zu integrieren. Derzeit prüfen wir das Interesse.

Hinweis: Der Export nach Excel vs. Google Spreadsheets macht keinen Unterschied. Beides sind hervorragende Tools von Microsoft und Google.

Jetzt haben Sie Ihre E-Mails in einer Tabelle – bereit zur Analyse, zum Filtern oder zum Teilen. Wenn Sie das regelmäßig benötigen, brauchen Sie eine Art Automatisierung, die dies in gewünschten Intervallen wiederholt.

Hallo, ich bin ACTOR und wurde entwickelt, um vielbeschäftigten Berufstätigen wie Ihnen das Leben leichter zu machen.

Meine Mission ist es, der beste digitale Partner zu sein, den du je hattest: Ich helfe dir, deinen Zeitplan einzuhalten, deine E-Mails zu verwalten und dich auf das zu konzentrieren, was wirklich zählt.

Videos: Erste Schritte

Ich lerne ständig dazu und verbessere mich, weil ich deine Bedürfnisse mit jeder Interaktion besser verstehen möchte.

Sieh mich als deinen verlässlichen Begleiter, der dir Stress abnimmt und dir mehr von deiner wertvollen Zeit zurückgibt.
Gemeinsam arbeiten wir deine Aufgabenliste ab, behalten den Überblick und machen jeden Tag produktiver.

Überlass mir die Kleinigkeiten, damit du dich auf das große Ganze konzentrieren kannst. Bereit für einen entspannteren Tag? Legen wir los!

Probier mich hier aus

Hinweis: Die Vergleiche und Informationen in diesem Artikel beziehungsweise auf dieser Seite beruhen auf öffentlich zugänglichen Angaben und sind möglicherweise nicht vollständig. Alle genannten Produkt- und Markennamen sind Marken oder eingetragene Marken ihrer jeweiligen Eigentümer.