Actualización de la versión 1.2 en Workbooks for .NET - Parte IV

En la cuarta parte de esta serie de tutoriales, concluimos nuestra visión general de los cambios en Workbooks for .NET v1.2 examinando las siguientes características: "Unir y desunir celdas", "Envolver el contenido de una celda" y "Modificar más propiedades en Imagen".

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ónDrawingClientData 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 Array
  • DataTableImportOptions: opciones de importación para DataTables al importar datos en una Hoja de Cálculo.
    deriva de ImportOptions, útil para importar una DataTable
  • CSVImportOptions: 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.