Lavorare con le celle GridWeb

Accesso alle celle nel foglio di lavoro

Questo argomento discute delle celle, esaminando la caratteristica più basilare di GridWeb: l’accesso alle celle.

Ogni foglio di lavoro contiene un oggetto GridCells, una raccolta di oggetti GridCell. Un oggetto GridCell rappresenta una cella in Aspose.Cells.GridWeb. È possibile accedere a qualsiasi cella utilizzando GridWeb. Ci sono due metodi preferiti:

Di seguito, viene discusso ogni approccio.

Utilizzo del nome della cella

Tutte le celle hanno un nome univoco. Ad esempio, A1, A2, B1, B2, ecc. Aspose.Cells.GridWeb consente agli sviluppatori di accedere a qualsiasi cella desiderata utilizzando il nome della cella. Basta passare il nome della cella (come indice) alla collezione GridCells del GridWorksheet.

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");

Utilizzo degli indici di riga e colonna

Una cella può anche essere riconosciuta dalla sua posizione in termini di indici di riga e colonna. Basta passare gli indici di riga e colonna di una cella alla collezione GridCells del GridWorksheet. Questo approccio è più veloce rispetto a quello precedente.

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);

Accesso e modifica del valore di una cella

Accesso alle celle nel foglio di lavoro discusso l’accesso alle celle. Questo argomento estende quella discussione per mostrare come accedere e modificare i valori della cella utilizzando l’API GridWeb.

Accesso e modifica del valore di una cella

Valori stringa

Prima di accedere e modificare il valore di una cella, è necessario sapere come accedere alle celle. Per i dettagli sui diversi approcci per l’accesso alle celle, fare riferimento a Accesso alle celle nel foglio di lavoro.

Ogni cella ha una proprietà chiamata getStringValue(). Una volta che una cella è stata accessa, gli sviluppatori possono accedere al metodo getStringValue() per accedere al valore della stringa della cella.

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");

Tutti i tipi di valori

Aspose.Cells.GridWeb fornisce anche un metodo speciale, putValue, per ogni cella. Con questo metodo, è possibile inserire o modificare qualsiasi tipo di valore (Booleano, int, double, DateTime e stringa) in una cella.

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());

C’è anche una versione sovraccaricata del metodo putValue che può prendere qualsiasi tipo di valore in formato stringa e convertirlo automaticamente in un tipo di dati appropriato. Per farlo, passare il valore Booleano true a un altro parametro del metodo putValue come mostrato di seguito nell’esempio.

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);

Aggiunta di formule alle celle

La funzionalità più preziosa offerta da Aspose.Cells.GridWeb è il supporto per formule o funzioni. Aspose.Cells.GridWeb ha il suo motore di formule che calcola le formule nei fogli di lavoro. Aspose.Cells.GridWeb supporta sia funzioni o formule integrate che definite dall’utente. Questo argomento discute l’aggiunta di formule alle celle utilizzando l’API Aspose.Cells.GridWeb in dettaglio.

Come aggiungere e calcolare una formula?

È possibile aggiungere, accedere e modificare formule nelle celle utilizzando la proprietà della Formula di una cella. Aspose.Cells.GridWeb supporta formule definite dall’utente che vanno da semplici a complesse. Tuttavia, un gran numero di funzioni o formule integrate (simili a Microsoft Excel) sono anche fornite con Aspose.Cells.GridWeb. Per vedere l’elenco completo delle funzioni integrate, consultare questo elenco delle funzioni supportate.

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)");

Formula aggiunta alla cella B3 ma non calcolata da GridWeb

todo:image_alt_text

Nello screenshot sopra, puoi vedere che è stata aggiunta una formula a B3 ma non è stata ancora calcolata. Per calcolare tutte le formule, chiama il metodo calculateFormula della collezione GridWorksheet del controllo GridWeb dopo aver aggiunto le formule ai fogli di lavoro come mostrato di seguito.

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();

Gli utenti possono anche calcolare le formule cliccando su Invia.

Cliccando sul pulsante Invia di GridWeb

todo:image_alt_text

IMPORTANTE: Se un utente clicca sui pulsanti Salva o Annulla, o sulle schede dei fogli, tutte le formule vengono calcolate automaticamente da GridWeb.

Risultato della formula dopo il calcolo

todo:image_alt_text

Riferimento a celle da altri fogli di lavoro

Utilizzando Aspose.Cells.GridWeb, è possibile fare riferimento ai valori memorizzati in fogli di lavoro diversi nelle loro formule, creando formule complesse.

La sintassi per fare riferimento a un valore di cella da un foglio di lavoro diverso è NomeFoglio!NomeCella.

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");

Creare una convalida dei dati in una GridCell di GridWeb

Aspose.Cells.GridWeb consente di aggiungere Convalida dei dati utilizzando il metodo GridWorksheet.getValidations().add(). Utilizzando questo metodo, devi specificare l'Intervallo di celle. Ma se vuoi creare una Convalida dei dati in una singola GridCell allora puoi farlo direttamente utilizzando il metodo GridCell.createValidation(). Allo stesso modo, puoi rimuovere la Convalida dei dati da una GridCell utilizzando il metodo GridCell.removeValidation().

Il seguente codice di esempio crea una Convalida dei dati in una cella B3. Se inserisci un valore che non è compreso tra 20 e 40, la cella B3 mostrerà un Errore di convalida sotto forma di XXXX rosso come mostrato in questo screenshot.

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);

Creazione di pulsanti di comando personalizzati

Aspose.Cells.GridWeb contiene pulsanti speciali come Invia, Salva e Annulla. Tutti questi pulsanti svolgono compiti specifici per Aspose.Cells.GridWeb. È anche possibile aggiungere pulsanti personalizzati che eseguono compiti personalizzati. Questo argomento spiega come utilizzare questa funzionalità.

Il seguente codice di esempio spiega come creare un pulsante di comando personalizzato e come gestire il suo evento di click. Puoi utilizzare qualsiasi icona per il tuo pulsante di comando personalizzato. A scopo illustrativo, abbiamo utilizzato quest’icona.

todo:image_alt_text

Come puoi vedere nello screenshot seguente, quando l’utente fa clic sul pulsante di comando personalizzato, viene aggiunto un testo nella cella A1 che dice “Il mio pulsante di comando personalizzato è stato premuto."

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);

Gestione degli eventi del pulsante di comando personalizzato

Il seguente codice di esempio spiega come gestire gli eventi del pulsante di comando personalizzato.

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;

Formattazione delle celle per GridWeb

Possibili Scenari di Utilizzo

GridWeb ora supporta gli utenti nell’inserire i dati della cella nel formato percentuale come 3% e i dati nella cella saranno automaticamente formattati come 3.00%. Tuttavia, sarà necessario impostare lo stile della cella nel formato percentuale, che può essere GridTableItemStyle.NumberType a 9 o 10. Il numero 9 formattarà 3% come 3%, ma il numero 10 formattarà 3% come 3.00%

Inserisci i dati della cella della scheda di lavoro di GridWeb nel formato percentuale

Il seguente codice di esempio imposta la cella A1 GridTableItemStyle.NumberType come 10, pertanto i dati di input 3% verranno automaticamente formattati come 3.00% come mostrato nello screenshot.

todo:image_alt_text

Codice di Esempio

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);