Angular Using Cells

    Los objetos WorksheetCell en una hoja de cálculo de Excel son el objeto que contiene los valores de datos reales de la hoja de cálculo. Este tema repasa las muchas operaciones que puede realizar en estas celdas, como acceder a ellas y a sus regiones por nombre, agregar fórmulas y comentarios a las celdas, y fusionarlas y formatearlas.

    Angular Using Cells Example

    References

    El siguiente código muestra las importaciones necesarias para utilizar los fragmentos de código siguientes:

    import { Workbook } from "igniteui-angular-excel";
    import { WorkbookFormat } from "igniteui-angular-excel";
    import { Worksheet } from "igniteui-angular-excel";
    import { WorksheetTable } from "igniteui-angular-excel";
    import { NamedReference } from "igniteui-angular-excel";
    import { WorksheetCellComment } from "igniteui-angular-excel";
    import { FormattedString } from "igniteui-angular-excel";
    

    Referencing Cells and Regions

    Puede acceder a un objeto WorksheetCell o a un objeto WorksheetRegion llamando a los métodos getCell o getRegion del objeto worksheet, respectivamente. Ambos métodos aceptan un parámetro de cadena que hace referencia a una celda. Obtener una referencia a una celda es útil al aplicar formatos o trabajar con fórmulas y contenidos de celda.

    El siguiente código de ejemplo demuestra cómo hacer referencia a celdas y regiones:

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    //Accessing a single cell
    var cell = worksheet.getCell("E2");
    //Accessing a range of cells
    var region = worksheet.getRegion("G1:G10");
    

    Accessing Cells and Regions by Name

    En Microsoft Excel, las celdas individuales, así como las regiones de celdas, pueden tener nombres asignados. El nombre de una celda o región se puede utilizar para hacer referencia a esa celda o región en lugar de su dirección.

    La biblioteca Angular Excel Infragistics admite la referencia de celdas y regiones por nombre a través de los métodos getCell y getRegion del objeto de worksheet. Usted hace referencia a la celda o región utilizando la instancia NamedReference que hace referencia a esa celda o región.

    Puede utilizar el siguiente fragmento de código como ejemplo para nombrar una celda o región:

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    var cell_reference = workbook.namedReferences().add("myCell", "=Sheet1:A1");
    var region_reference = workbook.namedReferences().add("myRegion", "=Sheet1!A1:B2");
    

    El siguiente código se puede utilizar para obtener la celda y la región a las que hacen referencia las referencias denominadas "myCell" y "myRegión" anteriores:

    var cell = worksheet.getCell("myCell");
    var region = worksheet.getRegion("myRegion");
    

    Adding a Comment to a Cell

    Un comentario le permite mostrar sugerencias o notas para una celda cuando el mouse del usuario final pasa sobre una celda. Los comentarios se muestran como una leyenda similar a información sobre herramientas que contiene texto. La biblioteca Angular Excel Infragistics le permite agregar comentarios a una celda configurando la propiedad comment de un objeto WorksheetCell.

    El siguiente código de ejemplo demuestra cómo agregar un comentario a una celda:

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    var cellComment = new WorksheetCellComment();
    var commentText = new FormattedString("This cell has a comment.");
    cellComment.text = commentText;
    
    worksheet.rows(0).cells(0).comment = cellComment;
    

    Adding a Formula to a Cell

    La biblioteca Angular Excel Infragistics le permite agregar fórmulas de Microsoft Excel a una celda o grupo de celdas en una hoja de trabajo. Puede hacer esto usando el método applyFormula del objeto WorksheetCell o creando una instancia de un objeto formula y aplicándolo a una celda. Independientemente de la manera en que aplique una fórmula a una celda, puede acceder al objeto formula utilizando la propiedad formula del objeto WorksheetCell. Si necesita el valor, utilice la propiedad value de la celda.

    El siguiente código le muestra cómo agregar una fórmula a una celda.

     var workbook = new Workbook();
     var worksheet = workbook.worksheets().add("Sheet1");
     worksheet.rows(5).cells(0).applyFormula("=SUM(A1:A5)");
    
     //Using a Formula object to apply a formula
     var sumFormula = Formula.parse("=SUM(A1:A5)", CellReferenceMode.A1);
     sumFormula.applyTo(worksheet.rows(5).cells(0));
    

    Copying a Cell’s Format

    Las celdas pueden tener diferentes formatos, incluido el color de fondo, la cadena de formato y el estilo de fuente. Si necesita que una celda tenga el mismo formato que una celda previamente formateada, en lugar de configurar individualmente cada opción expuesta por la propiedad cellFormat del objeto WorksheetCell, puede llamar al método setFormatting del objeto cellFormat y pasarle un objeto cellFormat para copiar. Esto copiará cada configuración de formato de la primera celda a la segunda celda. También puede hacer esto para una fila, región de celda fusionada o columna.

    El siguiente código le muestra cómo copiar el formato de la segunda columna a la cuarta columna:

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    //Format 2nd column
    worksheet.columns(1).cellFormat.fill = CellFill.createSolidFill("Blue");
    worksheet.columns(1).cellFormat.font.bold = true;
    
    //Copy format of 2nd column to 4th column
    worksheet.columns(3).cellFormat.setFormatting(worksheet.columns(1).cellFormat);
    

    Formatting a Cell

    La biblioteca Angular Excel Infragistics le permite personalizar el aspecto y el comportamiento de una celda. Puede personalizar una celda estableciendo propiedades expuestas por la propiedad cellFormat de los objetos WorksheetCell, WorksheetRow, WorksheetColumn o WorksheetMergedCellsRegion.

    Puede personalizar todos los aspectos de la apariencia de una celda. Puede configurar la fuente, el fondo y los bordes de una celda, así como la alineación y rotación del texto. Incluso puedes aplicar un formato diferente carácter por carácter para el texto de una celda.

    También puede formatear los valores de las celdas asignando una cadena de formato. Una cadena de formato aceptable sigue los estándares y códigos de formato tradicionales.

    El siguiente código le muestra cómo formatear una celda para mostrar números como moneda:

    var workbook = new Workbook(format);
    var workbook = workbook.worksheets().add("Sheet1");
    
    worksheet.columns(2).cellFormat.formatString = "\"$\"#,##0.00";
    

    Excel 2007 Color Model

    La paleta de colores es análoga al diálogo de colores en la interfaz de usuario de Microsoft Excel 2007. Puede abrir este cuadro de diálogo de color navegando a Opciones de Excel => Guardar => Colores.

    Puede crear todos los tipos de relleno posibles utilizando propiedades y métodos estáticos en la clase CellFill. Son los siguientes:

    • NoColor: propiedad que representa un relleno sin color, lo que permite que se muestre una imagen de fondo de la hoja de trabajo, si la hay.

    • CreateSolidFill: devuelve una instancia CellFillPattern que tiene un estilo de patrón de Solid y un color de fondo establecido en el color o WorkbookColorInfo especificado en el método.

    • CreatePatternFill: devuelve una instancia CellFillPattern que tiene el estilo de patrón especificado y el color o los valores WorkbookColorInfo, especificados para los colores de fondo y patrón.

    • CreateLinearGradientFill: devuelve una instancia CellFillLinearGradient con el ángulo y las paradas de degradado especificados.

    • CreateRectangularGradientFill: devuelve una instancia CellFillRectangularGradient con los topes izquierdo, superior, derecho e inferior especificados del rectángulo interior y los topes de degradado. Si no se especifican los valores del rectángulo interior, el centro de la celda se utiliza como rectángulo interior.

    Los tipos derivados, que representan los distintos rellenos que se pueden crear, son los siguientes:

    • CellFillPattern: un patrón que representa un relleno de celda sin color, un color sólido o un relleno de patrón para una celda. Tiene información de color de fondo y una información de color de patrón que corresponden directamente a las secciones de color en la pestaña Relleno del cuadro de diálogo Formato de celdas de Excel.

    • CellFillLinearGradient: representa un relleno degradado lineal. Tiene un ángulo, que son grados en el sentido de las agujas del reloj del degradado lineal de izquierda a derecha, y una colección de paradas de degradado que describe dos o más transiciones de color a lo largo del degradado.

    • CellFillRectangularGradient: representa un relleno degradado rectangular. Tiene valores superior, izquierdo, derecho e inferior, que describen, en coordenadas relativas, el rectángulo interior desde el cual comienza el gradiente y sale hacia los bordes de la celda. También tiene una colección de paradas de degradado que describe dos o más transiciones de color a lo largo del camino desde el rectángulo interior hasta los bordes de la celda.

    El siguiente fragmento de código demuestra cómo crear un relleno sólido en una WorksheetCell:

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    var cellFill = CellFill.createSolidFill("Blue");
    worksheet.rows(0).cells(0).cellFormat.fill = cellFill;
    

    Puede especificar un color (el color del fondo, borde, etc.) de las celdas de Excel utilizando degradados lineales y rectangulares en las celdas. Cuando los libros con estos degradados se guardan en formato de archivo .xls y se abren en Microsoft Excel 2007/2010, los degradados serán visibles, pero cuando estos archivos se abren en Microsoft Excel 2003, la celda se rellenará con el color sólido desde el principio. parada de gradiente.

    Estas son las formas en que se puede definir un color, de la siguiente manera:

    • El color automático (que es el color del sistema WindowText)

    • Cualquier color RGB definido por el usuario

    • A theme color

    Si se utiliza un color RGB o de tema, se puede aplicar un tinte opcional para aclarar u oscurecer el color. Este tinte no se puede configurar directamente en la interfaz de usuario de Microsoft Excel 2007, pero varios colores en la paleta de colores que se muestra al usuario son en realidad colores de tema con tintes aplicados.

    Cada libro tiene 12 colores temáticos asociados. Son los siguientes:

    • Light 1

    • Light 2

    • Dark 1

    • Dark 2

    • Accent1

    • Accent2

    • Accent3

    • Accent4

    • Accent5

    • Accent6

    • Hipervínculo

    • Followed Hyperlink

    • Hay valores predeterminados cuando se crea un libro, que se pueden personalizar a través de Excel.

    Los colores están definidos por la clase WorkbookColorInfo, que es una clase inmutable sellada. La clase tiene una propiedad Automatic estática, que devuelve el color automático, y hay varios constructores que le permiten crear una instancia WorkbookColorInfo con un color o un valor de tema y un tinte opcional.

    El método getResolvedColor en WorkbookColorInfo le permite determinar qué color verá realmente el usuario cuando abra el archivo en Excel.

    Si WorkbookColorInfo representa un color de tema, debe pasar una instancia de Workbook al método para que pueda obtener el valor RGB del color del tema del libro.

    Al guardar en formatos de archivo más nuevos, como .xlsx, la información de color más nueva se guarda directamente en el archivo. Al guardar en un formato de archivo antiguo como .xls, se guardará el índice del color más cercano en la paleta. Además, los formatos más antiguos tienen registros de características futuras que se pueden guardar para indicar la información de color más nueva.

    Cuando los formatos más antiguos se abren en Microsoft Excel 2003 y versiones anteriores, estos registros de características futuras se ignoran, pero cuando los formatos de archivos más antiguos se abren en Excel 2007 y versiones posteriores, sus registros se leen y la información de color de ellos sobrescribe el color indexado que se cargó previamente desde los registros en formato normal.

    Excel Format Support

    Puede configurar una gran cantidad de formatos diferentes en una WorksheetCell utilizando el objeto cellFormat devuelto por la propiedad cellFormat de esa celda. Este objeto cellFormat le permite aplicar estilo a muchos aspectos diferentes de la celda, como bordes, fuente, relleno, alineaciones y si la celda debe reducirse o no para ajustarse o bloquearse.

    También puede acceder a los estilos integrados en Microsoft Excel 2007 utilizando la colección styles del objeto workbook. La lista completa de estilos en Excel se puede encontrar en la galería Estilos de celda de la pestaña Inicio de Microsoft Excel 2007.

    Hay un tipo especial de estilo en la colección styles del libro conocido como estilo "normal", al que se puede acceder utilizando la propiedad normalStyle de esa colección o indexando en la colección con el nombre "Normal".

    normalStyle contiene las propiedades predeterminadas para todas las celdas del libro, a menos que se especifique lo contrario en una fila, columna o celda. Cambiar las propiedades en normalStyle cambiará todas las propiedades de formato de celda predeterminadas en el libro. Esto es útil, por ejemplo, si desea cambiar la fuente predeterminada de su libro.

    Puede borrar la colección styles o restablecerla a su estado predefinido utilizando los métodos clear y reset, respectivamente. Ambos eliminarán todos los estilos definidos por el usuario, pero clear borrará la colección styles por completo.

    Con esta característica, se agregó una propiedad style al objeto cellFormat. Esta es una referencia a una instancia WorkbookStyle, que representa el estilo principal del formato. Para formatos de un estilo, esta propiedad siempre será nula, porque los estilos no pueden tener un estilo principal. Para formatos de fila, columna y celda, la propiedad style siempre devuelve el normalStyle de forma predeterminada.

    Si la propiedad style se establece en nula, volverá al normalStyle. Si se establece en otro estilo en la colección de estilos, ese estilo ahora contendrá los valores predeterminados para todas las propiedades no configuradas en el formato de celda.

    Cuando la propiedad style se establece en un formato de celda, las opciones de formato incluidas en el style se eliminan del formato de celda. Todas las demás propiedades se dejan intactas. Por ejemplo, si se creó un estilo de celda que incluye formato de borde y ese estilo se estableció como style de celda, se eliminará la opción de formato de borde en el formato de celda y el formato de celda solo incluirá formato de relleno.

    Cuando se elimina un indicador de opción de formato de un formato, todas las propiedades asociadas se restablecen a sus valores no establecidos, por lo que las propiedades del borde del formato de celda se restablecen implícitamente a sus valores predeterminados/no establecidos.

    Puede determinar qué se vería realmente en las celdas utilizando el método getResolvedCellFormat en clases que representan una fila, columna, celda y celda combinada.

    Este método devuelve una instancia cellFormat que hace referencia al cellFormat asociado en el que se basa. Por lo tanto, los cambios posteriores en la propiedad cellFormat se reflejarán en la instancia devuelta por una llamada getResolvedCellFormat.

    Merging Cells

    Además de establecer el valor o el formato de las celdas, también puedes fusionar celdas para que dos o más celdas parezcan una sola. Si combina celdas, deben estar en una región rectangular.

    Cuando combina celdas, cada celda de la región tendrá el mismo valor y formato de celda. Las celdas combinadas también se asociarán con el mismo objeto WorksheetMergedCellsRegion, al que se puede acceder desde su propiedad associatedMergedCellsRegion. El objeto WorksheetMergedCellsRegion resultante también tendrá el mismo valor y formato de celda que las celdas.

    Establecer el valor (o formato de celda) de la región o cualquier celda de la región cambiará el valor de todas las celdas y de la región. Si separa celdas, todas las celdas previamente combinadas conservarán el formato de celda compartida que tenían antes de separarlas. Sin embargo, solo la celda superior izquierda de la región conservará el valor compartido.

    Para crear una región de celdas combinadas, debe agregar un rango de celdas a la colección mergedCellsRegions del objeto worksheet. Esta colección expone un método Add que toma cuatro parámetros enteros. Los cuatro parámetros determinan el índice de la fila y columna inicial (celda más arriba a la izquierda) y el índice de la fila y columna final (celda más abajo a la derecha).

    var workbook = new Workbook();
    var worksheet = workbook.worksheets().add("Sheet1");
    
    // Make some column headers
    worksheet.rows(1).cells(1).value = "Morning";
    worksheet.rows(1).cells(2).value = "Afternoon";
    worksheet.rows(1).cells(3).value = "Evening";
    
    // Create a merged region from column 1 to column 3
    var mergedRegion1 =  ws.mergedCellsRegions().add(0, 1, 0, 3);
    
    // Set the value of the merged region
    mergedRegion1.value = "Day 1";
    
    // Set the cell alignment of the middle cell in the merged region.
    // Since a cell and its merged region shared a cell format, this will ultimately set the format of the merged region
    worksheet.rows(0).cells(2).cellFormat.alignment = HorizontalCellAlignment.Center;
    

    Retrieving the Cell Text as Displayed in Excel

    El texto que se muestra en una celda depende de varios factores además del valor real de la celda, como la cadena de formato y el ancho de la columna que contiene la celda.

    La cadena de formato determina cómo se convierte el valor de la celda en texto y qué carácter literal se debe mostrar con el valor formateado. Puede encontrar información más detallada sobre los códigos de formato aquí.

    La cantidad de espacio horizontal disponible en una celda juega un papel importante en cómo se muestra el valor al usuario.

    El texto mostrado puede ser diferente según los distintos anchos de columna.

    Al mostrar números y utilizar una cadena de formato que contenga "General" o"@", existen varios formatos que se intentan encontrar para encontrar un formato que se ajuste al ancho de la celda. A continuación se muestra una lista de formatos de ejemplo:

    • Valor normal: el número se muestra como sería si hubiera una cantidad ilimitada de espacio.

    • Eliminar dígitos decimales: los dígitos decimales se eliminarán uno a la vez hasta que se encuentre un formato que se ajuste. Por ejemplo, un valor de 12345,6789 se reducirá a los siguientes formatos hasta que uno quepa: 12345,679, 12345,68, 12345,7 y 12346. Esto se detendrá cuando el primer dígito significativo sea el único que quede, por lo que, por ejemplo, un valor como 0,0001234567890 solo se puede reducido a 0,0001.

    • Científico, 5 dígitos decimales: el número se muestra en forma de 0,00000E+00, como 1,23457E+09 o 1,23457E-04.

    • Científico, 4 dígitos decimales: el número se muestra en forma de 0,0000E+00, como 1,2346E+09 o 1,23456E-04.

    • Científico, 3 dígitos decimales: el número se muestra en forma de 0,000E+00, como 1,235E+09 o 1,235E-0.

    • Científico, 2 dígitos decimales: el número se muestra en forma de 0,00E+00, como 1,23E+09 o 1,23E-04.

    • Científico, 1 dígito decimal: el número se muestra en forma de 0,0E+00, como 1,2E+09 o 1,2E-04.

    • Científico, 0 dígitos decimales: el número se muestra en forma de 0E+00, como 1E+09 o 1E-04.

    • Valor redondeado: si el primer dígito significativo está en la parte decimal del número, el valor se redondeará al valor entero más cercano. Por ejemplo, para un valor 0,0001234567890, se redondeará a 0 y el texto mostrado en la celda será 0.

    • Marcas de almohadilla: si no se puede mostrar una versión condensada del número, las almohadillas (#) se repetirán en todo el ancho de la celda.

    • Cadena vacía: si no caben marcas hash en la celda, se devolverá una cadena vacía como texto de celda mostrado.

    Si la cadena de formato para el valor numérico no contiene General o @, solo existen las siguientes etapas de cambio de tamaño: Valor normal, Marcas de almohadilla, Cadena vacía

    Si se utiliza un texto en la celda, el texto mostrado en la celda siempre tendrá el valor completo, independientemente de si está cortado o no en la celda.

    El único momento en el que este no es el caso es cuando se utilizan caracteres de relleno en la cadena de formato. Luego, el valor se mostrará como todas las marcas de almohadilla cuando no haya suficiente espacio para el texto.

    Puede configurar la propiedad displayOptions'showFormulasInCells de la hoja de cálculo para que las fórmulas se muestren en las celdas en lugar de sus resultados, y se ignoren las cadenas de formato y los anchos de celda. Los valores de texto se muestran como si su cadena de formato fuera @ , los valores numéricos no integrales se muestran como si su cadena de formato fuera 0.0 y los valores numéricos integrales se muestran como si su cadena de formato fuera 0 .

    Además, si el valor no cabe, no se mostrará como todos los hashes. El texto mostrado seguirá devolviendo su texto completo como texto de la celda, aunque no se vea por completo.

    El siguiente fragmento de código demuestra el uso del método getText para obtener el texto tal como se mostraría en Excel:

    var workbook = new Workbook();
    var worksheet = this.workbook.worksheets().add("Sheet1");
    
    var cellText = worksheet.rows(0).cells(0).getText();
    

    API References