Werken met Spreadsheetbeheer

Werken met Spreadsheetbeheer

Werken met Spreadsheetbeheer

De Workbook klasse is het hoofdobject voor alle spreadsheet-bewerkingen in Aspose.Cells FOSS voor .NET. Het biedt toegang tot de WorksheetCollection, gedefinieerde namen en de opslaan/laden levenscyclus. Deze gids behandelt fouttolerante lading, werkbladorganisatie, configuratie van de afdruklay-out en besturing van rij/kolom/cel-lay-out.


Werkboeken laden met reparatie-opties

Geef een bestandspad door aan de Workbook constructor om een bestaand XLSX-bestand te laden. Lever een LoadOptions object met TryRepairPackage en TryRepairXml ingesteld op true om te proberen bestanden met kleine structurele corruptie te herstellen. Een WorkbookLoadException wordt gegooid wanneer het bestand onherstelbaar is.

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);
}

Werkbladen toevoegen en organiseren

Workbook.Worksheets retourneert een WorksheetCollection. Roep Add(name) aan om een nieuw werkblad bij naam toe te voegen; de methode retourneert de index van het nieuwe blad. Toegang tot werkbladen via een nulgebaseerde index of via de naam. Stel WorksheetCollection.ActiveSheetName in om te bepalen welk tabblad actief is wanneer het bestand wordt geopend.

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);

Werkbladen verbergen en weergeven

Stel Worksheet.VisibilityType in op VisibilityType.Hidden om een blad te verbergen zonder het te verwijderen. Verborgen bladen worden bewaard in het XLSX-bestand en kunnen zichtbaar worden gemaakt door VisibilityType.Visible in te stellen. De tabkleur wordt ingesteld via 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");

Pagina-instelling configureren

Worksheet.PageSetup toont alle afdrukgerelateerde eigenschappen. Gebruik PageOrientationType om te schakelen tussen staand en liggend. Gebruik PaperSizeType om een papierformaat te selecteren. Definieer het afdrukgebied met PrintArea, stel herhalende rijen/kolommen in met PrintTitleRows/PrintTitleColumns, en voeg handmatige pagina-einden toe met AddHorizontalPageBreak en 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);

Rij- en kolomgrootte

Verkrijg Worksheet.Cells.Rows via index om een Row object te krijgen. Stel Row.Height (in punten) in om de rijhoogte te regelen. Stel Row.IsHidden in op true om de rij te verbergen. Verkrijg Worksheet.Cells.Columns via index om een Column object te krijgen. Stel Column.Width (in tekeneenheden) en Column.IsHidden in.

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);

Cellen samenvoegen

Roep Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) aan om een aaneengesloten rechthoekig blok samen te voegen tot één cel. De samengevoegde cel erft de waarde van de cel linksboven. Gebruik Worksheet.Cells.MergedCells om alle samengevoegde gebieden in een geladen werkmap uit te lezen.

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);

Tips en best practices

  • Gebruik WorksheetCollection.ActiveSheetName om ervoor te zorgen dat het juiste tabblad wordt geselecteerd wanneer het bestand in Excel wordt geopend.
  • Stel paginamarges in inches in (LeftMarginInch, TopMarginInch) — dit zijn kommagetallen, geen gehele getallen.
  • Rijen/kolommen verbergen (IsHidden = true) behoudt hun gegevens; een rij verwijderen verwijdert de gegevens permanent.
  • Roep Workbook.Save() altijd één keer aan het einde van een batchbewerking aan in plaats van na elke wijziging.
  • Voeg cellen spaarzaam samen in gegevensbladen — samengevoegde gebieden voorkomen dat sorteren en autofilter correct werken over het samengevoegde gebied.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
WorkbookLoadException bij het ladenBeschadigde ZIP of XML in de XLSXStel LoadOptions.TryRepairPackage = true en TryRepairXml = true in
Add(name) geeft verkeerde index terugSheetnaam gebruiken als indexAdd() geeft een int-index terug; gebruik die index om het nieuwe blad te benaderen
Rijhoogte niet bewaardHoogte ingesteld op 0 of negatieve waardeGebruik een positieve double-waarde, zoals 28d
Samengevoegde cel toont verkeerde waardeWaarde geschreven naar een niet-linkerboven-cel van het samenvoegbereikSchrijf de waarde naar de linkerboven-cel voordat Cells.Merge() wordt aangeroepen
Pagina-einde verschijnt nietAddHorizontalPageBreak aangeroepen na Save()Stel pagina-einden in vóór het aanroepen van Save()

FAQ

Hoeveel werkbladen kan ik toevoegen?

Het XLSX-formaat ondersteunt tot 1024 werkbladen per werkmap. Praktische limieten hangen af van het beschikbare geheugen en de bestandsgrootte.

Kan ik een werkblad tussen werkmappen kopiëren?

Het huidige API-oppervlak biedt geen CopyTo-methode voor het kopiëren van werkbladen tussen werkmappen. Laad beide bestanden en draag de gegevens cel voor cel over.

Hoe kan ik werkbladen herschikken?

Gebruik WorksheetCollection indextoegang en hernoem werkbladen om hun logische volgorde te wijzigen. Directe positionele verplaatsing zit niet in het huidige API-oppervlak.

Welke eenheden gebruikt PageSetup voor marges?

Alle marge-eigenschappen (LeftMarginInch, TopMarginInch, enz.) zijn in inches als double-waarden.

Vervangt Cells.Merge bestaande celgegevens?

De waarde van de cel linksboven wordt behouden; waarden in de andere samengevoegde cellen worden gewist.


API Reference Samenvatting

Klasse / MethodeBeschrijving
WorkbookRootobject — maak, laad, sla werkboeken op
Workbook.WorksheetsRetourneert de WorksheetCollection
Workbook.Save(path)Werkboek opslaan als XLSX
WorksheetCollection.Add(name)Voeg een nieuw werkblad toe op naam
WorksheetCollection.ActiveSheetNameActieve tabblad bij bestand openen
Worksheet.VisibilityTypeVisibilityType.Hidden or Visible
Worksheet.TabColorTabkleur (Color)
Worksheet.PageSetupAfdruklay-outinstellingen
PageSetup.OrientationPageOrientationType.Landscape of Portrait
PageSetup.PaperSizePaperSizeType.PaperA4, enz.
PageSetup.AddHorizontalPageBreak(row)Horizontale paginawisseling invoegen
Cells.Rows[index].HeightRijhoogte in punten
Cells.Rows[index].IsHiddenRij verbergen/weergeven
Cells.Columns[index].WidthKolombreedte in tekeneenheden
Cells.Columns[index].IsHiddenKolom verbergen/weergeven
Cells.Merge(row, col, numRows, numCols)Voeg een rechthoekig blok samen
Cells.MergedCellsLijst van samengevoegde regio’s in het blad
LoadOptions.TryRepairPackagePoging tot ZIP reparatie bij het laden
LoadOptions.TryRepairXmlPoging tot XML reparatie bij het laden
WorkbookLoadExceptionWordt gegooid wanneer het bestand onherstelbaar is

Zie ook

 Nederlands