Trabajando con Cells GridWeb

Accediendo a Cells en la hoja de trabajo

Este tema analiza las celdas y analiza la característica más básica de GridWeb: acceder a las celdas.

Cada hoja de trabajo contiene un objeto GridCells, una colección de objetos GridCell. Un objeto GridCell representa una celda en Aspose.Cells.GridWeb. Es posible acceder a cualquier celda usando GridWeb. Hay dos métodos preferidos:

A continuación, se analiza cada enfoque.

Usando Cell Nombre

Todas las celdas tienen un nombre único. Por ejemplo, A1, A2, B1, B2, etc. Aspose.Cells. GridWeb permite a los desarrolladores acceder a cualquier celda deseada usando el nombre de la celda. Simplemente pase el nombre de la celda (como un índice) a la colección GridCells de 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");

Uso de índices de fila y columna

Una celda también se puede reconocer por su ubicación en términos de índices de fila y columna. Simplemente pase los índices de fila y columna de una celda a la colección GridCells de GridWorksheet. Este enfoque es más rápido que el anterior.

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

Acceso y Modificación del Valor de un Cell

Accediendo a Cells en la hoja de trabajo habló sobre el acceso a las celdas. Este tema amplía esa discusión para mostrar cómo acceder y modificar valores de celda usando GridWeb API.

Acceso y modificación del valor de Cell

Valores de cadena

Antes de acceder y modificar el valor de una celda, debe saber cómo acceder a las celdas. Para obtener detalles sobre los diferentes enfoques para acceder a las celdas, consulteAccediendo a Cells en la hoja de trabajo.

Cada celda tiene una propiedad llamada getStringValue(). Una vez que se accede a una celda, los desarrolladores pueden acceder al método getStringValue() para acceder al valor de la cadena de celdas.

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

Todo tipo de valores

Aspose.Cells.GridWeb también proporciona un método especial, putValue, para cada celda. Con este método es posible insertar o modificar cualquier tipo de valor (Boolean, int, double, DateTime y string) en una celda.

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

También hay una versión sobrecargada del método putValue que puede tomar cualquier tipo de valor en formato de cadena y convertirlo automáticamente a un tipo de datos adecuado. Para que esto suceda, pase el valor booleano verdadero a otro parámetro del método putValue como se muestra a continuación en el ejemplo.

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

Adición de fórmulas al Cells

La característica más valiosa que ofrece Aspose.Cells.GridWeb es el soporte para fórmulas o funciones. Aspose.Cells.GridWeb tiene su propio motor de fórmulas que calcula las fórmulas en las hojas de cálculo. Aspose.Cells.GridWeb admite funciones o fórmulas integradas y definidas por el usuario. Este tema trata sobre cómo agregar fórmulas a las celdas mediante Aspose.Cells.GridWeb API en detalle.

¿Cómo agregar y calcular una fórmula?

Es posible agregar, acceder y modificar fórmulas en celdas usando la propiedad Fórmula de una celda. Aspose.Cells. GridWeb admite fórmulas definidas por el usuario que van desde simples hasta complejas. Sin embargo, una gran cantidad de funciones o fórmulas integradas (similares a Microsoft Excel) también se proporcionan con Aspose.Cells.GridWeb. Para ver la lista completa de funciones integradas, consulte estelista de funciones compatibles.

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

Fórmula agregada a la celda B3 pero no calculada por GridWeb

todo:imagen_alternativa_texto

En la captura de pantalla anterior, puede ver que se agregó una fórmula a B3 pero aún no se calculó. Para calcular todas las fórmulas, llame al método de cálculo de fórmula de GridWorksheetCollection del control GridWeb después de agregar fórmulas a las hojas de cálculo, como se muestra a continuación.

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

Los usuarios también pueden calcular fórmulas haciendo clic enEnviar.

Al hacer clic en el botón Enviar de GridWeb

todo:imagen_alternativa_texto

IMPORTANTE : si un usuario hace clic en elAhorrar oDeshacer o las pestañas de las hojas, todas las fórmulas son calculadas por GridWeb automáticamente.

Resultado de la fórmula después del cálculo

todo:imagen_alternativa_texto

Haciendo referencia a Cells de otras hojas de trabajo

Usando Aspose.Cells.GridWeb, es posible hacer referencia a valores almacenados en diferentes hojas de trabajo en sus fórmulas, creando fórmulas complejas.

La sintaxis para hacer referencia a un valor de celda de una hoja de trabajo diferente es 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");

Crear validación de datos en un GridCell de GridWeb

Aspose.Cells. GridWeb le permite agregarValidación de datos utilizando el método GridWorksheet.getValidations().add(). Usando este método, usted tiene que especificar elCell Gama . Pero si desea crear una Validación de datos en un único GridCell, puede hacerlo directamente utilizando el método GridCell.createValidation(). Del mismo modo, puede eliminarValidación de datos desde un GridCell utilizando el método GridCell.removeValidation().

El siguiente código de ejemplo crea unValidación de datos en una celda B3. Si ingresa cualquier valor que no esté entre 20 y 40, la celda B3 mostraráError de validacion en forma deRojo XXXX como se muestra en esta captura de pantalla.

todo:imagen_alternativa_texto

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

Creación de botones de comando personalizados

Aspose.Cells.GridWeb contiene botones especiales como Enviar, Guardar y Deshacer. Todos estos botones realizan tareas específicas para Aspose.Cells.GridWeb. También es posible agregar botones personalizados que realizan tareas personalizadas. Este tema explica cómo utilizar esta característica.

El siguiente código de ejemplo explica cómo crear un botón de comando personalizado y cómo controlar su evento de clic. Puede usar cualquier icono para su botón de comando personalizado. Con fines ilustrativos, utilizamos este icono de imagen.

todo:imagen_alternativa_texto

Como puede ver en la siguiente captura de pantalla, cuando el usuario hace clic en el botón de comando personalizado, agrega un texto en la celda A1 que dice**“Se hace clic en mi botón de comando personalizado”.**

todo:imagen_alternativa_texto

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

Gestión de eventos del botón de comando personalizado

El siguiente código de ejemplo explica cómo realizar el control de eventos del botón de comando personalizado.

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;

Formateo de celdas para GridWeb

Posibles escenarios de uso

GridWeb ahora permite a los usuarios ingresar datos de celda en formato de porcentaje como 3% y los datos en la celda se formatearán automáticamente como 3.00%. Sin embargo, tendrá que establecer el estilo de celda en Formato de porcentaje, que es GridTableItemStyle.NumberType a 9 o 10. El número 9 formateará el 3 % como 3 %, pero el número 10 formateará el 3 % como 3,00 %.

Ingrese Cell Datos de la hoja de trabajo GridWeb en formato de porcentaje

El siguiente código de muestra establece la celda A1 GridTableItemStyle.NumberType como 10, por lo tanto, los datos de entrada 3 % se formatearán automáticamente como 3,00 %, como se muestra en la captura de pantalla.

todo:imagen_alternativa_texto

Código de muestra

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