Lucrarea cu gestionarea fișelor de calcul
Lucrarea cu gestionarea fișelor de calcul
În ceea ce priveşte Workbook class este obiectul de bază pentru toate operațiunile din fișele de calcul în Aspose.Cells FOSS for .NET. Acesta oferă acces la WorksheetCollection,Acest ghid acoperă încărcarea tolerantă la defecte, organizarea fișei de lucru, configurarea layout-ului imprimării și controalele pentru structura rândurilor/colunilor/celulor.
Încărcarea cărților de lucru cu opțiuni de reparare
Treci un fişier către … Workbook constructor pentru a încărca un fișier XLSX existent. Furnizarea unui LoadOptions obiect cu TryRepairPackage și de: TryRepairXml setat la: true pentru a încerca recuperarea fişierelor cu corupţie structurală minoră. A WorkbookLoadException este aruncat atunci când fișierul nu poate fi recuperat.
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);
}Adăugarea și organizarea fișelor de lucru
Workbook.Worksheets returnează un WorksheetCollection.Sună-mă. Add(name) să adauge o nouă foaie de lucru cu numele; metoda returnă indexul noii foi. Accesarea fișelor de muncă prin index bazat pe zero sau prin nume. Set WorksheetCollection.ActiveSheetName pentru a controla care este tab activ atunci când se deschide fișierul.
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);Ascundeți și afișați fișele de lucru
Setare Worksheet.VisibilityType la … în VisibilityType.Hidden Pentru a ascunde o foaie fără ștergerea acesteia. Foliile ascuțite sunt păstrate în fișierul XLSX și pot fi făcute vizibile prin setarea VisibilityType.Visible.Culoarea fișei este setată prin: 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");Configuratul setării paginii
Worksheet.PageSetup Expune toate proprietăţile legate de imprimare. PageOrientationType pentru a schimba între portret și peisaj. PaperSizeType Definiți zona de imprimare cu: PrintArea, setare a rândurilor/colunilor repetate cu: PrintTitleRows/PrintTitleColumns, şi adăugaţi pauză de pagină manual cu AddHorizontalPageBreak și de: 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);Dimensiuni ale rândurilor și coloanelor
Accesul Worksheet.Cells.Rows prin index pentru a obține o Row Obiectul. Row.Height (în puncte) pentru a controla înălțimea rândului. Setat Row.IsHidden la … în true Accesul. Worksheet.Cells.Columns prin index pentru a obține o Column Obiectul. Column.Width (în unități de caractere) ș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);Celule care fuzionează
Sună-mă. Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) pentru a fuziona un bloc dreptunghiular în interiorul unei celule. Celula fuzionată moșteneste valoarea celulei din partea de sus stânga. Utilizați Worksheet.Cells.MergedCells pentru a citi înapoi toate regiunile fuzionate într-o carte de lucru încărcată.
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);Sfaturi şi cele mai bune practici
- Utilizare:
WorksheetCollection.ActiveSheetNamepentru a vă asigura că este selectat tabul corect atunci când se deschide fișierul în Excel. - Setarea marjelor paginii în inci (
LeftMarginInch,TopMarginInch) acestea sunt valori cu punct plutitor, nu integeri. - A ascuns rânduri/columne (
IsHidden = true) păstrează datele lor; ștergerea unei rânduri elimină permanent datile. - Întotdeauna sună.
Workbook.Save()o dată la sfârșitul operațiunii unui lot, mai degrabă decât după fiecare schimbare. - regiunile fuzionate împiedică funcționarea corectă a sortării și filtrării automate în întreaga zonă fuziune.
Probleme comune
| Numărul de date | Cauza | Fixare |
|---|---|---|
WorkbookLoadException în încărcare | ZIP sau XML corupt în XLSX | Setare LoadOptions.TryRepairPackage = true și de: TryRepairXml = true |
Add(name) returnează index greșit | Utilizarea numelui fișei ca index | Add() returnă un index int; folosiți acel index pentru a accesa noul fișier. |
| Înălțimea rândului nu a persistat | Înălțime setată la 0 sau valoare negativă | Utilizați o valoare dublă pozitivă, cum ar fi: 28d |
| Celulară fuzionată arată valoare greșită | Valore scrisă într-o celulă din partea de sus a stângă a intervalului de fuziune | Scrie valoarea în celula din partea de sus stângă înainte de a suna Cells.Merge() |
| Pauză de pagină nu apare. | AddHorizontalPageBreak numit după … Save() | Setare pauză pagină înainte de a suna Save() |
FAQ
Câte foi de lucru pot adăuga?
Formatul XLSX suportă până la 1024 de foi pe carte. Limite practice depind de memoria disponibilă și dimensiunea fișierului.
Pot copia o foaie de lucru între cărţi?
Suprafața API curentă nu expune o CopyTo Metodă pentru copierea fișierelor din cartea de lucru. Încărcați ambele fișiere și transferați datele celulă cu celula.
Cum reordonăm fişele de lucru?
Utilizare: WorksheetCollection indexarea accesului și denumirea fișelor pentru a schimba ordinea lor logică. Mișcarea pozițională directă nu este în suprafața API curentă.
Ce unităţi fac? PageSetup utilizarea pentru marje?
Toate proprietățile de marjă (LeftMarginInch, TopMarginInch, etc.) sunt în centimetri ca double valorile.
- Da. Nu, nu e aşa. Cells.Merge să înlocuiască datele existente ale celulelor?
Valoarea celulei din partea de sus a stângă este păstrată; valorile din celelalte celule fuzionate sunt șterse.
Rezultatele de la data aplicării.
| Clasa / metoda | Descriere: |
|---|---|
Workbook | Obiect rădăcină creați, încărcați și salvați cărțile de lucru |
Workbook.Worksheets | Retoară data de la intrare. WorksheetCollection |
Workbook.Save(path) | Persistă în XLSX |
WorksheetCollection.Add(name) | Adăugați o nouă foaie de lucru cu numele |
WorksheetCollection.ActiveSheetName | Tab activ pe fişier deschis |
Worksheet.VisibilityType | VisibilityType.Hidden sau de: Visible |
Worksheet.TabColor | Culoarea fișei (Color) |
Worksheet.PageSetup | Setări de layout pentru imprimare |
PageSetup.Orientation | PageOrientationType.Landscape sau de: Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4, etc. |
PageSetup.AddHorizontalPageBreak(row) | Inserați o ruptură orizontală a paginii |
Cells.Rows[index].Height | Înălțimea rândului în puncte |
Cells.Rows[index].IsHidden | Rând ascuns/afișat |
Cells.Columns[index].Width | Amplăte columne în unități de caractere |
Cells.Columns[index].IsHidden | Columnul Ascundere/Demonstrare |
Cells.Merge(row, col, numRows, numCols) | Fusează un bloc dreptunghiular |
Cells.MergedCells | Lista regiunilor fuzionate în fișă |
LoadOptions.TryRepairPackage | Încercare de reparare ZIP la încărcare |
LoadOptions.TryRepairXml | Încercați să reparați XML la încărcare |
WorkbookLoadException | Aruncat atunci când fişierul nu poate fi recuperat. |