Compartilhar via


MergeCells Classe

Definição

Define a classe MergeCells.

Essa classe está disponível no Office 2007 e superior.

Quando o objeto é serializado como xml, seu nome qualificado é 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
Herança
Herança
Atributos

Exemplos

O exemplo de código a seguir mescla duas células adjacentes em uma planilha existente. Depois de executar o exemplo, dê uma olhada no arquivo e observe as células mescladas.

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  

Comentários

[ISO/IEC 29500-1 1st Edition]

mergeCells (mesclagem de células)

Essa coleção expressa todas as células mescladas na planilha.

[Exemplo:

Este exemplo mostra que três intervalos são mesclados. A formatação e o conteúdo do intervalo mesclado são sempre armazenados na célula superior esquerda.

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

exemplo final]

Elementos pai
planilha (§18.3.1.99)
Elementos filho Subclause
mergeCell (célula mesclada) §18.3.1.54
Atributos Descrição
contagem (Contagem) Uma contagem de coleções de células mescladas.

Os valores possíveis para esse atributo são definidos pelo tipo de dados W3C XML Schema unsignedInt .

[Observação: a definição de Esquema XML do W3C do modelo de conteúdo desse elemento (CT_MergeCells) está localizada em §A.2. nota final]

ISO/IEC29500: 2008.

Construtores

MergeCells()

Inicializa uma nova instância da classe MergeCells.

MergeCells(IEnumerable<OpenXmlElement>)

Inicializa uma nova instância da classe MergeCells com os elementos filho especificados.

MergeCells(OpenXmlElement[])

Inicializa uma nova instância da classe MergeCells com os elementos filho especificados.

MergeCells(String)

Inicializa uma nova instância da classe MergeCells do XML externo.

Propriedades

ChildElements

Obtém todos os nós filho do elemento atual.

(Herdado de OpenXmlElement)
Count

Contar

Representa o seguinte atributo no esquema: contagem

ExtendedAttributes

Obtém todos os atributos estendidos (atributos não definidos no esquema) do elemento atual.

(Herdado de OpenXmlElement)
Features

Obtém um IFeatureCollection para o elemento atual. Essa coleção de recursos será somente leitura, mas herdará recursos de sua parte pai e pacote, se disponível.

(Herdado de OpenXmlElement)
FirstChild

Obtém o primeiro filho do elemento OpenXmlElement atual.

(Herdado de OpenXmlCompositeElement)
HasAttributes

Obtém um valor que indica se o elemento atual tem atributos.

(Herdado de OpenXmlElement)
HasChildren

Obtém um valor que indica se o elemento atual tem elementos filho.

(Herdado de OpenXmlCompositeElement)
InnerText

Obtém ou define os valores concatenados do nó atual e de todos os seus filhos.

(Herdado de OpenXmlCompositeElement)
InnerXml

Obtém ou define a marcação que representa apenas os nós filho do nó atual.

(Herdado de OpenXmlCompositeElement)
LastChild

Obtém o último filho do elemento OpenXmlElement atual. Retornará nulo (Nada no Visual Basic) se não houver esse elemento OpenXmlElement.

(Herdado de OpenXmlCompositeElement)
LocalName

Define a classe MergeCells.

Essa classe está disponível no Office 2007 e superior.

Quando o objeto é serializado como xml, seu nome qualificado é x:mergeCells.

LocalName

Obtém o nome local do elemento atual.

(Herdado de OpenXmlElement)
MCAttributes

Obtém ou define os atributos de compatibilidade de marcação. Retorna nulo se nenhum atributo de compatibilidade de marcação for definido para o elemento atual.

(Herdado de OpenXmlElement)
NamespaceDeclarations

Obtém todas as declarações de namespace definidas no elemento atual. Retornará um enumerador vazio se não houver nenhuma declaração de namespace.

(Herdado de OpenXmlElement)
NamespaceUri

Obtém o URI do namespace do elemento atual.

(Herdado de OpenXmlElement)
OpenXmlElementContext

Obtém o OpenXmlElementContext do elemento atual.

(Herdado de OpenXmlElement)
OuterXml

Obtém a marcação que representa o elemento atual e todos os seus elementos filho.

(Herdado de OpenXmlElement)
Parent

Obtém o elemento pai do elemento atual.

(Herdado de OpenXmlElement)
Prefix

Obtém o prefixo namespace do elemento atual.

(Herdado de OpenXmlElement)
XmlQualifiedName

Obtém o nome qualificado do elemento atual.

(Herdado de OpenXmlElement)
XName

Obtém o nome qualificado do elemento atual.

(Herdado de OpenXmlElement)

Métodos

AddAnnotation(Object)

Adiciona um objeto à lista de anotações do elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
AddChild(OpenXmlElement, Boolean)

Adiciona o elemento especificado ao elemento se ele for uma criança conhecida. Isso adiciona o elemento no local correto de acordo com o esquema.

(Herdado de OpenXmlCompositeElement)
AddNamespaceDeclaration(String, String)

Adiciona uma declaração de namespace ao nó atual.

(Herdado de OpenXmlElement)
Ancestors()

Enumera todos os ancestrais do elemento atual.

(Herdado de OpenXmlElement)
Ancestors<T>()

Enumera apenas os ancestrais do elemento atual que têm o tipo especificado.

(Herdado de OpenXmlElement)
Annotation(Type)

Obtenha o primeiro objeto de anotação do tipo especificado do elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
Annotation<T>()

Obtenha o primeiro objeto de anotação do tipo especificado do elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
Annotations(Type)

Obtém uma coleção de anotações com o tipo especificado para o elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
Annotations<T>()

Obtém uma coleção de anotações com o tipo especificado para o elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
Append(IEnumerable<OpenXmlElement>)

Acrescenta cada elemento de uma lista de elementos ao final da lista de elementos filho do elemento atual.

(Herdado de OpenXmlElement)
Append(OpenXmlElement[])

Acrescenta cada elemento de uma matriz de elementos até o final da lista de elementos filho do elemento atual.

(Herdado de OpenXmlElement)
AppendChild<T>(T)

Acrescenta o elemento especificado ao final da lista de nós filho do elemento atual.

(Herdado de OpenXmlCompositeElement)
ClearAllAttributes()

Limpa todos os atributos, incluindo atributos conhecidos e atributos estendidos.

(Herdado de OpenXmlElement)
Clone()

Cria uma duplicata do nó atual.

(Herdado de OpenXmlElement)
CloneNode(Boolean)

Cria uma duplicata desse nó.

Descendants()

Enumera todos os descendentes do elemento atual.

(Herdado de OpenXmlElement)
Descendants<T>()

Enumera todos os descendentes do elemento atual do tipo T.

(Herdado de OpenXmlElement)
Elements()

Enumera todos os filhos do elemento atual.

(Herdado de OpenXmlElement)
Elements<T>()

Enumera apenas os filhos do elemento atual que têm o tipo especificado.

(Herdado de OpenXmlElement)
ElementsAfter()

Enumera todos os elementos irmãos que seguem o elemento atual e têm o mesmo pai que o elemento atual.

(Herdado de OpenXmlElement)
ElementsBefore()

Enumera todos os elementos irmãos que precedem o elemento atual e têm o mesmo pai que o elemento atual.

(Herdado de OpenXmlElement)
GetAttribute(String, String)

Obtém um atributo Open XML com o nome da marca e o URI do namespace especificados.

(Herdado de OpenXmlElement)
GetAttributes()

Obtém uma lista que contém uma cópia de todos os atributos.

(Herdado de OpenXmlElement)
GetEnumerator()

Retorna um enumerador que itera por meio da coleção filho.

(Herdado de OpenXmlElement)
GetFirstChild<T>()

Localiza o primeiro elemento filho no tipo T.

(Herdado de OpenXmlElement)
InsertAfter<T>(T, OpenXmlElement)

Insere o elemento especificado imediatamente após o elemento de referência especificado.

(Herdado de OpenXmlCompositeElement)
InsertAfterSelf<T>(T)

Insere o elemento especificado imediatamente após o elemento atual.

(Herdado de OpenXmlElement)
InsertAt<T>(T, Int32)

Insere o elemento especificado no índice especificado dos filhos do elemento atual.

(Herdado de OpenXmlCompositeElement)
InsertBefore<T>(T, OpenXmlElement)

Insere o elemento especificado imediatamente antes do elemento de referência especificado.

(Herdado de OpenXmlCompositeElement)
InsertBeforeSelf<T>(T)

Insere o elemento especificado imediatamente antes do elemento atual.

(Herdado de OpenXmlElement)
IsAfter(OpenXmlElement)

Determina se o elemento atual é exibido após um elemento especificado na ordem do documento.

(Herdado de OpenXmlElement)
IsBefore(OpenXmlElement)

Determina se o elemento atual é exibido antes de um elemento especificado na ordem do documento.

(Herdado de OpenXmlElement)
LookupNamespace(String)

Resolve o prefixo namespace no contexto do nó atual.

(Herdado de OpenXmlElement)
LookupPrefix(String)

Localiza o prefixo correspondente para um uri de namespace no escopo do elemento atual.

(Herdado de OpenXmlElement)
NextSibling()

Obtém o elemento OpenXmlElement que segue imediatamente o elemento OpenXmlElement atual. Retorna nulo (Nada no Visual Basic) se não houver nenhum próximo elemento OpenXmlElement.

(Herdado de OpenXmlElement)
NextSibling<T>()

Obtém o elemento OpenXmlElement com o tipo especificado que segue o elemento OpenXmlElement atual. Retornará nulo (Nada no Visual Basic) se não houver o próximo OpenXmlElement.

(Herdado de OpenXmlElement)
PrependChild<T>(T)

Insere o elemento especificado no início da lista de nós filho do elemento atual.

(Herdado de OpenXmlCompositeElement)
PreviousSibling()

Obtém o elemento OpenXmlElement que precede imediatamente o elemento OpenXmlElement atual. Retorna nulo (Nada no Visual Basic ) se não houver nenhum elemento OpenXmlElement anterior.

(Herdado de OpenXmlElement)
PreviousSibling<T>()

Obtém o elemento OpenXmlElement com o tipo especificado que precede o OpenXmlElement atual. Retorna nulo (Nada no Visual Basic) se não houver nenhum elemento OpenXmlElement anterior.

(Herdado de OpenXmlElement)
Remove()

Remove o elemento atual de seu pai.

(Herdado de OpenXmlElement)
RemoveAllChildren()

Remove todos os elementos filho do elemento atual.

(Herdado de OpenXmlCompositeElement)
RemoveAllChildren<T>()

Remova todos os elementos filho do elemento atual que são do tipo T.

(Herdado de OpenXmlElement)
RemoveAnnotations(Type)

Remove as anotações do tipo especificado do elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
RemoveAnnotations<T>()

Remove as anotações com o tipo especificado do elemento OpenXmlElement atual.

(Herdado de OpenXmlElement)
RemoveAttribute(String, String)

Remove o atributo do elemento atual.

(Herdado de OpenXmlElement)
RemoveChild<T>(T)

Remove o elemento filho especificado.

(Herdado de OpenXmlCompositeElement)
RemoveNamespaceDeclaration(String)

Remove a declaração de namespace do prefixo especificado. Não removerá nada se não houver nenhum prefixo.

(Herdado de OpenXmlElement)
ReplaceChild<T>(OpenXmlElement, T)

Substitui um dos elementos filho do elemento atual por outro elemento OpenXmlElement.

(Herdado de OpenXmlCompositeElement)
SetAttribute(OpenXmlAttribute)

Define um atributo para o elemento especificado. Se o atributo for um atributo conhecido, o valor do atributo será definido. Se o atributo for um atributo estendido, o 'openxmlAttribute' será adicionado à lista de atributos estendidos.

(Herdado de OpenXmlElement)
SetAttributes(IEnumerable<OpenXmlAttribute>)

Define uma série de atributos para o elemento. Se um atributo for um atributo conhecido, o valor do atributo será definido. Se um atributo for um atributo estendido, o 'openxmlAttribute' será adicionado à lista de atributos estendidos.

(Herdado de OpenXmlElement)
WriteTo(XmlWriter)

Salva o nó atual no XmlWriter especificado.

(Herdado de OpenXmlElement)

Implantações explícitas de interface

IEnumerable.GetEnumerator()

Define a classe MergeCells.

Essa classe está disponível no Office 2007 e superior.

Quando o objeto é serializado como xml, seu nome qualificado é x:mergeCells.

(Herdado de OpenXmlElement)
IEnumerable<OpenXmlElement>.GetEnumerator()

Retorna um enumerador que itera por meio da coleção filho.

(Herdado de OpenXmlElement)

Aplica-se a