Lavorare con Cells GridWeb

Accesso a Cells nel foglio di lavoro

Questo argomento discute le celle, esaminando la funzionalità 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 ciascun approccio.

Utilizzando il nome Cell

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 raccolta GridCells di 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 raccolta GridCells di GridWorksheet. Questo approccio è più veloce di 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 un numero Cell

Accesso a Cells nel foglio di lavoro discusso l’accesso alle celle. Questo argomento estende tale discussione per mostrare come accedere e modificare i valori delle celle utilizzando GridWeb API.

Accesso e modifica del valore di un Cell

Valori stringa

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

Ogni cella ha una proprietà denominata getStringValue(). Una volta effettuato l’accesso a una cella, 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 (Boolean, int, double, DateTime e string) 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());

Esiste anche una versione sovraccaricata del metodo putValue che può accettare qualsiasi tipo di valore in formato stringa e convertirlo automaticamente in un tipo di dati appropriato. Per realizzarlo, passa 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 allo Cells

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

Come aggiungere e calcolare una formula?

È possibile aggiungere, accedere e modificare le formule nelle celle utilizzando la proprietà Formula di una cella. Aspose.Cells.GridWeb supporta formule definite dall’utente che vanno dal semplice al complesso. Tuttavia, con Aspose.Cells.GridWeb viene fornito anche un gran numero di funzioni o formule incorporate (simili a Microsoft Excel). Per vedere l’elenco completo delle funzioni integrate, fare riferimento a questoelenco 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

cose da fare:immagine_alt_testo

Nello screenshot sopra, puoi vedere che una formula è stata aggiunta a B3 ma non è stata ancora calcolata. Per calcolare tutte le formule, chiama il metodo GridWorksheetCollection del controllo GridWeb calcolaFormula 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 facendo clicInvia.

Facendo clic sul pulsante Invia di GridWeb

cose da fare:immagine_alt_testo

IMPORTANTE : se un utente fa clic suSalva oAnnullare pulsanti o le schede dei fogli, tutte le formule vengono calcolate automaticamente da GridWeb.

Risultato della formula dopo il calcolo

cose da fare:immagine_alt_testo

Riferimento a Cells da Altri fogli di lavoro

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

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

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 la convalida dei dati in una GridCell di GridWeb

Aspose.Cells.GridWeb consente di aggiungereConvalida dei dati utilizzando il metodo GridWorksheet.getValidations().add(). Usando questo metodo, devi specificare il fileCell Gamma . Ma se vuoi creare una convalida dei dati in un singolo GridCell, puoi farlo direttamente usando il metodo GridCell.createValidation(). Allo stesso modo, puoi rimuovereConvalida dei dati da un GridCell utilizzando il metodo GridCell.removeValidation().

Il codice di esempio seguente crea aConvalida dei dati in una cella B3. Se inserisci un valore che non è compreso tra 20 e 40, verrà visualizzata la cella B3errore di convalida nella forma diRosso XXXX come mostrato in questo screenshot.

cose da fare:immagine_alt_testo

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 eseguono attività specifiche per Aspose.Cells.GridWeb. È anche possibile aggiungere pulsanti personalizzati che eseguono attività personalizzate. Questo argomento spiega come utilizzare questa funzione.

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

cose da fare:immagine_alt_testo

Come puoi vedere nello screenshot seguente, quando l’utente fa clic sul pulsante di comando personalizzato, aggiunge un testo nella cella A1 che dice**“È stato fatto clic sul mio pulsante di comando personalizzato."**

cose da fare:immagine_alt_testo

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 eseguire la gestione degli 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 per inserire i dati della cella in formato percentuale come 3% e i dati nella cella verranno formattati automaticamente come 3,00%. Tuttavia, dovrai impostare lo stile della cella su Percentage Format che è GridTableItemStyle.NumberType a 9 o 10. Il numero 9 formatterà il 3% come 3% ma il numero 10 formatterà il 3% come 3,00%.

Immettere i dati Cell del foglio di lavoro GridWeb in formato percentuale

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

cose da fare:immagine_alt_testo

Codice d’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);