Freigeben über


Ausführen eines Scripts für alle Excel-Dateien in einem Ordner

Dieses Projekt führt eine Reihe von Automatisierungsaufgaben für alle Dateien aus, die sich in einem Ordner auf OneDrive for Business befinden. Es kann auch in einem SharePoint-Ordner verwendet werden. Es führt Berechnungen für die Excel-Dateien aus, fügt Formatierungen hinzu und fügt einen Kommentar ein, der einem Kollegen @mentions .

Excel-Beispieldateien

Laden Sie highlight-alert-excel-files.zip für alle Arbeitsmappen herunter, die Sie für dieses Beispiel benötigen. Extrahieren Sie diese Dateien in einen Ordner mit dem Titel Sales. Fügen Sie das folgende Skript zu Ihrer Skriptsammlung hinzu, um das Beispiel selbst auszuprobieren!

Beispielcode: Hinzufügen von Formatierungen und Einfügen eines Kommentars

Dies ist das Skript, das für jede einzelne Arbeitsmappe ausgeführt wird. Verwenden Sie in Excel Dasneue Skriptautomatisieren>, um den Code einzufügen und das Skript zu speichern. Speichern Sie es als Skript überprüfen, und probieren Sie das Beispiel selbst aus!

function main(workbook: ExcelScript.Workbook) {
  // Get the table named "Table1" in the workbook.
  const table1 = workbook.getTable("Table1");

  // If the table is empty, end the script.
  const rowCount = table1.getRowCount();
  if (rowCount === 0) {
    return;
  }

  // Force the workbook to be completely recalculated.
  workbook.getApplication().calculate(ExcelScript.CalculationType.full);

  // Get the "Amount Due" column from the table.
  const amountDueColumn = table1.getColumnByName('Amount Due');
  const amountDueValues = amountDueColumn.getRangeBetweenHeaderAndTotal().getValues();

  // Find the highest amount that's due.
  let highestValue = amountDueValues[0][0];
  let row = 0;
  for (let i = 1; i < amountDueValues.length; i++) {
    if (amountDueValues[i][0] > highestValue) {
      highestValue = amountDueValues[i][0];
      row = i;
    }
  }

  let highestAmountDue = table1.getColumn("Amount due").getRangeBetweenHeaderAndTotal().getRow(row);

  // Set the fill color to yellow for the cell with the highest value in the "Amount Due" column.
  highestAmountDue.getFormat().getFill().setColor("FFFF00");

  // Insert an @mention comment in the cell.
  workbook.addComment(highestAmountDue, {
    mentions: [{
      email: "AdeleV@M365x904181.OnMicrosoft.com",
      id: 0,
      name: "Adele Vance"
    }],
    richContent: "<at id=\"0\">Adele Vance</at> Please review this amount"
  }, ExcelScript.ContentType.mention);
}

Power Automate-Flow: Ausführen des Skripts für jede Arbeitsmappe im Ordner

Dieser Flow führt das Skript für jede Arbeitsmappe im Ordner "Sales" aus.

  1. Erstellen Sie einen neuen Instant Cloud Flow.

  2. Wählen Sie Manuell einen Flow auslösen und dann Erstellen aus.

  3. Wählen Sie im Flow-Generator die + Schaltfläche und dann Aktion hinzufügen aus. Verwenden Sie die Aktion Dateien in Ordnern auflistendes OneDrive for Business-Connectors. Verwenden Sie die folgenden Werte für die Aktion.

    • Ordner: /Sales (von der Dateiauswahl ausgewählt)

    Der abgeschlossene OneDrive for Business-Connector in Power Automate.

  4. Stellen Sie sicher, dass nur Arbeitsmappen ausgewählt sind. Fügen Sie eine neue Bedingungssteuerelementaktion hinzu. Verwenden Sie die folgenden Werte für die Bedingung.

    • Wählen Sie einen Wert aus: Name (dynamischer Inhalt aus Listendateien im Ordner)
    • endet mit: (aus der Dropdownliste)
    • Wert auswählen: .xlsx

    Der Power Automate-Bedingungsblock, der nachfolgende Aktionen auf jede Datei anwendet.

  5. Fügen Sie unter dem Branch True eine neue Aktion hinzu. Wählen Sie die Aktion Skript ausführen des Excel Online (Business)-Connectors aus. Verwenden Sie die folgenden Werte für die Aktion.

    • Location: OneDrive for Business
    • Document Library: OneDrive
    • Datei: ID (dynamischer Inhalt aus Listendateien im Ordner)
    • Skript: Skript überprüfen

    Der fertige Excel Online (Business)-Connector in Power Automate.

  6. Speichern Sie den Flow. Der Flow-Designer sollte wie in der folgenden Abbildung aussehen.

    Ein Diagramm des abgeschlossenen Flows, das zwei Schritte vor einer Bedingung und einen Schritt unter dem tatsächlichen Pfad der Bedingung zeigt.

  7. Probieren Sie es aus! Verwenden Sie die Schaltfläche Test auf der Flow-Editor-Seite, oder führen Sie den Flow über die Registerkarte Meine Flows aus. Achten Sie darauf, den Zugriff zuzulassen, wenn Sie dazu aufgefordert werden.

Schulungsvideo: Ausführen eines Skripts für alle Excel-Dateien in einem Ordner

Sehen Sie sich sudhi Ramamurthy an, wie Sie dieses Beispiel auf YouTube durchgehen.