Travailler avec le Spreadsheet Management

Travailler avec le Spreadsheet Management

Travailler avec le Spreadsheet Management

Le Workbook classe est l’objet de base pour toutes les opérations dans le panneau d’écran.Cells FOSS pour .NET. Il fournit accès à la WorksheetCollection, les noms définis, et le cycle de vie d’enregistrement/charge. Ce guide couvre la charge tolérante des erreurs, l’organisation du feuille de travail, la configuration de layout imprimé et les contrôles de rang / colonne / cellule.


Carte de livres avec Options de réparation

Passez un fichier à la route de Workbook Constructeur pour charger un fichier XLSX existant. fournir une LoadOptions Objet avec TryRepairPackage et TryRepairXml Sette à true pour tenter de récupérer des fichiers avec une minuscule corruption structurelle. a) WorkbookLoadException Il est jeté lorsque le fichier n’est pas récupérable.

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

Ajouter et organiser des feuilles de travail

Workbook.Worksheets Retour à A WorksheetCollection.- appeler Add(name) pour ajouter un nouveau feuillet de travail par nom; la méthode retourne l’indice du nouvel feuille. Access feuilles de travaux par index basé sur zéro ou par Nom. WorksheetCollection.ActiveSheetName Pour contrôler la barre qui est active lorsque le fichier s’ouvre.

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

Mettre en scène et montrer des feuilles de travail

Sélection Worksheet.VisibilityType à VisibilityType.Hidden pour cacher une feuille sans la supprimer. les feuilles cachées sont conservées dans le fichier XLSX et peuvent être rendues visibles par configuration VisibilityType.Visible.La couleur de la table est fixée 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");

Configuration de page Setup

Worksheet.PageSetup Exposer toutes les propriétés liées à l’impression. Utilisez PageOrientationType Pour changer entre le portrait et le paysage. PaperSizeType Pour sélectionner une taille de papier, définissez la zone d’impression avec PrintArea, définir les lignes répétées / colonnes avec PrintTitleRows/PrintTitleColumns,et ajouter des pauses de page manuelles avec AddHorizontalPageBreak et 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);

Ronde et colonne de taille

Accès Worksheet.Cells.Rows par index pour obtenir un Row Objet : Set Row.Height (en points) pour contrôler la hauteur de la ligne. Row.IsHidden à true Pour cacher la ligne.Access Worksheet.Cells.Columns par index pour obtenir un Column Objet : Set Column.Width (en unités de caractère) et 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);

Les cellules qui se déchirent

Appel à Worksheet.Cells.Merge(firstRow, firstColumn, totalRows, totalColumns) pour fusionner un bloc rectangulaire contagieux dans une seule cellule. la cellulée fuse hérite de la valeur de l’encre supérieur gauche. Worksheet.Cells.MergedCells Pour lire toutes les régions fusionnées dans un livre de travail chargé.

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

Conseils et meilleures pratiques

  • Utiliser WorksheetCollection.ActiveSheetName Pour s’assurer que la barre correcte est sélectionnée lorsque le fichier s’ouvre dans Excel.
  • Déterminer les marges de page en pouces (LeftMarginInch, TopMarginInchCe sont des valeurs de point flottant, pas des intégrations.
  • Les écrans de la colonne (IsHidden = true• préserver leurs données ; supprimer une ligne supprime les données de manière permanente.
  • Toujours appeler Workbook.Save() Une fois à la fin d’une opération de batch plutôt que après chaque changement.
  • Mélanger les cellules de manière économe dans les feuilles de données - les régions fusionnées empêchent la sortie et le filtre automatique d’être correctement fonctionnant sur l’espace fusique.

Les problèmes communs

ProblèmeCauseFixé
WorkbookLoadException sur le chargementCorrupte ZIP ou XML dans le XLSXSélection LoadOptions.TryRepairPackage = true et TryRepairXml = true
Add(name) Retourner l’index erronéUtiliser le nom de la feuille comme indexAdd() retourner un index int; utilisez cet index pour accéder à la nouvelle feuille de données
La hauteur de la roule ne persiste pasLa hauteur fixée à 0 ou la valeur négativeUtilisez une double valeur positive comme : 28d
La cellule enfoncée montre une valeur erronéeValeur écrite à une cellule non-top gauche de la gamme d’unificationÉcrivez la valeur à la cellule supérieure gauche avant de vous appeler. Cells.Merge()
Page breaking ne apparaît pasAddHorizontalPageBreak Appelée après Save()Configurer des interruptions avant de faire appel Save()

FAQ

Combien de feuilles d’œuvre puis-je ajouter ?

Le format XLSX prend en charge jusqu’à 1024 feuilles par boîte de travail.Les limites pratiques dépendent de la mémoire disponible et du volume des fichiers.

Puis-je copier un feuille de travail entre les livres ?

La surface actuelle de l’API ne présente pas une CopyTo méthode pour les copies de feuilles de travail. chargez les deux fichiers et transférez des données cellule par cellulaire.

Comment réorganiser les feuilles de travail ?

Utiliser WorksheetCollection l’accès à l’index et les feuilles de renommée pour modifier leur ordre logique. mouvement positionnel direct n’est pas dans la surface API actuelle.

Quelles unités sont PageSetup Utiliser des marges ?

Les propriétés de la marque (LeftMarginInch, TopMarginInch,et dans les inches comme double Les valeurs.

Le fait Cells.Merge remplacer les données cellulaires existantes ?

La valeur de la cellule supérieure gauche est conservée ; les valeurs dans les autres cellules fusionnées sont nettoyées.


Le résumé de référence API

Classes / MéthodesDescription
WorkbookObjet de racine - Créer, charger, sauvegarder des livres de travail
Workbook.WorksheetsRetourner le WorksheetCollection
Workbook.Save(path)Le livre de travail persistant pour XLSX
WorksheetCollection.Add(name)Appliquer un nouveau feuillet de travail par nom
WorksheetCollection.ActiveSheetName-Active sur le fichier ouvert
Worksheet.VisibilityTypeVisibilityType.Hidden ou Visible
Worksheet.TabColorLe coloris (Color)
Worksheet.PageSetupImprimer les paramètres de layout
PageSetup.OrientationPageOrientationType.Landscape ou Portrait
PageSetup.PaperSizePaperSizeType.PaperA4,et etc.
PageSetup.AddHorizontalPageBreak(row)Insérer la page horizontale
Cells.Rows[index].HeightL’altitude en points
Cells.Rows[index].IsHiddenÉcran / Show Rue
Cells.Columns[index].WidthLa largeur de la colonne dans les unités de caractère
Cells.Columns[index].IsHiddenÉcran / Show Colonne
Cells.Merge(row, col, numRows, numCols)Un bloc rectangulaire
Cells.MergedCellsListe des régions mélangées dans la feuille de données
LoadOptions.TryRepairPackageTentez de réparer ZIP sur charge
LoadOptions.TryRepairXmlTentez de réparer XML sur charge
WorkbookLoadExceptionRésumé lorsque le fichier est inoubliable

Voir aussi

 Français