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.ActiveSheetNamepara 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
| Problemas | Causas | Fixado |
|---|---|---|
WorkbookLoadException En carga | Corrupt ZIP o XML en el XLSX | Sitio LoadOptions.TryRepairPackage = true y TryRepairXml = true |
Add(name) Retorno de los indexes equivocados | Usar el nombre de la hoja como índice | Add() devolver un índice int; utilizar ese índices para acceder a la nueva hoja |
| La altura de la roca no persiste | El valor de la altura es 0 o negativo. | Se utiliza un doble valor positivo como: 28d |
| La célula engañada muestra el valor equivocado | Valor escrito a una célula no superior izquierda de la rama de fusión | Escribe el valor en la célula superior izquierda antes de llamar. Cells.Merge() |
| Página de paro no aparece | AddHorizontalPageBreak 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étodo | Descripción |
|---|---|
Workbook | Objeto de raíz: crear, cargar y salvar libros de trabajo |
Workbook.Worksheets | De 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.ActiveSheetName | Activar la tab en el archivo abierto |
Worksheet.VisibilityType | VisibilityType.Hidden o Visible |
Worksheet.TabColor | El color de la tabla (Color) |
Worksheet.PageSetup | Impresión de layout |
PageSetup.Orientation | PageOrientationType.Landscape o Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4,etc. |
PageSetup.AddHorizontalPageBreak(row) | Introducción de la página horizontal |
Cells.Rows[index].Height | La altura de la línea en puntos |
Cells.Rows[index].IsHidden | Ver / Show Rue |
Cells.Columns[index].Width | Ampliación de columnas en unidades de carácter |
Cells.Columns[index].IsHidden | Cuerpo / Show Column |
Cells.Merge(row, col, numRows, numCols) | Un bloque rectangular |
Cells.MergedCells | Lista de regiones en la hoja |
LoadOptions.TryRepairPackage | Reparación ZIP en carga |
LoadOptions.TryRepairXml | Reparación de XML en carga |
WorkbookLoadException | Se desprende cuando el archivo no es recuperable. |