POWER AUTOMATE Konvertierung von CSV in Excel

Müssen Sie jeden Tag die gleichen Arbeitsschritte ausführen? Power Automate ist möglicherweise dann die Lösung dafür. Nachfolgend zeigen wir anhand eines einfachen Beispiels, was mit Power Automate möglich ist.

In diesem Artikel zeigen wir Ihnen, wie Sie mit Power Automate Zeit sparen können. Power Automate wandelt in diesem Beispiel einmal pro Tag eine csv-Datei in eine Excel-Datei um.

Power Automate ist eine Automatisierungsplattform, die von Microsoft entwickelt wurde und darauf ausgelegt ist, Arbeitsabläufe zu rationalisieren und sich wiederholende Aufgaben in verschiedenen Anwendungen und Diensten zu automatisieren. Mit Power Automate können Benutzer automatisierte Arbeitsabläufe, sogenannte Flows, erstellen, um Daten zwischen verschiedenen Systemen einfach zu integrieren, Aktionen basierend auf bestimmten Bedingungen festzulegen und letztendlich die Produktivität durch Reduzierung manueller Arbeit und Verbesserung der Gesamteffizienz zu steigern.

 

POWER AUTOMATE: Konvertierung von CSV in Excel

 

Übersicht des Flows

  • Speichern und Organisieren: Beginnen Sie damit, einen OneDrive-Ordner zu erstellen, um Ihre CSV-Dateien neben einer leeren Excel-Arbeitsmappe aufzubewahren.
  • Skript: Erstellen Sie ein Office Script mit dem Namen „CSV konvertieren“, um CSV-Daten in einen von Excel lesbaren Bereich einzufügen. Dieses Skript fungiert als Motor hinter dem gesamten Konvertierungsprozess.
  • Power Automate-Flow: Nutzen Sie Power Automate, um den Prozess zu automatisieren. Erstellen Sie einen zeitgesteuerten Cloud-Flow, der CSV-Dateien in Ihrem OneDrive-Ordner lokalisiert, das Office Script für den Datentransfer verwendet und neue Excel-Arbeitsmappen im .xlsx-Format generiert.

Beispieldateien für einen problemlosen Start

Um den Einstieg in Power Automate zu erleichtern, haben wir eine herunterladbare Zip-Datei vorbereitet, die eine „Template.xlsx“ -Datei und zwei Beispieldateien im CSV-Format enthält. Extrahieren Sie diese Dateien in Ihren OneDrive-Ordner.

convert-csv-example

Implementierung des Skripts

Kopieren Sie das bereitgestellte TypeScript in Ihre Beispieldatei und benennen Sie es „CSV konvertieren“. Dieses Skript fügt durch Kommas getrennte Werte in eine Arbeitsmappe ein.

/**
 * Konvertiert eingehende CSV-Daten in einen Bereich und fügt sie der Arbeitsmappe hinzu.
 */
function main(workbook: ExcelScript.Workbook, csv: string) {
  let sheet = workbook.getWorksheet("Sheet1");

  // Entfernt Windows \r-Zeichen.
  csv = csv.replace(/\r/g, "");

  // Teilt jede Zeile in eine Zeile auf.
  // HINWEIS: Dies teilt Werte, die Zeichen für neue Zeilen enthalten.
  let rows = csv.split("\n");

  /*
   * Für jede Zeile werden die durch Kommas getrennten Abschnitte abgeglichen.
   * Weitere Informationen zur Verwendung von regulären Ausdrücken zum Parsen von CSV-Dateien finden Sie in diesem Stack Overflow-Beitrag: https://stackoverflow.com/a/48806378/9227753
   */
  const csvMatchRegex = /(?:,|\n|^)("(?:(?:"")*[^"]*)*"|[^",\n]*|(?:\n|$))/g
  rows.forEach((value, index) => {
    if (value.length > 0) {
      let row = value.match(csvMatchRegex);
    
      // Überprüft auf Leerstellen am Anfang der Zeile.
      if (row[0].charAt(0) === ',') {
        row.unshift("");
      }
  
      // Entfernt das vorangehende Komma und die umgebenden Anführungszeichen.
      row.forEach((cell, index) => {
        cell = cell.indexOf(",") === 0 ? cell.substring(1) : cell;
        row[index] = cell.indexOf("\"") === 0 && cell.lastIndexOf("\"") === cell.length - 1 ? cell.substring(1, cell.length - 1) : cell;
      });
    
      // Erstellt ein 2D-Array mit einer Zeile.
      let data: string[][] = [];
      data.push(row);
  
      // Platziert die Daten im Arbeitsblatt.
      let range = sheet.getRangeByIndexes(index, 0, 1, data[0].length);
      range.setValues(data);
    }
  });

  // Fügen Sie beliebige Formatierungen oder Tabellenerstellungen hinzu, die Sie wünschen.
}

Power Automate: Einrichtung

Melden Sie sich bei Power Automate an und erstellen Sie einen neuen zeitgesteuerten Cloud-Flow.

  • Öffnen Sie Power Automate und erstellen Sie einen neuen zeitgesteuerten Cloud-Flow.
  • Legen Sie den Flow so fest, dass er alle „1“ Tag wiederholt wird, und wählen Sie „Erstellen“.

Holen Sie sich die Vorlagendatei für Excel

  • Greifen Sie auf den Flow-Builder zu und fügen Sie die Aktion „Dateiinhalt abrufen“ für die Datei „Vorlage.xlsx“ („/output/Vorlage.xlsx“) hinzu.
  • Benennen Sie den Schritt in „Get Excel template“.Benennen Sie den Schritt in "Get Excel template".

Dateien im Ordner „output“ auflisten

  • Holen Sie alle Dateien im Ordner „output“ mit der Aktion „Dateien im Ordner auflisten“.

  • Fügen Sie eine Bedingung hinzu, damit der Flow nur für CSV-Dateien ausgeführt wird. Fügen Sie die Bedingungskontrollaktion hinzu. Verwenden Sie die folgenden Werte für die Bedingung. Wählen Sie einen Wert: Name (dynamischer Inhalt aus Dateien im Ordner auflisten). Beachten Sie, dass dieser dynamische Inhalt mehrere Ergebnisse hat, sodass die Bedingung von einem For-Each-Steuerelement umgeben ist. endet mit (aus der Dropdown-Liste) Wählen Sie einen Wert: .csv

 

Verarbeiten Sie .csv-Dateien

  • Der Rest des Ablaufs befindet sich im Abschnitt „Wenn ja“, da wir nur auf CSV-Dateien reagieren möchten. Rufen Sie eine einzelne CSV-Datei ab, indem Sie eine Aktion hinzufügen, die die Aktion „Dateiinhalt abrufen“ des OneDrive for Business-Connectors verwendet. Verwenden Sie die ID aus dem dynamischen Inhalt der Listendateien im Ordner.

Datei: ID (dynamischer Inhalt aus dem Schritt „Dateien im Ordner auflisten“) Benennen Sie den neuen Schritt.

  • Dateiinhalt abrufen“ in „CSV-Datei abrufen“ um. Dies hilft dabei, diese Datei von der Excel-Vorlage zu unterscheiden.

  • Erstellen Sie die neue XLSX-Datei und verwenden Sie dabei die Excel-Vorlage als Basisinhalt. Fügen Sie eine Aktion hinzu, die die Aktion „Datei erstellen“ des OneDrive for Business-Connectors verwendet. Verwenden Sie die folgenden Werte.

Ordnerpfad: /output
Dateiname: Name ohne Erweiterung.xlsx (wählen Sie den dynamischen Inhalt „Name ohne Erweiterung“ aus der Liste „Dateien im Ordner“ und geben Sie danach manuell „.xlsx“ ein)
Dateiinhalt: Dateiinhalt (dynamischer Inhalt aus der Vorlage „Excel abrufen“)

  • Führen Sie das Skript aus, um Daten in die neue Arbeitsmappe zu kopieren. Fügen Sie die Aktion „Skript ausführen“ des Excel Online (Business)-Connectors hinzu. Verwenden Sie die folgenden Werte für die Aktion.

Speicherort: OneDrive for Business
Dokumentbibliothek: OneDrive
Datei: ID (dynamischer Inhalt aus Datei erstellen)
Skript: CSV konvertieren
csv: Dateiinhalt (dynamischer Inhalt aus der CSV-Datei abrufen)

Speichern Sie den Fluss.

  • Der Flow-Designer sollte wie im folgenden Bild aussehen.

  • Verwenden Sie die Schaltfläche „Testen“ auf der Flow-Editor-Seite oder führen Sie den Flow über die Registerkarte „Meine Flows“ aus. Stellen Sie sicher, dass Sie den Zugriff erlauben, wenn Sie dazu aufgefordert werden.
  • Im Ordner „output“ sollten Sie neben den ursprünglichen CSV-Dateien auch neue XLSX-Dateien finden. Die neuen Arbeitsmappen enthalten dieselben Daten wie die CSV-Dateien.

 

Fazit

Zusammenfassend bietet Power Automate eine zeiteffiziente Automatisierungslösungen. Obwohl es potenzielle Herausforderungen wie Zeitüberschreitungsprobleme bei großen CSV-Dateien und Konfigurationsanpassungen für nicht standardmäßige Trennzeichen geben kann, können diese durch sorgfältige Codierung zur Verarbeitung von Unicode-Zeichen behoben werden. Insgesamt empfehlen wir Power Automate mal auszuprobieren, da das Potential riesig ist.

 

Benötigen Sie einen Microsoft 365-Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes sowie generell Microsoft-Produkte ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).
Haben Sie ein Excel-Problem? Benötigen Sie einen Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen