Verwenden integrierter JavaScript-Objekte in Office Skripts

JavaScript bietet mehrere integrierte Objekte, die Sie in Ihren Office Skripts verwenden können, unabhängig davon, ob Sie Skripts in JavaScript oder TypeScript (eine Obermenge von JavaScript) erstellen. In diesem Artikel wird beschrieben, wie Sie einige der integrierten JavaScript-Objekte in Office Skripts für Excel im Web verwenden können.

Hinweis

Eine vollständige Liste aller integrierten JavaScript-Objekte finden Sie im Artikel zu den integrierten Standardobjekten von Mozilla.

Array

Das Array-Objekt bietet eine standardisierte Methode zum Arbeiten mit Arrays in Ihrem Skript. Arrays sind zwar Standard-JavaScript-Konstrukte, beziehen sich jedoch auf zwei Hauptmöglichkeiten auf Office Skripts: Bereiche und Sammlungen.

Arbeiten mit Bereichen

Bereiche enthalten mehrere zweidimensionale Arrays, die den Zellen in diesem Bereich direkt zugeordnet werden. Diese Arrays enthalten spezifische Informationen zu jeder Zelle in diesem Bereich. Gibt beispielsweise Range.getValues alle Werte in diesen Zellen zurück (mit den Zeilen und Spalten der zweidimensionalen Arrayzuordnung zu den Zeilen und Spalten dieses Arbeitsblatt-Unterabschnitts). Range.getFormulas und Range.getNumberFormats andere häufig verwendete Methoden sind, die Arrays wie Range.getValues .

Das folgende Skript durchsucht den A1:D4-Bereich nach einem beliebigen Zahlenformat, das ein "$" enthält. Das Skript legt die Füllfarbe in diesen Zellen auf "Gelb" fest.

function main(workbook: ExcelScript.Workbook) {
  // Get the range From A1 to D4.
  let range = workbook.getActiveWorksheet().getRange("A1:D4");

  // Get the number formats for each cell in the range.
  let rangeNumberFormats = range.getNumberFormats();
  // Iterate through the arrays of rows and columns corresponding to those in the range.
  rangeNumberFormats.forEach((rowItem, rowIndex) => {
    rangeNumberFormats[rowIndex].forEach((columnItem, columnIndex) => {
      // Treat the numberFormat as a string so we can do text comparisons.
      let columnItemText = columnItem as string;
      if (columnItemText.indexOf("$") >= 0) {
        // Set the cell's fill to yellow.
        range.getCell(rowIndex, columnIndex).getFormat().getFill().setColor("yellow");
      }
    });
  });
}

Arbeiten mit Sammlungen

Viele Excel-Objekte sind in einer Auflistung enthalten. Die Auflistung wird von der Office Scripts-API verwaltet und als Array verfügbar gemacht. Beispielsweise sind alle Shapes in einem Arbeitsblatt in einer Shape[] enthalten, die von der Methode zurückgegeben Worksheet.getShapes wird. Sie können dieses Array verwenden, um Werte aus der Auflistung zu lesen, oder Sie können über die Methoden des übergeordneten Objekts auf bestimmte Objekte get* zugreifen.

Hinweis

Fügen Sie diesen Sammlungsarrays keine Objekte manuell hinzu oder entfernen Sie diese. Verwenden Sie die add Methoden für die übergeordneten Objekte und die delete Methoden für die Auflistungstypobjekte. Fügen Sie z. B. einem Arbeitsblatt mit der Methode eine Tabelle Worksheet.addTable hinzu, und entfernen Sie die Table using Table.delete -Methode.

Im folgenden Skript wird der Typ jedes Shapes im aktuellen Arbeitsblatt protokolliert.

function main(workbook: ExcelScript.Workbook) {
  // Get the current worksheet.
  let selectedSheet = workbook.getActiveWorksheet();

  // Get the shapes in this worksheet.
  let shapes = selectedSheet.getShapes();

  // Log the type of every shape in the collection.
  shapes.forEach((shape) => {
    console.log(shape.getType());
  });
}

Das folgende Skript löscht die älteste Form im aktuellen Arbeitsblatt.

function main(workbook: ExcelScript.Workbook) {
  // Get the current worksheet.
  let selectedSheet = workbook.getActiveWorksheet();

  // Get the first (oldest) shape in the worksheet.
  // Note that this script will thrown an error if there are no shapes.
  let shape = selectedSheet.getShapes()[0];

  // Remove the shape from the worksheet.
  shape.delete();
}

Datum

Das Date-Objekt bietet eine standardisierte Methode zum Arbeiten mit Datumsangaben in Ihrem Skript. Date.now() generiert ein Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit, was beim Hinzufügen von Zeitstempeln zur Dateneingabe Ihres Skripts hilfreich ist.

Mit dem folgenden Skript wird dem Arbeitsblatt das aktuelle Datum hinzugefügt. Beachten Sie, dass Excel mithilfe der toLocaleDateString Methode den Wert als Datum erkennt und das Zahlenformat der Zelle automatisch ändert.

function main(workbook: ExcelScript.Workbook) {
  // Get the range for cell A1.
  let range = workbook.getActiveWorksheet().getRange("A1");

  // Get the current date and time.
  let date = new Date(Date.now());

  // Set the value at A1 to the current date, using a localized string.
  range.setValue(date.toLocaleDateString());
}

Der Abschnitt "Arbeiten mit Datumsangaben" in den Beispielen enthält weitere datumsbezogene Skripts.

Mathematik

Das Math-Objekt stellt Methoden und Konstanten für allgemeine mathematische Vorgänge bereit. Diese bieten viele Funktionen, die auch in Excel verfügbar sind, ohne dass das Berechnungsmodul der Arbeitsmappe verwendet werden muss. Dadurch wird verhindert, dass das Skript die Arbeitsmappe abfragen muss, was die Leistung verbessert.

Das folgende Skript Math.min wird verwendet, um die kleinste Zahl im A1:D4-Bereich zu suchen und zu protokollieren. Beachten Sie, dass in diesem Beispiel davon ausgegangen wird, dass der gesamte Bereich nur Zahlen und keine Zeichenfolgen enthält.

function main(workbook: ExcelScript.Workbook) {
  // Get the range from A1 to D4.
  let comparisonRange = workbook.getActiveWorksheet().getRange("A1:D4");

  // Load the range's values.
  let comparisonRangeValues = comparisonRange.getValues();

  // Set the minimum values as the first value.
  let minimum = comparisonRangeValues[0][0];

  // Iterate over each row looking for the smallest value.
  comparisonRangeValues.forEach((rowItem, rowIndex) => {
    // Iterate over each column looking for the smallest value.
    comparisonRangeValues[rowIndex].forEach((columnItem) => {
      // Use `Math.min` to set the smallest value as either the current cell's value or the previous minimum.
      minimum = Math.min(minimum, columnItem);
    });
  });

  console.log(minimum);
}

Die Verwendung externer JavaScript-Bibliotheken wird nicht unterstützt.

Office Skripts unterstützen nicht die Verwendung externer Drittanbieterbibliotheken. Ihr Skript kann nur die integrierten JavaScript-Objekte und die Office Scripts-APIs verwenden.

Siehe auch