Partager via


MergeCells Classe

Définition

Définit la classe MergeCells.

Cette classe est disponible dans Office 2007 et versions ultérieures.

Lorsque l’objet est sérialisé au format xml, son nom qualifié est x :mergeCells.

[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)]
[DocumentFormat.OpenXml.SchemaAttr(22, "mergeCells")]
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr(22, "mergeCells")]
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr("x:mergeCells")]
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.SchemaAttr("x:mergeCells")]
public class MergeCells : DocumentFormat.OpenXml.TypedOpenXmlCompositeElement
[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))]
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
[DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))]
[DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)]
public class MergeCells : DocumentFormat.OpenXml.OpenXmlCompositeElement
[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)>]
[<DocumentFormat.OpenXml.SchemaAttr(22, "mergeCells")>]
type MergeCells = class
    inherit OpenXmlCompositeElement
type MergeCells = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr(22, "mergeCells")>]
type MergeCells = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr("x:mergeCells")>]
type MergeCells = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.SchemaAttr("x:mergeCells")>]
type MergeCells = class
    inherit TypedOpenXmlCompositeElement
[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))>]
type MergeCells = class
    inherit OpenXmlCompositeElement
[<DocumentFormat.OpenXml.ChildElementInfo(typeof(DocumentFormat.OpenXml.Spreadsheet.MergeCell))>]
[<DocumentFormat.OpenXml.OfficeAvailability(DocumentFormat.OpenXml.FileFormatVersions.Office2007)>]
type MergeCells = class
    inherit OpenXmlCompositeElement
Public Class MergeCells
Inherits OpenXmlCompositeElement
Public Class MergeCells
Inherits TypedOpenXmlCompositeElement
Héritage
Héritage
Attributs

Exemples

L’exemple de code suivant fusionne deux cellules adjacentes dans une feuille de calcul existante. Après avoir exécuté l’exemple, examinez le fichier et remarquez les cellules fusionnées.

using System;  
using System.Collections.Generic;  
using System.Linq;  
using DocumentFormat.OpenXml;  
using DocumentFormat.OpenXml.Packaging;  
using DocumentFormat.OpenXml.Spreadsheet;  
using System.Text.RegularExpressions;  

namespace MergeCellsEx  
{  
    class Program  
    {  
        // Merge two adjacent cells in a worksheet.  
        // Notice that after the merge, only the content from one cell is preserved.  
        static void Main(string[] args)  
        {  
            string docName = @"C:\Users\Public\Documents\MergeCellsEx.xlsx";  
            string sheetName = "mySheet";  
            string cell1Name = "A2";  
            string cell2Name = "B2";  

            using (SpreadsheetDocument document = SpreadsheetDocument.Open(docName, true))  
            {  
                Worksheet worksheet = GetWorksheet(document, sheetName);  
                // Create Spreadsheet cells.  
                CreateSpreadsheetCell(worksheet, cell1Name);  
                CreateSpreadsheetCell(worksheet, cell2Name);  
                MergeCells mergeCells;  

                if (worksheet.Elements<MergeCells>().Count() > 0)  
                    mergeCells = worksheet.Elements<MergeCells>().First();  
                else  
                {  
                    mergeCells = new MergeCells();  

                    // Insert a MergeCells object into the specified position.  
                    if (worksheet.Elements<CustomSheetView>().Count() > 0)  
                         worksheet.InsertAfter(mergeCells, worksheet.Elements<CustomSheetView>().First());  
                    else  
                        worksheet.InsertAfter(mergeCells, worksheet.Elements<SheetData>().First());  
                }  

                // Create the merged cell and append it to the MergeCells collection.  
                MergeCell mergeCell = new MergeCell() { Reference =   
                    new StringValue(cell1Name + ":" + cell2Name) };  
                mergeCells.Append(mergeCell);  
                worksheet.Save();  
            }  
            Console.WriteLine("The two cells are now merged.\nPress a key.");  
            Console.ReadKey();  
        }  

        // Get the specified worksheet.  
        private static Worksheet GetWorksheet(SpreadsheetDocument document, string worksheetName)  
        {  
            IEnumerable<Sheet> sheets = document.WorkbookPart.Workbook  
                .Descendants<Sheet>().Where(s => s.Name == worksheetName);  
            WorksheetPart worksheetPart = (WorksheetPart)document.WorkbookPart  
                .GetPartById(sheets.First().Id);  
            return worksheetPart.Worksheet;  
        }  

        // Create a spreadsheet cell.   
        private static void CreateSpreadsheetCell(Worksheet worksheet, string cellName)  
        {  
            string columnName = GetColumnName(cellName);  
            uint rowIndex = 2;  
            IEnumerable<Row> rows = worksheet.Descendants<Row>().Where(r => r  
                .RowIndex.Value == rowIndex);  
            Row row = rows.First();  
            IEnumerable<Cell> cells = row.Elements<Cell>().Where(c => c.CellReference  
                .Value == cellName);  
        }  

        // Parse the cell name to get the column name.  
        private static string GetColumnName(string cellName)  
        {  
            // Create a regular expression to match the column name portion of the cell name.  
            Regex regex = new Regex("[A-Za-z]+");  
            Match match = regex.Match(cellName);  
            return match.Value;  
        }  
    }  
}  
Imports System.Collections.Generic  
Imports System.Linq  
Imports DocumentFormat.OpenXml  
Imports DocumentFormat.OpenXml.Packaging  
Imports DocumentFormat.OpenXml.Spreadsheet  
Imports System.Text.RegularExpressions  

Module Module1  
    ' Merge two adjacent cells in a worksheet.  
    ' Notice that after the merge, only the content from one cell is preserved.  
    Sub Main(ByVal args As String())  
        Dim docName As String = "C:\Users\Public\Documents\MergeCellsEx.xlsx"  
        Dim sheetName As String = "mySheet"  
        Dim cell1Name As String = "A2"  
        Dim cell2Name As String = "B2"  

        Using document As SpreadsheetDocument = SpreadsheetDocument.Open(docName, True)  
            Dim worksheet As Worksheet = GetWorksheet(document, sheetName)  
            ' Create Spreadsheet cells.  
            CreateSpreadsheetCell(worksheet, cell1Name)  
            CreateSpreadsheetCell(worksheet, cell2Name)  
            Dim mergeCells As MergeCells  

            If worksheet.Elements(Of MergeCells)().Count() > 0 Then  
                mergeCells = worksheet.Elements(Of MergeCells)().First()  
            Else  
                mergeCells = New MergeCells()  

                ' Insert a MergeCells object into the specified position.  
                If worksheet.Elements(Of CustomSheetView)().Count() > 0 Then  
                    worksheet.InsertAfter(mergeCells, worksheet.Elements(Of CustomSheetView)().First())  
                Else  
                    worksheet.InsertAfter(mergeCells, worksheet.Elements(Of SheetData)().First())  
                End If  
            End If  

            ' Create the merged cell and append it to the MergeCells collection.  
            Dim mergeCell As New MergeCell() With { _  
             .Reference = New StringValue(cell1Name & ":" & cell2Name) _  
            }  
            mergeCells.Append(mergeCell)  
            worksheet.Save()  
        End Using  
        Console.WriteLine("The two cells are now merged." & vbLf & "Press a key.")  
        Console.ReadKey()  
    End Sub  

    ' Get the specified worksheet.  
    Private Function GetWorksheet(ByVal document As SpreadsheetDocument, ByVal worksheetName As String) As Worksheet  
        Dim sheets As IEnumerable(Of Sheet) = document.WorkbookPart.Workbook.Descendants(Of Sheet)().Where(Function(s) s.Name = worksheetName)  
        Dim worksheetPart As WorksheetPart = DirectCast(document.WorkbookPart.GetPartById(sheets.First().Id), WorksheetPart)  
        Return worksheetPart.Worksheet  
    End Function  

    ' Create a spreadsheet cell.   
    Private Sub CreateSpreadsheetCell(ByVal worksheet As Worksheet, ByVal cellName As String)  
        Dim columnName As String = GetColumnName(cellName)  
        Dim rowIndex As UInteger = 2  
        Dim rows As IEnumerable(Of Row) = worksheet.Descendants(Of Row)().Where(Function(r) r.RowIndex.Value = rowIndex)  
        Dim row As Row = rows.First()  
        Dim cells As IEnumerable(Of Cell) = row.Elements(Of Cell)().Where(Function(c) c.CellReference.Value = cellName)  
    End Sub  

    ' Parse the cell name to get the column name.  
    Private Function GetColumnName(ByVal cellName As String) As String  
        ' Create a regular expression to match the column name portion of the cell name.  
        Dim regex As New Regex("[A-Za-z]+")  
        Dim match As Match = regex.Match(cellName)  
        Return match.Value  
    End Function  
End Module  

Remarques

[ISO/IEC 29500-1 1st Edition]

mergeCells (Fusionner des cellules)

Cette collection exprime toutes les cellules fusionnées dans la feuille.

[Exemple :

Cet exemple montre que trois plages sont fusionnées. La mise en forme et le contenu de la plage fusionnée sont toujours stockés dans la cellule supérieure gauche.

<mergeCells>  
  <mergeCell ref="C2:F2"/>  
  <mergeCell ref="B19:C20"/>  
  <mergeCell ref="E19:G19"/>  
</mergeCells>  

Fin de l’exemple]

Éléments parents
feuille de calcul (§18.3.1.99)
Éléments enfants Paragraphe
mergeCell (cellule fusionnée) §18.3.1.54
Attributs Description
count (Count) Nombre de collections de cellules fusionnées.

Les valeurs possibles de cet attribut sont définies par le type de données unsignedInt du schéma XML du W3C.

[Remarque : La définition de schéma XML W3C du modèle de contenu de cet élément (CT_MergeCells) se trouve dans §A.2. Fin de la remarque]

ISO/IEC29500 : 2008.

Constructeurs

MergeCells()

Initialise une nouvelle instance de la classe MergeCells.

MergeCells(IEnumerable<OpenXmlElement>)

Initialise une nouvelle instance de la classe MergeCells avec les éléments enfants spécifiés.

MergeCells(OpenXmlElement[])

Initialise une nouvelle instance de la classe MergeCells avec les éléments enfants spécifiés.

MergeCells(String)

Initialise une nouvelle instance de la classe MergeCells à partir du code XML externe.

Propriétés

ChildElements

Obtient tous les nœuds enfants de l’élément actuel.

(Hérité de OpenXmlElement)
Count

Compte

Représente l’attribut suivant dans le schéma : count

ExtendedAttributes

Obtient tous les attributs étendus (attributs non définis dans le schéma) de l’élément actuel.

(Hérité de OpenXmlElement)
Features

Obtient un IFeatureCollection pour l’élément actuel. Cette collection de fonctionnalités sera en lecture seule, mais héritera des fonctionnalités de sa partie parente et de son package, le cas échéant.

(Hérité de OpenXmlElement)
FirstChild

Obtient le premier enfant de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlCompositeElement)
HasAttributes

Obtient une valeur indiquant si l’élément actuel a des attributs.

(Hérité de OpenXmlElement)
HasChildren

Obtient une valeur qui indique si l’élément actuel a des éléments enfants.

(Hérité de OpenXmlCompositeElement)
InnerText

Obtient ou définit les valeurs concaténées du nœud actuel et de tous ses enfants.

(Hérité de OpenXmlCompositeElement)
InnerXml

Obtient ou définit le balisage qui représente uniquement les nœuds enfants du nœud actuel.

(Hérité de OpenXmlCompositeElement)
LastChild

Obtient le dernier enfant de l’élément OpenXmlElement actuel. Retourne null (Nothing en Visual Basic) s’il n’existe aucun élément OpenXmlElement de ce type.

(Hérité de OpenXmlCompositeElement)
LocalName

Définit la classe MergeCells.

Cette classe est disponible dans Office 2007 et versions ultérieures.

Lorsque l’objet est sérialisé au format xml, son nom qualifié est x :mergeCells.

LocalName

Obtient le nom local de l’élément actuel.

(Hérité de OpenXmlElement)
MCAttributes

Obtient ou définit les attributs de compatibilité du balisage. Retourne null si aucun attribut de compatibilité de balisage n’est défini pour l’élément actuel.

(Hérité de OpenXmlElement)
NamespaceDeclarations

Obtient toutes les déclarations d’espace de noms définies dans l’élément actuel. Retourne un énumérateur vide s’il n’y a pas de déclaration d’espace de noms.

(Hérité de OpenXmlElement)
NamespaceUri

Obtient l’URI d’espace de noms de l’élément actuel.

(Hérité de OpenXmlElement)
OpenXmlElementContext

Obtient l’élément OpenXmlElementContext de l’élément actuel.

(Hérité de OpenXmlElement)
OuterXml

Obtient le balisage qui représente l’élément actuel et tous ses éléments enfants.

(Hérité de OpenXmlElement)
Parent

Obtient l’élément parent de l’élément actuel.

(Hérité de OpenXmlElement)
Prefix

Obtient le préfixe d’espace de noms de l’élément actuel.

(Hérité de OpenXmlElement)
XmlQualifiedName

Obtient le nom qualifié de l’élément actuel.

(Hérité de OpenXmlElement)
XName

Obtient le nom qualifié de l’élément actuel.

(Hérité de OpenXmlElement)

Méthodes

AddAnnotation(Object)

Ajoute un objet à la liste d’annotations de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
AddChild(OpenXmlElement, Boolean)

Ajoute l’élément spécifié à l’élément s’il s’agit d’un enfant connu. Cela ajoute l’élément à l’emplacement approprié en fonction du schéma.

(Hérité de OpenXmlCompositeElement)
AddNamespaceDeclaration(String, String)

Ajoute une déclaration d’espace de noms au nœud actuel.

(Hérité de OpenXmlElement)
Ancestors()

Énumère tous les ancêtres de l’élément actuel.

(Hérité de OpenXmlElement)
Ancestors<T>()

Énumère uniquement les ancêtres de l’élément actuel qui ont le type spécifié.

(Hérité de OpenXmlElement)
Annotation(Type)

Obtenez le premier objet d’annotation du type spécifié à partir de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
Annotation<T>()

Obtenez le premier objet d’annotation du type spécifié à partir de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
Annotations(Type)

Obtient une collection d’annotations avec le type spécifié pour l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
Annotations<T>()

Obtient une collection d’annotations avec le type spécifié pour l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
Append(IEnumerable<OpenXmlElement>)

Ajoute chaque élément d’une liste d’éléments à la fin de la liste des éléments enfants de l’élément actuel.

(Hérité de OpenXmlElement)
Append(OpenXmlElement[])

Ajoute chaque élément d’un tableau d’éléments à la fin de la liste des éléments enfants de l’élément actuel.

(Hérité de OpenXmlElement)
AppendChild<T>(T)

Ajoute l’élément spécifié à la fin de la liste des nœuds enfants de l’élément actuel.

(Hérité de OpenXmlCompositeElement)
ClearAllAttributes()

Efface tous les attributs, y compris les attributs connus et les attributs étendus.

(Hérité de OpenXmlElement)
Clone()

Crée un doublon du nœud actuel.

(Hérité de OpenXmlElement)
CloneNode(Boolean)

Crée un doublon de ce nœud.

Descendants()

Énumère tous les descendants de l’élément actuel.

(Hérité de OpenXmlElement)
Descendants<T>()

Énumérez tous les descendants de l’élément actuel de type T.

(Hérité de OpenXmlElement)
Elements()

Énumère tous les enfants de l’élément actuel.

(Hérité de OpenXmlElement)
Elements<T>()

Énumère uniquement les enfants de l’élément actuel qui ont le type spécifié.

(Hérité de OpenXmlElement)
ElementsAfter()

Énumère tous les éléments frères qui suivent l’élément actuel et ont le même parent que l’élément actuel.

(Hérité de OpenXmlElement)
ElementsBefore()

Énumère tous les éléments frères qui précèdent l’élément actuel et ont le même parent que l’élément actuel.

(Hérité de OpenXmlElement)
GetAttribute(String, String)

Obtient un attribut Open XML avec le nom de balise et l’URI d’espace de noms spécifiés.

(Hérité de OpenXmlElement)
GetAttributes()

Obtient une liste qui contient une copie de tous les attributs.

(Hérité de OpenXmlElement)
GetEnumerator()

Retourne un énumérateur qui itère au sein de la collection enfant.

(Hérité de OpenXmlElement)
GetFirstChild<T>()

Recherche le premier élément enfant de type T.

(Hérité de OpenXmlElement)
InsertAfter<T>(T, OpenXmlElement)

Insère l’élément spécifié immédiatement après l’élément de référence spécifié.

(Hérité de OpenXmlCompositeElement)
InsertAfterSelf<T>(T)

Insère l’élément spécifié immédiatement après l’élément actuel.

(Hérité de OpenXmlElement)
InsertAt<T>(T, Int32)

Insère l’élément spécifié à l’index spécifié des enfants de l’élément actuel.

(Hérité de OpenXmlCompositeElement)
InsertBefore<T>(T, OpenXmlElement)

Insère l’élément spécifié juste avant l’élément de référence spécifié.

(Hérité de OpenXmlCompositeElement)
InsertBeforeSelf<T>(T)

Insère l’élément spécifié juste avant l’élément actuel.

(Hérité de OpenXmlElement)
IsAfter(OpenXmlElement)

Détermine si l’élément actuel apparaît après un élément spécifié dans l’ordre du document.

(Hérité de OpenXmlElement)
IsBefore(OpenXmlElement)

Détermine si l’élément actuel apparaît avant un élément spécifié dans l’ordre du document.

(Hérité de OpenXmlElement)
LookupNamespace(String)

Résout le préfixe d’espace de noms dans le contexte du nœud actuel.

(Hérité de OpenXmlElement)
LookupPrefix(String)

Recherche le préfixe correspondant pour un URI d’espace de noms dans l’étendue de l’élément actuel.

(Hérité de OpenXmlElement)
NextSibling()

Obtient l’élément OpenXmlElement qui suit immédiatement l’élément OpenXmlElement actuel. Retourne null (Nothing en Visual Basic) s’il n’existe aucun élément OpenXmlElement suivant.

(Hérité de OpenXmlElement)
NextSibling<T>()

Obtient l’élément OpenXmlElement avec le type spécifié qui suit l’élément OpenXmlElement actuel. Retourne null (Nothing en Visual Basic) s’il n’y a pas d’élément OpenXmlElement suivant.

(Hérité de OpenXmlElement)
PrependChild<T>(T)

Insère l’élément spécifié au début de la liste des nœuds enfants de l’élément actuel.

(Hérité de OpenXmlCompositeElement)
PreviousSibling()

Obtient l’élément OpenXmlElement qui précède immédiatement l’élément OpenXmlElement actuel. Retourne null (Nothing en Visual Basic ) s’il n’existe aucun élément OpenXmlElement précédent.

(Hérité de OpenXmlElement)
PreviousSibling<T>()

Obtient l’élément OpenXmlElement avec le type spécifié qui précède l’élément OpenXmlElement actuel. Retourne null (Nothing en Visual Basic) s’il n’existe aucun élément OpenXmlElement précédent.

(Hérité de OpenXmlElement)
Remove()

Supprime l’élément actuel de son parent.

(Hérité de OpenXmlElement)
RemoveAllChildren()

Supprime tous les éléments enfants de l’élément actuel.

(Hérité de OpenXmlCompositeElement)
RemoveAllChildren<T>()

Supprimez tous les éléments enfants de l’élément actuel qui sont de type T.

(Hérité de OpenXmlElement)
RemoveAnnotations(Type)

Supprime les annotations du type spécifié de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
RemoveAnnotations<T>()

Supprime les annotations avec le type spécifié de l’élément OpenXmlElement actuel.

(Hérité de OpenXmlElement)
RemoveAttribute(String, String)

Supprime l’attribut de l’élément actuel.

(Hérité de OpenXmlElement)
RemoveChild<T>(T)

Supprime l’élément enfant spécifié.

(Hérité de OpenXmlCompositeElement)
RemoveNamespaceDeclaration(String)

Supprime la déclaration d’espace de noms pour le préfixe spécifié. Ne supprime rien s’il n’y a pas de préfixe.

(Hérité de OpenXmlElement)
ReplaceChild<T>(OpenXmlElement, T)

Remplace l’un des éléments enfants de l’élément actuel par un autre élément OpenXmlElement.

(Hérité de OpenXmlCompositeElement)
SetAttribute(OpenXmlAttribute)

Définit un attribut sur l’élément spécifié. Si l’attribut est un attribut connu, la valeur de l’attribut est définie. Si l’attribut est un attribut étendu, l’attribut « openxmlAttribute » est ajouté à la liste des attributs étendus.

(Hérité de OpenXmlElement)
SetAttributes(IEnumerable<OpenXmlAttribute>)

Définit un certain nombre d’attributs à l’élément . Si un attribut est un attribut connu, la valeur de l’attribut est définie. Si un attribut est un attribut étendu, l’attribut « openxmlAttribute » est ajouté à la liste des attributs étendus.

(Hérité de OpenXmlElement)
WriteTo(XmlWriter)

Enregistre le nœud actuel dans le XmlWriter spécifié.

(Hérité de OpenXmlElement)

Implémentations d’interfaces explicites

IEnumerable.GetEnumerator()

Définit la classe MergeCells.

Cette classe est disponible dans Office 2007 et versions ultérieures.

Lorsque l’objet est sérialisé au format xml, son nom qualifié est x :mergeCells.

(Hérité de OpenXmlElement)
IEnumerable<OpenXmlElement>.GetEnumerator()

Retourne un énumérateur qui itère au sein de la collection enfant.

(Hérité de OpenXmlElement)

S’applique à