setFormula
Versionshinweise | 20.2 |
---|
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
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);
}