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) ausführen. In diesem Artikel wird beschrieben, wie Sie einige der integrierten JavaScript-Objekte in Office-Skripts für Excel verwenden.

Hinweis

Eine vollständige Liste aller integrierten JavaScript-Objekte finden Sie im Mozilla Standard-Artikel integrierte Objekte .

Array

Das Array-Objekt bietet eine standardisierte Möglichkeit, mit Arrays in Ihrem Skript zu arbeiten. Arrays sind zwar JavaScript-Standardkonstrukte, aber sie beziehen sich auf zwei Hauptarten auf Office-Skripts: Bereiche und Sammlungen.

Arbeiten mit Bereichen

Bereiche enthalten mehrere zweidimensionale Arrays, die den Zellen in diesem Bereich direkt zugeordnet sind. Diese Arrays enthalten spezifische Informationen zu jeder Zelle in diesem Bereich. Gibt beispielsweise Range.getValues alle Werte in diesen Zellen zurück (wobei die Zeilen und Spalten des zweidimensionalen Arrays den Zeilen und Spalten dieses Arbeitsblattunterabschnitts zugeordnet sind). Range.getFormulas und Range.getNumberFormats sind weitere häufig verwendete Methoden, die Arrays wie Range.getValueszurückgeben.

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

Hinweis

Fügen Sie objekte diesen Auflistungsarrays nicht manuell hinzu oder entfernen Sie sie aus diesen. Verwenden Sie die add Methoden für die übergeordneten Objekte und die delete Methoden für die Objekte vom Typ Auflistung. Fügen Sie z. B. einem Arbeitsblatt mit der Worksheet.addTable -Methode eine Tabelle hinzu, und entfernen Sie mithilfe von TableTable.delete.

Das folgende Skript protokolliert den Typ jeder Form im aktuellen Arbeitsblatt.

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 Möglichkeit, mit Datumsangaben in Ihrem Skript zu arbeiten. Date.now() generiert ein -Objekt mit dem aktuellen Datum und der aktuellen Uhrzeit, was beim Hinzufügen von Zeitstempeln zur Dateneingabe Ihres Skripts nützlich ist.

Das folgende Skript fügt dem Arbeitsblatt das aktuelle Datum hinzu. 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 der Beispiele enthält weitere datumsbezogene Skripts.

Mathematik

Das Math-Objekt stellt Methoden und Konstanten für gängige mathematische Operationen bereit. Diese bieten viele Funktionen, die auch in Excel verfügbar sind, ohne dass die Berechnungs-Engine der Arbeitsmappe verwendet werden muss. Dadurch wird verhindert, dass Ihr Skript die Arbeitsmappe abfragen muss, was die Leistung verbessert.

Das folgende Skript verwendet Math.min , 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 die Verwendung externer Bibliotheken von Drittanbietern nicht. Ihr Skript kann nur die integrierten JavaScript-Objekte und die Office-Skript-APIs verwenden.

Siehe auch