Treballar amb la gestió de fitxes de càlcul
Treballar amb la gestió de fitxes de càlcul
El Workbook class és l’objecte raí de totes les operacions d’header en Aspose.Cells FOSS per a .NET. Ofereix accés al sistema de dades del servidor web. WorksheetCollection,Aquesta guia cobreix la càrrega tolerant a errors, l’organització de les fitxes, la configuració del disseny d’impressió i els controls de dissenys de fila/columna/cel·la.
Carregar quadres de treball amb opcions de reparació
Passar una ruta de fitxer a la pàgina d’accés. Workbook constructor per carregar un arxiu XLSX existent. Subministrar una LoadOptions objecte amb TryRepairPackage i de la TryRepairXml fixat a: true per intentar recuperar arxius amb corrupció estructural menor. A WorkbookLoadException es llança quan el fitxer no és recuperable.
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);
}Ajuntament i organització de feules de treball
Workbook.Worksheets retorna un WorksheetCollection.- Truca. Add(name) Per afegir una nova fitxa de treball per nom; el mètode retorna l’índex de la nova fulla. Accedir a les fulles de feina amb un índex basat en zero o pel seu nom. WorksheetCollection.ActiveSheetName per controlar quina pesta està activa quan s’obre el fitxer.
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);Ocultar i mostrar les fitxes de treball
Set de punts Worksheet.VisibilityType a la VisibilityType.Hidden Per amagar una fulla sense eliminar-la. Les folls amagades es conserven en el fitxer XLSX i poden ser visualitzades mitjançant la configuració de VisibilityType.Visible.El color de la pesta es configura mitjançant: 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ó de la configuració del lloc web
Worksheet.PageSetup exposa totes les propietats relacionades amb la impressió. PageOrientationType Per canviar entre retrat i paisatge. PaperSizeType Per seleccionar una mida de paper. Defineix l’àrea d’impressió amb PrintArea, fixar repeticions de files/columnes amb: PrintTitleRows/PrintTitleColumns, i afegir pauses de pàgines manuals amb AddHorizontalPageBreak i de la 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);Dimensió de filas i columnes
Accés Worksheet.Cells.Rows per índex per obtenir un Row object. Set Row.Height (en punts) per controlar l’alçada de la fila. Row.IsHidden a la true Per amagar la fila. Worksheet.Cells.Columns per índex per obtenir un Column object. Set Column.Width (en unitats de caràcters) i 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èl·lules fusionades
L’anomenaràs. Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) La cel·la fusionada hereta el valor de la cèl·lula superior esquerra. Use Worksheet.Cells.MergedCells per llegir totes les regions fusionades en un llibre de treball carregat.
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);Consells i millors pràctiques
- Utilització:
WorksheetCollection.ActiveSheetNameper assegurar-se que s’ha seleccionat la pesta correcta quan es obre el fitxer en Excel. - Ajustar els marges de pàgines en polzades (
LeftMarginInch,TopMarginInch) són valors de punt flotant, no nombres enters. - Escondint files/columnes (
IsHidden = true) conserva les seves dades; la supressió d’una línia elimina de forma permanent les dades. - Sempre trucar.
Workbook.Save()una vegada al final d’una operació de batxeria en lloc de després de cada canvi. - Fondre cèl·lules amb moderació en fitxes de dades les regions fusionades impedeixen que el classificació i l’autofiltració funcionin correctament a tota la zona fusionada.
Problemàtiques comuns
| Edició | Causa | Correcció |
|---|---|---|
WorkbookLoadException en càrrega | ZIP o XML corromput en el XLSX | Set de punts LoadOptions.TryRepairPackage = true i de la TryRepairXml = true |
Add(name) Retorna un índex incorrecte. | Utilitzar el nom de la ficha com a index | Add() Retorna un índex int; utilitza aquest índèx per accedir a la nova fulla. |
| Alçada de fila no persistent | Alçada establerta en 0 o valor negatiu. | Utilitzar un doble valor positiu com ara: 28d |
| La cel·la fusionada mostra un valor incorrecte. | Valor escrit en una cèl·lula no superior esquerra de la gamma d’unió | Escriure el valor a la cel·la d’esquerra abans de trucar Cells.Merge() |
| No apareix la secció de pàgines. | AddHorizontalPageBreak cridat després. Save() | Configurar interrupcions de pàgina abans d’acudir Save() |
FAQ
Quantes fletes de treball puc afegir?
El format XLSX suporta fins a 1024 fulles per llibre de treball. Els límits pràctics depenen de la memòria disponible i el mida del fitxer.
Puc copiar una fitxa entre quadres de treball?
La superfície API actual no exposa una CopyTo Metode per a les còpies de follons del llibre de treball. Carregar tots dos arxius i transferir dades cel·la per cel•la.
Com puc reordenar les fulles de treball?
Utilització: WorksheetCollection L’accés d’índex i la renomenada de les fulles per canviar el seu ordre lògic. El moviment posicional directe no es troba en l’actual superfície API.
Quines unitats fa? PageSetup utilització per a marges?
Totes les propietats de marges (LeftMarginInch, TopMarginInch, etc.) són en polzades com a double valors.
És així. Cells.Merge substituir les dades de cèl·lules existents?
El valor de la cèl·lula superior esquerra es conserva; els valors en les altres cellules fusionades s’esborren.
Resum de referència d’API
| Classe / mètode | Descripció |
|---|---|
Workbook | Objectos de raí crear, carregar i guardar quadres de treball |
Workbook.Worksheets | Retorna el nombre de punts. WorksheetCollection |
Workbook.Save(path) | Persistir en el llibre de treball a XLSX |
WorksheetCollection.Add(name) | Ajuntar una nova plantilla amb el nom |
WorksheetCollection.ActiveSheetName | Tab activa en arxiu obert |
Worksheet.VisibilityType | VisibilityType.Hidden o de la seva Visible |
Worksheet.TabColor | Color de la pesta (Color) |
Worksheet.PageSetup | Ajustes de disseny d’impressió |
PageSetup.Orientation | PageOrientationType.Landscape o de la seva Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4, etc. |
PageSetup.AddHorizontalPageBreak(row) | Insertar un trencament de pàgina horitzontal |
Cells.Rows[index].Height | Alçada de fila en punts |
Cells.Rows[index].IsHidden | Escutar/montrar fila |
Cells.Columns[index].Width | Ampleitud de columna en unitats de caràcters |
Cells.Columns[index].IsHidden | Columna d’amagar/montrar |
Cells.Merge(row, col, numRows, numCols) | Fondre un bloc rectangular |
Cells.MergedCells | Llista de regions fusionades en la ficha |
LoadOptions.TryRepairPackage | Intent de reparació ZIP en càrrega |
LoadOptions.TryRepairXml | Intentar la reparació XML en càrrega |
WorkbookLoadException | Arrancat quan el fitxer no es pot recuperar. |