Arbeiten mit Cells GridWeb

Zugriff auf Zellen im Arbeitsblatt

In diesem Thema werden Zellen behandelt und die grundlegendste Funktion von GridWeb betrachtet: der Zugriff auf Zellen.

Jedes Arbeitsblatt enthält ein GridCells-Objekt, das eine Sammlung von GridCell-Objekten darstellt. Ein GridCell-Objekt repräsentiert eine Zelle in Aspose.Cells.GridWeb. Es ist möglich, auf jede Zelle über GridWeb zuzugreifen. Es gibt zwei bevorzugte Methoden:

Im Folgenden wird jede Methode erläutert.

Verwendung des Zellnamens

Alle Zellen haben einen eindeutigen Namen. Zum Beispiel A1, A2, B1, B2 usw. Aspose.Cells.GridWeb ermöglicht Entwicklern den Zugriff auf beliebige gewünschte Zellen, indem sie den Zellnamen (als Index) an die GridCells-Sammlung des GridArbeitsblatts übergeben.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");

Verwendung von Zeilen- und Spaltenindizes

Eine Zelle kann auch anhand ihrer Position in Bezug auf Zeilen- und Spaltenindizes erkannt werden. Geben Sie einfach die Zeilen- und Spaltenindizes einer Zelle an die GridCells-Sammlung des GridArbeitsblatts weiter. Dieser Ansatz ist schneller als der zuvor genannte.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet using its row and column indices
GridCell cell = sheet.getCells().get(0, 1);

Zugriff und Änderung des Werts einer Zelle

Zugriff auf Zellen im Arbeitsblatt behandelt den Zugriff auf Zellen. Dieses Thema erweitert die Diskussion, um zu zeigen, wie auf Zellwerte mit Hilfe der GridWeb-API zugegriffen und diese geändert werden können.

Zugriff und Ändern des Zellwerts

Zeichenfolgenwerte

Bevor Sie auf den Wert einer Zelle zugreifen und diesen ändern, müssen Sie wissen, wie Sie auf Zellen zugreifen. Für Details zu den verschiedenen Ansätzen zum Zugriff auf Zellen siehe Zugriff auf Zellen im Arbeitsblatt.

Jede Zelle hat eine Eigenschaft namens getStringValue(). Sobald auf eine Zelle zugegriffen wird, können Entwickler die Methode getStringValue() aufrufen, um auf den Zeichenfolgenwert der Zelle zuzugreifen.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Inserting & modifying the string value of "B1" cell
cell.putValue("Hello Aspose.Grid");

Alle Arten von Werten

Aspose.Cells.GridWeb bietet auch eine spezielle Methode, putValue, für jede Zelle. Mit dieser Methode ist es möglich, jeden Wertetyp (Boolean, int, double, DateTime und String) in eine Zelle einzufügen oder zu ändern.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Putting a value in "B1" cell
cell.putValue(Calendar.getInstance());

Es gibt auch eine überladene Version der putValue-Methode, die jeden beliebigen Wert in Zeichenfolgenformat akzeptieren und automatisch in einen geeigneten Datentyp konvertieren kann. Um dies zu erreichen, übergeben Sie dem putValue der Methode einen weiteren Parameter mit dem Wert true, wie im folgenden Beispiel gezeigt.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Accessing "B1" cell of the worksheet
GridCell cell = sheet.getCells().get("B1");
//Putting a numeric value as string in "B1" cell that will be converted to a suitable data type automatically
cell.putValue("19.4", true);

Hinzufügen von Formeln zu den Zellen

Das wertvollste Feature, das von Aspose.Cells.GridWeb angeboten wird, ist die Unterstützung von Formeln oder Funktionen. Aspose.Cells.GridWeb verfügt über seinen eigenen Formel-Engine, die die Formeln in Arbeitsblättern berechnet. Aspose.Cells.GridWeb unterstützt sowohl eingebaute als auch benutzerdefinierte Funktionen oder Formeln. Dieses Thema erläutert ausführlich, wie Formeln mithilfe der Aspose.Cells.GridWeb-API zu Zellen hinzugefügt werden.

Wie füge ich eine Formel hinzu und berechne sie?

Es ist möglich, Formeln in Zellen hinzuzufügen, darauf zuzugreifen und sie zu ändern, indem Sie die Formel-Eigenschaft einer Zelle verwenden. Aspose.Cells.GridWeb unterstützt benutzerdefinierte Formeln von einfach bis komplex. Es sind jedoch auch viele eingebaute Funktionen oder Formeln (ähnlich wie in Microsoft Excel) in Aspose.Cells.GridWeb verfügbar. Eine vollständige Liste der unterstützten Funktionen finden Sie unter diesem Liste der unterstützten Funktionen.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Putting some values to cells
sheet.getCells().get("A1").putValue("1st Value");
sheet.getCells().get("A2").putValue("2nd Value");
sheet.getCells().get("A3").putValue("Sum");
sheet.getCells().get("B1").putValue(125.56);
sheet.getCells().get("B2").putValue(23.93);
//Calculating all formulas added in worksheets
gridweb.getWorkSheets().calculateFormula();
//Adding a simple formula to "B3" cell
sheet.getCells().get("B3").setFormula("=SUM(B1:B2)");

Formel zu Zelle B3 hinzugefügt, aber nicht durch GridWeb berechnet

todo:image_alt_text

Auf dem obigen Screenshot ist zu sehen, dass eine Formel zu B3 hinzugefügt wurde, aber bisher nicht berechnet wurde. Um alle Formeln zu berechnen, rufen Sie nach dem Hinzufügen von Formeln zu Arbeitsblättern die Methode calculateFormula der GridWorksheetCollection des GridWeb-Steuerung auf, wie unten gezeigt.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Calculating all formulas added in worksheets
gridweb.getWorkSheets().calculateFormula();

Benutzer können auch Formeln durch Klicken auf Senden berechnen.

Klicken Sie auf die Schaltfläche Senden von GridWeb

todo:image_alt_text

WICHTIG: Wenn ein Benutzer auf die Schaltflächen Speichern oder Rückgängig oder auf die Blattregisterkarten klickt, werden alle Formeln automatisch von GridWeb berechnet.

Formelergebnis nach Berechnung

todo:image_alt_text

Bezugnahme auf Zellen aus anderen Arbeitsblättern

Mit Aspose.Cells.GridWeb ist es möglich, Werte in verschiedenen Arbeitsblättern in ihren Formeln zu referenzieren und komplexe Formeln zu erstellen.

Die Syntax zum Referenzieren eines Zellwerts aus einem anderen Arbeitsblatt lautet Arbeitsblattname!Zellenname.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Accessing the worksheet of the Grid that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Adding a bit complex formula to "A1" cell
sheet.getCells().get("A1").setFormula("=SUM(F1:F7)/ AVERAGE (E1:E7)-Sheet1!C6");

Erstellen einer Datenvalidierung in einer GridCell von GridWeb

Aspose.Cells.GridWeb ermöglicht es Ihnen, Datenvalidierungen mithilfe der GridWorksheet.getValidations().add() Methode hinzuzufügen. Mit dieser Methode müssen Sie den Zellenbereich angeben. Wenn Sie jedoch eine Datenvalidierung in einer einzelnen GridCell erstellen möchten, können Sie dies direkt mit der GridCell.createValidation() Methode tun. Ebenso können Sie eine Datenvalidierung aus einer GridCell mit der GridCell.removeValidation() Methode entfernen.

Der folgende Beispielcode erstellt eine Datenvalidierung in einer Zelle B3. Wenn Sie einen Wert eingeben, der nicht zwischen 20 und 40 liegt, wird die Zelle B3 Validierungsfehler in Form von Roten XXXX anzeigen, wie im Screenshot gezeigt.

todo:image_alt_text

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Access first worksheet
GridWorksheet sheet = gridweb.getWorkSheets().get(0);
//Access cell B3
GridCell cell = sheet.getCells().get("B3");
//Add validation inside the gridcell
//Any value which is not between 20 and 40 will cause error in a gridcell
GridValidation val = cell.createValidation(GridValidationType.WHOLE_NUMBER, true);
val.setFormula1("=20");
val.setFormula2("=40");
val.setOperator(OperatorType.BETWEEN);
val.setShowError(true);
val.setShowInput(true);

Erstellen von benutzerdefinierten Befehlsschaltflächen

Aspose.Cells.GridWeb enthält spezielle Schaltflächen wie Senden, Speichern und Rückgängig. All diese Schaltflächen führen spezifische Aufgaben für Aspose.Cells.GridWeb aus. Es ist auch möglich, benutzerdefinierte Schaltflächen hinzuzufügen, die benutzerdefinierte Aufgaben ausführen. In diesem Thema wird erläutert, wie diese Funktion verwendet wird.

Der folgende Beispielcode erläutert, wie eine benutzerdefinierte Befehlsschaltfläche erstellt und ihr Klickereignis behandelt wird. Sie können jedes Symbol für Ihre benutzerdefinierte Befehlsschaltfläche verwenden. Zu Illustrationszwecken haben wir dieses Bildsymbol verwendet.

todo:image_alt_text

Wie Sie auf dem folgenden Screenshot sehen können, fügt der Benutzer beim Klicken auf die benutzerdefinierte Befehlsschaltfläche einen Text in Zelle A1 ein, der lautet: “Meine benutzerdefinierte Befehlsschaltfläche wurde angeklickt."

todo:image_alt_text

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Instantiating a CustomCommandButton object
CustomCommandButton button = new CustomCommandButton();
//Setting the command for button
button.setCommand("MyButton");
//Setting text of the button
button.setText("MyButton");
//Setting tooltip of the button
button.setToolTip("My Custom Command Button");
//Setting image URL of the button
button.setImageUrl("icon.png");
//Adding button to CustomCommandButtons collection of GridWeb
gridweb.getCustomCommandButtons().add(button);

Eventbehandlung der benutzerdefinierten Befehlsschaltfläche

Der folgende Beispielcode erläutert, wie die Eventbehandlung der benutzerdefinierten Befehlsschaltfläche durchgeführt wird.

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Create custom command event handler to handle the click event
CustomCommandEventHandler cceh=new CustomCommandEventHandler(){
public void handleCellEvent(Object sender, String command){
//Identifying a specific button by checking its command
if (command.equals("MyButton"))
{
//Accessing the cells collection of the worksheet that is currently active
GridWorksheet sheet = gridweb.getWorkSheets().get(gridweb.getActiveSheetIndex());
//Putting value to "A1" cell
sheet.getCells().get("A1").putValue("My Custom Command Button is Clicked.");
sheet.getCells().setColumnWidth(0, 50);
}
}
};
//Assign the custom command event handler created above to gridweb
gridweb.CustomCommand = cceh;

Zellformatierung für GridWeb

Mögliche Verwendungsszenarien

GridWeb unterstützt jetzt Benutzer dabei, Zelldaten im Prozentformat wie 3% einzugeben, und die Daten in der Zelle werden automatisch als 3,00% formatiert. Sie müssen jedoch den Zellstil auf Prozentformat setzen, welches entweder GridTableItemStyle.NumberType 9 oder 10 ist. Die Nummer 9 wird 3% als 3% formatieren, aber die Nummer 10 wird 3% als 3,00% formatieren.

Eingabe von Zelldaten des GridWeb-Arbeitsblatts im Prozentformat

Der folgende Beispielcode setzt die Zelle A1 GridTableItemStyle.NumberType auf 10. Daher wird die Eingabedaten 3% automatisch als 3,00% formatiert, wie im Screenshot gezeigt.

todo:image_alt_text

Beispielcode

For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
//Access cell A1 of first gridweb worksheet
GridCell cellA1 = gridweb.getWorkSheets().get(0).getCells().get("A1");
//Access cell style and set its number format to 10 which is a Percentage 0.00% format
GridTableItemStyle st = cellA1.getStyle();
st.setNumberType(10);
cellA1.setStyle(st);