Skip to main content
Skip table of contents

setFormula

Versionshinweise

20.2

Code

CODE
void setFormula(Spreadsheet spreadsheet, String cellName, String formula, boolean setCellStyle) throws Exception
void setFormula(Spreadsheet spreadsheet, int column, int row, String formula, boolean setCellStyle) throws Exception


Beschreibung

Schreiben einer Formel in die angegebene Zelle der übergebenen Tabellenkalkulationsdatei.
Hinweise

  • Die Formel muss gemäß Excel-Syntax mit dem Operator = beginnen
  • Bei der Verwendung von Funktionen müssen die englischsprachigen Bezeichnungen angegeben werden, z.B: SUM anstelle SUMME
    Ansonsten wird die Formel nicht ausgewertet und bleibt ungültig. 
  • Aus Gründen der Performance erfolgt mit Verwendung von setFormula keine automatische Auswertung der Formel. Falls innerhalb des Skripts auf das Ergebnis der Formel zugegriffen werden soll, ist zuvor die Methode SpreadsheetUtils.calculateFormula aufzurufen.
  • Die Verwendung des Addressoperators $ ist in der übergebenen Formel zulässig (z.B.. =\$A\$4).
    Hinweise: 
    • Der Addressoperator muss im Skripteditor mit einem Backslash "\" maskiert werden. 
    • Die Verwendung des Addressoperators wird im Parameter cellName nicht unterstützt! 

Beispiele für eine Formel:

  • =SUM(A4:A7)

  • =A4 + A5

  • =\$B\$1 * B2
  • =A1 + 'C2UMSATZ2'!A8

  • =[Name einer Zelle],   z.B. =CONF_SEARCHDIALOG

Nicht unterstützt werden:

  • =SUMME(A4:A7)   (Verwendung von deutschen Funktionsnamen)


Parameter

  • spreadsheet
    Repräsentiert die Tabellenkalkulationsdatei
  • cellName
    Name der benannten Zelle (z.B. "CONF_SEARCHDIALOG") oder eine Zellenangabe in der A1-Schreibweise (z.B. "A3")
  • column
    Numerischer Spaltenindex der Zelle (erste Spalte beginnt mit 1)
  • row
    Numerischer Zeilenindex der Zelle (erste Zeile beginnt mit 1)
  • formula
    Formel für die Zelle
  • setCellStyle
    Optionaler Parameter zur Zellformatierung
    true - Es wird eine Standardformatierung basierend auf dem Datentyp des Werts verwendet, z.B. Datumswerte werden als Datum in Excel ausgegeben (Default)
    false - Es wird die in der Exceldatei definierte Zellformatierung verwendet

Exception 
Wird im Regelfall geworfen, wenn die angegebene benannte Zelle nicht vorhanden ist oder die angegebene Formel ungültig ist, z.B: =Test=.

Beispiele

CODE
ISpreadsheetResultOpen openResult = SpreadsheetUtils.openFile("C:\\Work\\myFirstSpreadsheet.xlsm");
if (!openResult.isSuccessful())
{
    ScriptUtils.debug("Error: " + openResult.getFileName() + " - " + openResult.getErrorCode());
    /* do furthermore */
    return;
}
Spreadsheet excel = null;
try
{
    excel = openResult.getSpreadsheet();
    SpreadsheetUtils.setFormula(excel, 3, 4, "=SUM(A4:A7)");
    SpreadsheetUtils.setFormula(excel, "B1", "=A4 + A5");
    SpreadsheetUtils.setFormula(excel, "B2", "=A8 + 'C2UMSATZ2'!A8");
    SpreadsheetUtils.setFormula(excel, "B3", "=\$B\$1");
    String nameOfCell = "CONF_SEARCHNAME";
    if (SpreadsheetUtils.existsCellName(excel, nameOfCell))
    {
        SpreadsheetUtils.setFormula(excel, "C1", "="+nameOfCell);
    }
    /* Note: If the result of the calculation is to be accessed within the script, 
     * the method SpreadsheetUtils.calculateFormula must be called first.*/
    SpreadsheetUtils.save(excel);
}
finally
{
    SpreadsheetUtils.close(excel);
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.