Web Components Uso de celdas

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

    Web Components Using Cells Example

    References

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

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

    Referencing Cells and Regions

    Puedes acceder a unWorksheetCell objeto o a unWorksheetRegion objeto llamando a losworksheet objetosgetCell ogetRegion métodos, 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 contenido de celdas.

    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 de Excel Infragistics Web Components permite la referencia de celdas y regiones por nombre a través de losgetCell métodos ygetRegion delworksheet objeto. Te refieres a la celda o región usando laNamedReference instancia que se refiere 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 te permite mostrar pistas o notas para una celda cuando el ratón del usuario final flota sobre una celda. Los comentarios se muestran como una llamada tipo tooltip que contiene texto. La Infragistics Web Components Biblioteca de Excel te permite añadir comentarios a una celda estableciendo la propiedad deWorksheetCell uncomment objeto.

    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 Infragistics Web Components Biblioteca de Excel te permite añadir fórmulas de Microsoft Excel a una celda o grupo de celdas en una hoja de cálculo. Puedes hacerlo usando elWorksheetCell método delapplyFormula objeto o instanciando unformula objeto y aplicándolo a una celda. Independientemente de la forma en que apliques una fórmula a una celda, puedes acceder alformula objeto usando laWorksheetCell propiedad delformula objeto. Si necesitas el valor, usa la propiedad devalue 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, incluyendo color de fondo, cadena de formato y estilo de fuente. Si necesitas que una celda tenga el mismo formato que una celda previamente formateada, en lugar de configurar individualmente cada opción expuesta por laWorksheetCell propiedad delcellFormat objeto, puedes llamar alcellFormat método delsetFormatting objeto y pasarle uncellFormat objeto para copiar. Esto copiará todos los ajustes de formato desde la primera celda hasta la segunda. También puedes hacer esto para una fila, una región de celda fusionada o una 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 Infragistics Web Components Biblioteca de Excel te permite personalizar el aspecto y el comportamiento de una celda. Puedes personalizar una celda configurando propiedades expuestas por lacellFormat propiedad de elWorksheetCell,WorksheetRowWorksheetColumn,, oWorksheetMergedCellsRegion los objetos.

    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.

    Puedes crear todos los tipos de relleno posibles usando propiedades y métodos estáticos en laCellFill clase. Son las siguientes:

    • NoColor- Una propiedad que representa un relleno sin color, lo que permite que una imagen de fondo de la hoja de cálculo, si la hay, se muestre a través de ella.

    • CreateSolidFill- Devuelve unaCellFillPattern instancia que tiene un estilo de patrón deSolid y un color de fondo establecido en ocolorWorkbookColorInfo especificado en el método.

    • CreatePatternFill- Devuelve unaCellFillPattern instancia que tiene el estilo de patrón especificado y loscolor valores de oWorkbookColorInfo, especificados para el fondo y los colores del patrón.

    • CreateLinearGradientFill- Devuelve unaCellFillLinearGradient instancia con los registros de ángulo y gradiente especificados.

    • CreateRectangularGradientFill- Devuelve unaCellFillRectangularGradient instancia con los indicativos especificados izquierdo, superior, derecho e inferior del rectángulo interior y los registros de gradiente. 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 Formatear Celdas de Excel.

    • CellFillLinearGradient- Representa un relleno de gradiente lineal. Tiene un ángulo, que es grados en sentido horario del gradiente lineal de izquierda a derecha, y una colección de oclusivas de gradientes que describe dos o más transiciones de color a lo largo de la longitud del gradiente.

    • CellFillRectangularGradient- Representa un relleno rectangular en gradiente. Tiene valores superior, izquierdo, derecho e inferior, que describen, en coordenadas relativas, el rectángulo interior desde el que comienza el gradiente y se extiende hasta los bordes de la celda. También tiene una colección de oclusivas degradadas 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 unWorksheetCell:

    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 se definen por laWorkbookColorInfo clase, que es una clase sellada e inmutable. La clase tiene una propiedad estáticaAutomatic, que devuelve el color automático, y existen varios constructores que permiten crear unaWorkbookColorInfo instancia con un color o un valor de tema y un tinte opcional.

    ElgetResolvedColor método enWorkbookColorInfo te permite determinar qué color verá realmente el usuario al abrir el archivo en Excel.

    Si representaWorkbookColorInfo un color de tema, debes pasar una instancia de libro de trabajo al método para que pueda obtener el valor RGB del color del tema del cuaderno.

    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

    Puedes establecer una variedad de formatos diferentes en unWorksheetCell usando elcellFormat objeto que devuelve lacellFormat propiedad de esa celda. EstecellFormat objeto te permite estilizar muchos aspectos diferentes de la celda, como bordes, fuente, relleno, alineaciones y si la celda debe encogerse o quedar bloqueada.

    También puedes acceder a los estilos integrados en Microsoft Excel 2007 usando lastyles colección delworkbook objeto. La lista completa de estilos en Excel se puede encontrar en la galería de Estilos Celdas de la pestaña Inicio de Microsoft Excel 2007.

    Existe un tipo especial de estilo en la colección delstyles cuaderno conocido como el estilo "normal", al que se puede acceder usando la propiedad denormalStyle esa colección o indexando dentro de la colección con el nombre "Normal".

    ContienenormalStyle las propiedades predeterminadas de todas las celdas del libro de trabajo, salvo que se especifique lo contrario en una fila, columna o celda. Cambiar las propiedades en elnormalStyle cambiará todas las propiedades predeterminadas del formato de celda en el libro de trabajo. Esto es útil, por ejemplo, si quieres cambiar la fuente predeterminada de tu libro de trabajo.

    Puedes borrar lastyles colección o restablecerla a su estado predefinido usando losclear métodos yreset, respectivamente. Ambos eliminarán todos los estilos definidos por el usuario, peroclear limpiarán lastyles colección por completo.

    Con esta característica, se ha añadido unastyle propiedad alcellFormat objeto. Esto es una referencia a unaWorkbookStyle instancia, que representa el estilo padre del formato. Para los formatos de un estilo, esta propiedad siempre será nula, porque los estilos no pueden tener un estilo padre. Para los formatos de fila, columna y celda, lastyle propiedad siempre devuelve elnormalStyle por defecto.

    Si lastyle propiedad está configurada como nula, volverá a lanormalStyle. Si está configurado a otro estilo en la colección de estilos, ese estilo ahora tendrá los valores predeterminados de todas las propiedades no establecidas en el formato de celda.

    Cuando lastyle propiedad se establece en un formato de celda, las opciones de formato incluidas en elstyle se eliminan del formato de celda. Todas las demás propiedades permanecen intactas. Por ejemplo, si se crea un estilo de celda que incluye el formato de borde y ese estilo se establece como el destyle la celda, se eliminaría la opción de formato de borde en el formato de celda y el formato de celda solo incluiría el 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.

    Puedes determinar qué se vería realmente en las celdas usando elgetResolvedCellFormat método de las clases que representan una fila, columna, celda y celda fusionada.

    Este método devuelve unacellFormat instancia que se refiere a la asociacióncellFormat en la que se basa. Así que los cambios posteriores en lacellFormat propiedad se reflejarán en la instancia devuelta de unagetResolvedCellFormat llamada.

    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 fusionas celdas, cada celda de la región tendrá el mismo valor y formato de celda. Las celdas fusionadas también estarán asociadas con el mismoWorksheetMergedCellsRegion objeto, accesible desde suassociatedMergedCellsRegion propiedad. El objeto resultanteWorksheetMergedCellsRegion 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 fusionadas, debes añadir un rango de celdas a laworksheet colección delmergedCellsRegions objeto. Esta colección expone unAdd método que toma cuatro parámetros enteros. Los cuatro parámetros determinan el índice de la fila y columna inicial (celda superior izquierda) y el índice de la fila y columna final (celda inferior 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.

    Puedes configurar la propiedad dedisplayOptionsshowFormulasInCells la hoja de cálculo para que las fórmulas se muestren en celdas en lugar de sus resultados, y se ignoren las cadenas de formato y los anchos de celdas. Los valores de texto se muestran como si su cadena de formato fuera @, los valores numéricos no enteros se muestran como si su cadena de formato fuera 0.0 y los valores numéricos enteros 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 delgetText método para obtener el texto tal y 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