Trabajar con la gestión de Spreadsheet

Trabajar con la gestión de Spreadsheet

Trabajar con la gestión de Spreadsheet

El Workbook clase es el objeto de raíz para todas las operaciones de la hoja de espalda en Aspose.Cells FOSS para .NET. WorksheetCollection, nombres definidos, y ciclo de vida de almacenamiento/carga. Esta guía cubre la carga tolerante a errores, organización de hoja de trabajo, configuración de diseño impreso y controles de layout de línea/columna/celular.


Cargar libros de trabajo con opciones de reparación

Pasar un archivo a la Workbook Constructor para cargar un archivo XLSX existente. LoadOptions Objeto con TryRepairPackage y TryRepairXml Sete a true para intentar recuperar archivos con menor corrupción estructural. a) WorkbookLoadException Se lanza cuando el archivo no se recupera.

using Aspose.Cells_FOSS;

var options = new LoadOptions
{
    TryRepairPackage = true,
    TryRepairXml = true,
};

try
{
    var wb = new Workbook("data.xlsx", options);
    Console.WriteLine("Sheets: " + wb.Worksheets.Count);
    Console.WriteLine("Cell A1: " + wb.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Unrecoverable: " + ex.Message);
}

Adjuntar y organizar las hojas de trabajo

Workbook.Worksheets Volver a WorksheetCollection.llamadas Add(name) para añadir una nueva hoja de trabajo por nombre; el método devolve el índice de la nueva. Acceso a las hojas de obra por índices basados en cero o por nombres. WorksheetCollection.ActiveSheetName para controlar qué tab está activa cuando se abre el archivo.

using Aspose.Cells_FOSS;

var wb = new Workbook();

// Rename the default sheet
wb.Worksheets[0].Name = "Summary";

// Add sheets
var dataIdx = wb.Worksheets.Add("Data");
var archiveIdx = wb.Worksheets.Add("Archive");

// Set active sheet
wb.Worksheets.ActiveSheetName = "Data";

// Write to sheets by name
wb.Worksheets["Summary"].Cells["A1"].PutValue("Overview total");
wb.Worksheets["Data"].Cells["A1"].PutValue("Raw rows start here");

wb.Save("organised.xlsx");

// Verify
var loaded = new Workbook("organised.xlsx");
Console.WriteLine("Active: " + loaded.Worksheets.ActiveSheetName);
Console.WriteLine("Sheet count: " + loaded.Worksheets.Count);

Esconder y mostrar las hojas de trabajo

Sitio Worksheet.VisibilityType para VisibilityType.Hidden para ocultar una hoja sin borrarla.Las hojas escondidas se conservan en el archivo XLSX y pueden ser visibles mediante la configuración de VisibilityType.Visible.El color de la tab está configurado por Worksheet.TabColor.

using Aspose.Cells_FOSS;

var wb = new Workbook();
wb.Worksheets[0].Name = "Visible";
var hiddenIdx = wb.Worksheets.Add("Internal");
var hiddenSheet = wb.Worksheets[hiddenIdx];

hiddenSheet.VisibilityType = VisibilityType.Hidden;
hiddenSheet.Cells["A1"].PutValue("Internal data");

wb.Worksheets["Visible"].TabColor = Color.FromArgb(255, 70, 130, 180);

wb.Save("hidden.xlsx");

Configuración de la página

Worksheet.PageSetup Exponer todas las propiedades relacionadas con la impresión.Uso PageOrientationType para cambiar entre el retrato y el paisaje. PaperSizeType para seleccionar un tamaño de papel. Define el área de impresión con PrintArea, establezca las líneas / columnas repetidas con PrintTitleRows/PrintTitleColumns, y añadir manuales de páginas con AddHorizontalPageBreak y AddVerticalPageBreak.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Sample data
for (var r = 0; r < 60; r++)
    ws.Cells[r, 0].PutValue("Row " + (r + 1));

var ps = ws.PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.LeftMarginInch = 0.5d;
ps.RightMarginInch = 0.5d;
ps.TopMarginInch = 0.75d;
ps.BottomMarginInch = 0.75d;
ps.PrintArea = "$A$1:$H$60";
ps.PrintTitleRows = "$1:$1";
ps.CenterHeader = "Sales Report";
ps.LeftFooter = "Confidential";
ps.RightFooter = "Page &P of &N";
ps.PrintGridlines = true;
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(30);

wb.Save("paged.xlsx");

var loaded = new Workbook("paged.xlsx");
Console.WriteLine("Orientation: " + loaded.Worksheets[0].PageSetup.Orientation);
Console.WriteLine("Print area: " + loaded.Worksheets[0].PageSetup.PrintArea);

Roda y columna de tamaño

Acceso Worksheet.Cells.Rows por el índice para obtener un Row Objeto: Sitio Row.Height (en puntos) para controlar la altura de la línea. Row.IsHidden para true para esconderse la línea. acceso Worksheet.Cells.Columns por el índice para obtener un Column Objeto: Sitio Column.Width (en unidades de carácter) y Column.IsHidden.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Populate data
for (var r = 0; r < 5; r++)
    for (var c = 0; c < 4; c++)
        ws.Cells[r, c].PutValue($"R{r + 1}C{c + 1}");

// Row height and visibility
ws.Cells.Rows[0].Height = 28d;   // Header taller
ws.Cells.Rows[3].IsHidden = true; // Hide row 4

// Column width and visibility
ws.Cells.Columns[0].Width = 22d;
ws.Cells.Columns[3].IsHidden = true;

wb.Save("layout.xlsx");

var loaded = new Workbook("layout.xlsx");
Console.WriteLine("Row 0 height: " + loaded.Worksheets[0].Cells.Rows[0].Height);
Console.WriteLine("Col 0 width: " + loaded.Worksheets[0].Cells.Columns[0].Width);

Células de movimiento

llamadas Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) para fusionar un bloque rectangular contiguo en una única célula. la células fisionadas heredan el valor de la celda superior izquierda. Worksheet.Cells.MergedCells para leer todas las regiones unidas en un libro de trabajo cargado.

using Aspose.Cells_FOSS;

var wb = new Workbook();
var ws = wb.Worksheets[0];

// Title spanning A1:D1
ws.Cells["A1"].PutValue("Quarterly Sales Report");
ws.Cells.Merge(0, 0, 1, 4);

// Section header spanning A3:D3
ws.Cells["A3"].PutValue("Region: North");
ws.Cells.Merge(2, 0, 1, 4);

// Column headers
ws.Cells["A4"].PutValue("Product"); ws.Cells["B4"].PutValue("Q1");
ws.Cells["C4"].PutValue("Q2");      ws.Cells["D4"].PutValue("Q3");

wb.Save("report.xlsx");

var loaded = new Workbook("report.xlsx");
Console.WriteLine("Merged regions: " + loaded.Worksheets[0].Cells.MergedCells.Count);

Consejos y mejores prácticas

  • Uso WorksheetCollection.ActiveSheetName para asegurarse de que la tabla correcta se selecte cuando el archivo se abre en Excel.
  • Página de la página en polvo (LeftMarginInch, TopMarginInchEstos son valores de punto flotante, no integrantes.
  • Los columnas y las líneas (IsHidden = trueConserva sus datos; eliminando una línea se quita los datos permanentemente.
  • Siempre llamo Workbook.Save() una vez al final de un proceso de batch, en lugar de después de cada cambio.
  • Muerte las células de forma economicamente en las hojas de datos: las regiones mezcladas impiden que la clasificación y el auto-filtrado funcionen correctamente a través de la zona mezcla.

Problemas comunes

ProblemasCausasFixado
WorkbookLoadException En cargaCorrupt ZIP o XML en el XLSXSitio LoadOptions.TryRepairPackage = true y TryRepairXml = true
Add(name) Retorno de los indexes equivocadosUsar el nombre de la hoja como índiceAdd() devolver un índice int; utilizar ese índices para acceder a la nueva hoja
La altura de la roca no persisteEl valor de la altura es 0 o negativo.Se utiliza un doble valor positivo como: 28d
La célula engañada muestra el valor equivocadoValor escrito a una célula no superior izquierda de la rama de fusiónEscribe el valor en la célula superior izquierda antes de llamar. Cells.Merge()
Página de paro no apareceAddHorizontalPageBreak llamado después Save()Configura brechas de página antes de llamar Save()

FAQ

¿Cuántas obras de trabajo puedo añadir?

El formato XLSX soporta hasta 1024 hojas por libro de trabajo.Límites prácticos dependen de la memoria disponible y el tamaño del archivo.

¿Puedo copiar una hoja de trabajo entre los libros?

La superficie actual de la API no exponerá a una CopyTo método para copias de hoja de trabajo. cargar los archivos y transferir la célula de datos por células.

¿Cómo reordenar las hojas de trabajo?

Uso WorksheetCollection Acceso a los índices y renombre de las hojas para cambiar su orden lógico. movimiento posicionado directo no está en la superficie actual de API.

¿Qué unidades hacen PageSetup ¿Utilizar las margen?

Todos los productos de la marca (LeftMarginInch, TopMarginInch,y en los cenizas como double Los valores.

¿Qué hace Cells.Merge ¿Remplazar los datos existentes?

El valor de la célula superior izquierda se conserva; los valores en las otras células mezcladas se limitan.


Sumación de referencia API

Clase / MétodoDescripción
WorkbookObjeto de raíz: crear, cargar y salvar libros de trabajo
Workbook.WorksheetsDe vuelta la WorksheetCollection
Workbook.Save(path)Libro de trabajo persistente para XLSX
WorksheetCollection.Add(name)Añadir una nueva hoja de trabajo por nombre
WorksheetCollection.ActiveSheetNameActivar la tab en el archivo abierto
Worksheet.VisibilityTypeVisibilityType.Hidden o Visible
Worksheet.TabColorEl color de la tabla (Color)
Worksheet.PageSetupImpresión de layout
PageSetup.OrientationPageOrientationType.Landscape o Portrait
PageSetup.PaperSizePaperSizeType.PaperA4,etc.
PageSetup.AddHorizontalPageBreak(row)Introducción de la página horizontal
Cells.Rows[index].HeightLa altura de la línea en puntos
Cells.Rows[index].IsHiddenVer / Show Rue
Cells.Columns[index].WidthAmpliación de columnas en unidades de carácter
Cells.Columns[index].IsHiddenCuerpo / Show Column
Cells.Merge(row, col, numRows, numCols)Un bloque rectangular
Cells.MergedCellsLista de regiones en la hoja
LoadOptions.TryRepairPackageReparación ZIP en carga
LoadOptions.TryRepairXmlReparación de XML en carga
WorkbookLoadExceptionSe desprende cuando el archivo no es recuperable.

Ver también

 Español