Gestion des cellules dans les classeurs pour .NET

Dans l'article précédent, nous avons appris les bases de la création d'un document xlsx à l'aide des méthodes Create, Load, Save et SaveAs, ainsi que la manière d'ajouter et de récupérer des feuilles de calcul.

En savoir plus sur Xeed Workbooks pour .NET

Dans l'article précédent, nous avons appris les bases de la création d'un document xlsx à l'aide de la fonction CréerChargementÉconomisez et Sauvegarde ainsi que la façon d'ajouter et d'extraire des données sur les Feuilles de travail.

Cette fois-ci, nous allons apprendre les bases de l'ajout et de la modification du contenu d'un fichier Feuille de travail.

Qu'est-ce qu'une feuille de travail ?

En d'autres termes, un Feuille de travail est une collection de cellules. A Cellule représente un rectangle dans une feuille de calcul ; chaque cellule est l'intersection d'un rectangle et d'un rectangle. Rangée et un Colonne.

Note:

  • A Worksheet can have a maximum of 16,384 columns and 1,048,576 rows.

Accès aux cellules d'une feuille de calcul

Pour modifier le contenu d'une feuille de calcul, il faut pouvoir accéder aux cellules à modifier.

Il y a trois (3) façons d'accéder à une cellule donnée :

1. Par l'intermédiaire du Cellules Collection :

  1. By using an address. This is a combination of a letter (for the column) and a number (for the row). The first column starts at "A" and the first row starts at "1", meaning the top left cell is located at the "A1" address.
  2. By using coordinates. This is done by specifying the Row Id first and then the Column Id. In both cases the indexes start at 0, meaning the top left cell is located at the 0,0 coordinates.

2. Par l'intermédiaire du Cellules d'une colonne donnée dans le Colonnes Collection :

  1. By using the Row Id index. The index starts at 0, so the top-most cell in a column is located at index 0.

3. Par l'intermédiaire du Cellules d'une ligne donnée dans le Rangs Collection :

  1. By using the Column Id index. The index starts at 0, so the left-most cell in a row is located at index 0.
// Accessing specific cells
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];
		
		// accessing cell A1 through the Cells collection
		var cellA1_FromAddress = worksheet.Cells[ "A1" ];
		var cellA1_FromCoordinates = worksheet.Cells[ 0, 0 ];
		
		// accessing cell B2 through the Columns collection
		var cellB2 = worksheet.Columns[ 1 ].Cells[ 1 ];
		
		// accessing cell C3 through the Rows collection
		var cellC3 = worksheet.Rows[ 2 ].Cells[ 2 ];
	}

Notes:

  • The top left cell does not start at 1,1 like in Excel because for a developer, it is more intuitive to start the index at 0, and as such the top left cell is at coordinates 0,0
  • If performance is important, an access by coordinates is faster than an access by address.

Modification des cellules

Le contenu d'une cellule peut être défini à l'aide de la touche Valeur ou Formule propriétés.

Valeur est statique, tandis qu'un Formule peuvent être dynamiques, ce qui signifie que la valeur affichée peut changer en fonction des éléments de la formule (par exemple, si la formule est la somme d'un groupe de cellules, la valeur affichée changera si l'une des valeurs de ces autres cellules est modifiée).

// Modifying the content of Cells
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];
		
		// modifying cell A1 through the Cells collection
		worksheet.Cells[ "A1" ].Value = new DateTime( 2021, 7, 1, 10, 22, 33);
		
		// modifying cell B2 through the Columns collection
		worksheet.Columns[ 1 ].Cells[ 1 ].Value = 100;
		
		// modifying cell C3 through the Rows collection
		worksheet.Rows[ 2 ].Cells[ 2 ].Formula "=SUM(A2:A5)";
		
		// save the modifications
		document.Save();
	}

Si Cell.Formula est activée, l'option Cell.Value seront remplis à deux (2) moments seulement :

  1. when MS Excel will be used to opened the saved document.
  2. if the user calls the Worksheet.CalculateFormulas() method to calculate the formulas of a Worksheet, or Workbook.CalculateFormulas() to calculate the formulas of all the Worksheets within a Workbook.

Modification des colonnes

Nous pouvons également accéder au Colonnes pour modifier une colonne spécifique. Au moment de la rédaction de ce document, les propriétés pouvant être modifiées sur une colonne sont les suivantes BestFit et Largeur.

Pour spécifier la colonne à modifier, nous indiquons l'index (0 = colonne A).

// Modifying Columns
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];
		
		// modifying column A
		worksheet.Columns[ 0 ].BestFit = true;
		worksheet.Columns[ 0 ].Width = 65d;
		
		// modifying column B
		worksheet.Columns[ 1 ].BestFit = false;
		worksheet.Columns[ 1 ].Width = 85d;
		
		// save the modifications
		document.Save();
	}

Note:

  • The AutoFit() method on Column can be used to adjust the width of the column to the longest content. There are four (4) optional parameters: minimumWidth and maximumWidth (amount of characters under the default font), as well as startRowId and endRowId (to indicate the range of cells whose content will be evaluated to affect the AutoFit).

Modification des lignes

Nous pouvons également accéder au Rangs pour modifier une ligne spécifique. Au moment de la rédaction de ce document, la seule propriété pouvant être modifiée sur une rangée est la suivante Hauteur.

Pour spécifier la rangée à modifier, nous indiquons l'index (0 = rangée 1).

// Modifying Rows
	using( var document = Workbook.Load( "testDoc.xlsx" ));
	{
		var worksheet = document.Worksheets[ 0 ];
		
		// modifying row 1
		worksheet.Rows[ 0 ].Height = 85d;
		
		// modifying row 2
		worksheet.Rows[ 1 ].Height = 65d;
		
		// save the modifications
		document.Save();
	}

Note:

  • An AutoFit() method on Row will be available in the next release of the product, and will function in a similar way to the AutoFit() method on Column.

Pour plus d'informations, veuillez vous référer à la la documentation.