Más información Cuadernos Xeed para .NET
Concluimos nuestra visión general de los cambios en Workbooks for .NET v1.2.
Fusión y separación de celdas
Se ha añadido la posibilidad de unir y separar celdas. Puede hacerse utilizando la función Añadir() y QuitarAt() de la hoja de cálculo CeldasFusionadas o con la FusionarCélulas() y UnmergeCells() métodos en el CellRange fusionar/desunir
La propiedad MergedCells de una hoja de cálculo es una propiedad MergedCellCollectionque representa una colección de todos los rangos de celdas que deben fusionarse.
La clase MergedCellCollection tiene las siguientes propiedades:
Count: el número de CellRange en la colección actual (sólo lectura)
Item: el objeto CellRange que representa todas las celdas que se fusionarán en el índice dado (sólo lectura)
La clase MergedCellCollection tiene los siguientes métodos:
Añadir: añade un elemento CellRange en la colección
EliminarEn: Elimina un elemento de la colección
El método Add() tiene 2 sobrecargas disponibles, para especificar las celdas de inicio y fin por dirección de celda o usando los ids de fila y columna:
Add(direccióninicialCelda, direcciónfinalCelda, isCenter, isMergeAcross)
Add(startingRowId, startingColumnId, endingRowId, endingColumnId, isCenter, isMergeAcross)
// Usando Worksheet.MergedCells
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var worksheet = document.Worksheets[ 0 ];
// Fusionar un rango añadiéndolo a la colección, utilizando la dirección de la celda
worksheet.MergedCells.Add("B5", "C8", true, false);
// Fusiona un rango (B10:C13) añadiéndolo a la colección, utilizando esta vez los ID de celda
worksheet.MergedCells.Add(9, 1, 12, 2, true, false);
// Desmezclar el primer rango actualmente en la colección
worksheet.MergedCells.RemoveAt(0);
// guardar las modificaciones
document.Guardar();
}
El método MergeCells() de la clase CellRange tiene los siguientes parámetros:
isCenter: centra el texto horizontal y verticalmente; true por defecto.
isAcross: indica si la fusión se divide por Fila, por ejemplo "A1 : B2" se fusionará como "A1: B1" y "A2 : B2"; falso por defecto.
// Usando el CellRange directamente
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var worksheet = document.Worksheets[ 0 ];
// Fusionar
CellRange range1 = hoja de trabajo.Cells[ "B5, C8" ];
rango1.CombinarCeldas();
// Desfusionar
CellRange range2 = hoja de cálculo.Cells[ "E5, F8" ];
rango2.DesfusionarCeldas();
// guardar las modificaciones
document.Save();
}
Envolver el contenido de una celda
En IsTextWrapped se ha añadido la propiedad Alineación para especificar si el contenido de una celda se envuelve o no.
// Envolver el contenido de una celda
using( var document = Workbook.Load( "pruebaDoc.xlsx" ));
{
var worksheet = document.Worksheets[ 0 ];
worksheet.Cells["C12" ].Style.Alignment.IsTextWrapped = true;
// guardar las modificaciones
document.Guardar();
}
Modificar más propiedades de la imagen
En Fotografía anteriormente sólo tenía la clase Descripción, DrawingClientData y PictureLocks propiedades, y se amplió para incluir más propiedades.
La clase Picture ahora también tiene las siguientes propiedades:
AbsolutePosition: la posición absoluta de la Imagen en la Hoja de Cálculo, este valor debe ser positivo y es de tipo Position.
Tenga en cuenta que al establecer este valor se borrará el valor de AnchorPosition, ya que sólo se puede utilizar uno u otro.AnchorPosition: la posición del Ancla en la Hoja de Cálculo, este valor es de tipo CellRange.
Tenga en cuenta que al establecer este valor se borrará el valor de AbsolutePosition, ya que sólo se puede utilizar uno u otro.AnchorType: tipo de ancla; puede ser AbsoluteAnchor, OneCellAnchor o TwoCellAnchor. (sólo lectura)
BottomRightOffsets: desplaza la esquina inferior derecha de una imagen TwoCellAnchor.
Editar: afecta al comportamiento de un Cuadro TwoCellAnchor cuando se añaden y borran Filas y Columnas usando la interfaz de usuario de Excel.
Formato: el formato de archivo de los medios cargados. (sólo lectura)
Altura: la altura de un AbsoluteAnchor o OneCellAnchor Picture.
MeasureUnit: la unidad utilizada para medir la anchura y la altura de la imagen.
Nombre: el nombre de la imagen en la hoja de trabajo (debe ser único en todo el libro de trabajo).
TopLeftOffsets: desplaza la esquina superior izquierda de una imagen TwoCellAnchor.
Anchura: la anchura de un AbsoluteAnchor o OneCellAnchor Picture.
Importar datos
Ahora los datos pueden importarse utilizando la función ImportData() en el Hoja de trabajo clase.
El método ImportData() admite datos de los siguientes tipos:
Matriz
Matriz 2D
ArrayList
IColección
IDiccionario
Tabla de datos
DataView
Ruta/flujo CSV
El método ImportData() tiene los siguientes parámetros:
datos: los datos a importar.
opciones: las opciones al importar los datos
Las opciones pueden ser de los siguientes tipos:
ImportOptions: propiedades de las opciones de importación al importar datos en una hoja de cálculo
clase base para DataTableImportOptions, UserObjectImportOptions y CSVImportOptions.UserObjectImportOptions: opciones de importación para objetos de usuario al importar datos en una hoja de cálculo.
deriva de ImportOptions, útil cuando se importan datos de objetos de usuario, como una Lista, un Player[] o un ArrayDataTableImportOptions: opciones de importación para DataTables al importar datos en una Hoja de Cálculo.
deriva de ImportOptions, útil para importar una DataTableCSVImportOptions: opciones de importación para un documento o flujo CSV al importar datos en una hoja de cálculo.
deriva de ImportOptions, útil para importar datos CSV
ImportOptions
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var hojaTrabajo = document.HojasTrabajo[ 0 ];
// Definir una lista de cadenas, las opciones de importación(vertical por defecto) y llamar a la función ImportData.
var stringData = new List() { "Primero", "Segundo", "Tercero", "Cuarto" };
var stringImportOptions = new ImportOptions() { DestinoDirecciónSuperiorIzquierda = "B5" };
worksheet.ImportData( stringData, stringImportOptions );
// guardar las modificaciones
document.Save();
}
UserObjectImportOptions
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var hojaTrabajo = document.HojasTrabajo[ 0 ];
// Definir una lista de objetos de usuario, las opciones de importación (vertical por defecto, especificar PropertyNames y mostrar propertyNames) y llamar a la función ImportData.
var userObjectData = new Lista()
{
new Jugador() { Nombre = "Tom Sawyer", Equipo = Equipo.Miami_Ducks, Número = 9 },
nuevo Jugador() { Nombre = "Mike Smith", Equipo = Equipo.Chicago_Hornets, Número = 18 },
nuevo Jugador() { Nombre = "Kelly Tomson", Equipo = Equipo.LosAngelese_Raiders, Número = 33 },
nuevo Jugador() { Nombre = "John Graham", Equipo = Equipo.NewYork_Bucs, Número = 7 },
};
var userObjectImportOptions = new UserObjectImportOptions() { DirecciónDestinoTopLeftAddress = "H5", PropertyNames = new string[] { "Nombre", "Equipo" }, IsPropertyNamesShown = true };
worksheet.ImportData( userObjectData, userObjectImportOptions );
// guardar las modificaciones
document.Save();
}
DataTableImportOptions
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var hojaTrabajo = document.HojasTrabajo[ 0 ];
// Definir un dataTable, las opciones de importación (mostrar ColumnNames específicos) y llamar a la función ImportData.
var dataTable = new DataTable( "Empleados" );
dataTable.Columns.Add( "Nombre", typeof( string ) );
dataTable.Columns.Add( "Position", typeof( string ) );
dataTable.Columns.Add( "Experiencia", typeof( double ) );
dataTable.Columns.Add( "Salario", typeof( int ) );
dataTable.Rows.Add( "Jenny Melchuck", "Gestor de proyectos", 11.5d, 77000 );
dataTable.Rows.Add( "Cindy Gartner", "Asistente médico", 1.3d, 56000 );
dataTable.Rows.Add( "Carl Jones", "Diseñador web", 4d, 66000 );
dataTable.Rows.Add( "Anna Karlweiss", "Ejecutiva de cuentas", 7.8d, 51000 );
dataTable.Rows.Add( "Julia Robertson", "Coordinadora de marketing", 17.6d, 65000 );
var dataTableImportOptions = new DataTableImportOptions() { DestinationTopLeftAddress = "B5", ColumnNames = new string[] { "Nombre", "Experiencia", "Cargo" }, IsColumnNamesShown = true };
worksheet.ImportData( dataTable, dataTableImportOptions );
// guardar las modificaciones
document.Save();
}
CSVImportOptions
using( var document = Workbook.Load( "testDoc.xlsx" ));
{
var hojaTrabajo = document.HojasTrabajo[ 0 ];
// Definir una ruta a un documento csv, las opciones de importación(que separador usar) y llamar a la función ImportData.
var stringSCVData = "Libro1.csv";
var stringCSVImportOptions = new CSVImportOptions() { DestinationTopLeftAddress = "C5", Separator = "," };
worksheet.ImportData( stringSCVData, stringCSVImportOptions );
// guardar las modificaciones
document.Save();
}
Para más información, consulte el documentación.