Mit Spreadsheet Management arbeiten
Mit Spreadsheet Management arbeiten
Die Workbook Klasse ist das Wurzelobjekt für alle Spreadsheet-Aktionen in Aspose.Cells FOSS für .NET. Es bietet Zugriff auf die WorksheetCollection, definierte Namen und Speichern/Ladern Lebenszyklus. Dieser Leitfaden umfasst Fehlerverträgliche Laden, Arbeitsblattorganisation, Druck-Layout-Konfiguration und Reihenfolge/Sol/Zell-Layout-Kontrolle.
Laden von Arbeitsbüchern mit Repair Options
Geben Sie einen Dateiweg zum Workbook Konstruktor zu laden eine vorhandene XLSX Datei. LoadOptions Objekt mit TryRepairPackage und TryRepairXml Set zu true Versuchen, Dateien mit geringeren strukturellen Korruption zu erholen. a WorkbookLoadException wird gestohlen, wenn die Datei nicht wiederherstellbar ist.
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);
}Erfüllung und Organisation von Workshops
Workbook.Worksheets zurückkehren a WorksheetCollection.- Call Add(name) um eine neue Arbeitsblatt nach Namen hinzufügen; die Methode kehrt den neuen Arbeitsblatt Index zurück. WorksheetCollection.ActiveSheetName überprüfen, welche Tab aktiv ist, wenn die Datei geöffnet wird.
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);Verbergen und zeigen Werkblätter
Set Worksheet.VisibilityType zu VisibilityType.Hidden Verborgenen Blätter werden in der XLSX-Datei gespeichert und können durch Setup sichtbar gemacht werden VisibilityType.Visible.Tab Farbe wird über 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");Konfiguration der Page Setup
Worksheet.PageSetup alle mit Druck verbundenen Eigenschaften ausdrücken. PageOrientationType Um zwischen Portrait und Landschaft zu wechseln. PaperSizeType für eine Papiergröße auswählen.Definieren Sie das Druckbereich mit PrintArea, Set Repeat Röhren / Kolumne mit PrintTitleRows/PrintTitleColumns, und manuelle Seitenbrechen mit AddHorizontalPageBreak und 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);Röhr und Kolumn Size
Zugang Worksheet.Cells.Rows Indikator zu erhalten, um eine Row Objekte - Set Row.Height (in Punkten) zu steuern die Reihenhöhe. Set Row.IsHidden zu true Verstopfen Sie die Linie. Zugang Worksheet.Cells.Columns Indikator zu erhalten, um eine Column Objekte - Set Column.Width (in Charakteren) und 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);Zellen verwandeln
Anruf Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) zu einer kontextuellen rektangulären Block in eine einzige Zelle zu fusionieren. Die gemischte Zelle erfährt den Wert der oberen linken Zelle. Worksheet.Cells.MergedCells Zurücklesen Sie alle vereinigten Regionen in einem ladenen Arbeitsbuch.
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);Tipps und beste Praktiken
- Gebrauch
WorksheetCollection.ActiveSheetNameum sicherzustellen, dass die richtige Tab ausgewählt wird, wenn die Datei in Excel geöffnet wird. - Die Marge der Seite in Zoll (
LeftMarginInch,TopMarginInch- Das sind Flößendpunktswerte, nicht Integrationen. - Die Schlüssel und die Schlüssel (
IsHidden = true- bewahrt ihre Daten; das Löschen einer Reihe entfernt die Daten permanent. - immer rufen
Workbook.Save()Einmal am Ende einer Batch-Operation statt nach jeder Veränderung. - Zellen sparen sich in Datenblätter – verbundene Regionen verhindern, dass Sortierung und Autofilter über das verbundene Gebiet richtig funktionieren.
Gemeinsame Probleme
| Thema | Ursache | Fix |
|---|---|---|
WorkbookLoadException auf Last | Korrupt ZIP oder XML im XLSX | Set LoadOptions.TryRepairPackage = true und TryRepairXml = true |
Add(name) Fehler Index zurück | Benutzen Sie den Namen als Index | Add() eine int-index zurückgibt; verwenden Sie diesen index, um das neue sheet zu erhalten |
| Die Höhenhöhe nicht beständig | Höhen auf 0 oder negativen Wert | Nutzen Sie eine positive Doppelwert wie 28d |
| Verwirrte Zelle zeigt falsche Werte | Wert geschrieben an eine nicht-top-lechts-Zelle des Mündungsrahmens | Schreiben Sie die Wert in die obere linken Zelle vor der Anrufe Cells.Merge() |
| Page break nicht erscheinen | AddHorizontalPageBreak Nachruf nach Save() | Set Page Break vor Anrufen Save() |
FAQ
Wie viele Werkblätter kann ich hinzufügen?
Das XLSX-Format unterstützt bis zu 1024 Blätter pro Arbeitsbuch. Praktische Grenzen hängen von verfügbaren Speicher und Dateigröße ab.
Kann ich eine Arbeitsblatt zwischen Arbeitsbüchern kopieren?
Die aktuelle API-Plattform zeigt keine CopyTo Methode für Cross-Workbook-Buchkopien. Laden Sie sowohl Dateien und übertragen Sie Datenzellen pro Zelle.
Wie kann ich Werkblätter neu bestellen?
Gebrauch WorksheetCollection Indexzugang und rename-blätter ändern ihre logische ordnung. direkte positionelle bewegung ist nicht in der aktuellen API-oberfläche.
Welche Einheiten PageSetup Verwenden Sie Margen?
Alle Eigenschaften der Marge (LeftMarginInch, TopMarginInch,… und so weiter) sind in Zoll wie double Werte zu.
Das macht Cells.Merge Ersatz bestehender Daten?
Die obere linken Zellwerte werden beibehalten; die Werte in den anderen gemischten Zellen werden gereinigt.
API Referenzabschnitt
| Klasse / Methode | Beschreibung |
|---|---|
Workbook | Root object – erstellen, laden, speichern Arbeitsbücher |
Workbook.Worksheets | Zurück zum WorksheetCollection |
Workbook.Save(path) | Persistisches Workbook für XLSX |
WorksheetCollection.Add(name) | Ein neues Arbeitsblatt nach Namen hinzufügen |
WorksheetCollection.ActiveSheetName | Aktivierung auf Open File |
Worksheet.VisibilityType | VisibilityType.Hidden oder Visible |
Worksheet.TabColor | Farbschutz (Color) |
Worksheet.PageSetup | Print Layout Einstellungen |
PageSetup.Orientation | PageOrientationType.Landscape oder Portrait |
PageSetup.PaperSize | PaperSizeType.PaperA4,und so weiter. |
PageSetup.AddHorizontalPageBreak(row) | Horizontale Seite brechen |
Cells.Rows[index].Height | Höhen in Punkten |
Cells.Rows[index].IsHidden | Verborgen / Show Rue |
Cells.Columns[index].Width | Kolumnenweite in Charakteren |
Cells.Columns[index].IsHidden | Stellungen / Show Column |
Cells.Merge(row, col, numRows, numCols) | Ein rektangulärer Block |
Cells.MergedCells | Liste der gemischten Regionen im Blatt |
LoadOptions.TryRepairPackage | ZIP Reparatur auf Last |
LoadOptions.TryRepairXml | XML Reparatur auf Last |
WorkbookLoadException | Schleim, wenn die Datei nicht wiederherstellbar ist |