Compartilhar via


MergeCells Classe

Definição

Define a Classe MergeCells.

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

Quando o objeto é serializado como xml, o 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 seguinte intercala duas células adjacentes numa folha de cálculo existente. Depois de executar o exemplo, observe o ficheiro e repare nas células unidas.

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 (Unir Células)

Esta coleção expressa todas as células unidas na folha.

[Exemplo:

Este exemplo mostra que três intervalos são intercalados. A formatação e o conteúdo do intervalo intercalado 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
folha de cálculo (}18.3.1.99)
Elementos filho Subclautilizar
mergeCell (Célula Unida) §18.3.1.54
Atributos Descrição
count (Count) Uma contagem de coleções de células unidas.

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

[Nota: a definição de Esquema XML W3C do modelo de conteúdo deste elemento (CT_MergeCells) está localizada em {A.2. nota de fim]

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 subordinados especificados.

MergeCells(OpenXmlElement[])

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

MergeCells(String)

Inicializa uma nova instância da classe MergeCells a partir de XML externo.

Propriedades

ChildElements

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

(Herdado de OpenXmlElement)
Count

Contar

Representa o seguinte atributo no esquema: count

ExtendedAttributes

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

(Herdado de OpenXmlElement)
Features

Obtém um IFeatureCollection para o elemento atual. Esta coleção de funcionalidades será só de leitura, mas herdará as funcionalidades da parte principal e do pacote, se disponível.

(Herdado de OpenXmlElement)
FirstChild

Obtém o primeiro elemento subordinado 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 subordinados.

(Herdado de OpenXmlCompositeElement)
InnerText

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

(Herdado de OpenXmlCompositeElement)
InnerXml

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

(Herdado de OpenXmlCompositeElement)
LastChild

Obtém o último elemento subordinado do elemento OpenXmlElement atual. Devolve nulo (Nada no Visual Basic) se não existir esse elemento OpenXmlElement.

(Herdado de OpenXmlCompositeElement)
LocalName

Define a Classe MergeCells.

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

Quando o objeto é serializado como xml, o 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 markup. Devolve nulo se não forem definidos atributos de compatibilidade de markup para o elemento atual.

(Herdado de OpenXmlElement)
NamespaceDeclarations

Obtém todas as declarações de espaço de nomes definidas no elemento atual. Devolve um enumerador vazio se não existir nenhuma declaração de espaço de nomes.

(Herdado de OpenXmlElement)
NamespaceUri

Obtém o URI do espaço de nomes 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 respetivos elementos subordinados.

(Herdado de OpenXmlElement)
Parent

Obtém o elemento principal do elemento atual.

(Herdado de OpenXmlElement)
Prefix

Obtém o prefixo de espaço de nomes 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 for um subordinado conhecido. Esta ação adiciona o elemento na localização correta de acordo com o esquema.

(Herdado de OpenXmlCompositeElement)
AddNamespaceDeclaration(String, String)

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

(Herdado de OpenXmlElement)
Ancestors()

Enumera todos os predecessores do elemento atual.

(Herdado de OpenXmlElement)
Ancestors<T>()

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

(Herdado de OpenXmlElement)
Annotation(Type)

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

(Herdado de OpenXmlElement)
Annotation<T>()

Obtenha o primeiro objeto de anotação do tipo especificado a partir 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 fim da lista de elementos subordinados do elemento atual.

(Herdado de OpenXmlElement)
Append(OpenXmlElement[])

Acrescenta cada elemento de uma matriz de elementos ao fim da lista de elementos subordinados do elemento atual.

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

Acrescenta o elemento especificado ao fim da lista de nós subordinados do elemento atual.

(Herdado de OpenXmlCompositeElement)
ClearAllAttributes()

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

(Herdado de OpenXmlElement)
Clone()

Cria um duplicado do nó atual.

(Herdado de OpenXmlElement)
CloneNode(Boolean)

Cria um duplicado deste nó.

Descendants()

Enumera todos os descendentes do elemento atual.

(Herdado de OpenXmlElement)
Descendants<T>()

Enumerar todos os descendentes do elemento atual do tipo T.

(Herdado de OpenXmlElement)
Elements()

Enumera todos os elementos subordinados do elemento atual.

(Herdado de OpenXmlElement)
Elements<T>()

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

(Herdado de OpenXmlElement)
ElementsAfter()

Enumera todos os elementos do elemento colateral que seguem o elemento atual e têm o mesmo elemento principal que o elemento atual.

(Herdado de OpenXmlElement)
ElementsBefore()

Enumera todos os elementos do elemento colateral que precedem o elemento atual e têm o mesmo elemento principal que o elemento atual.

(Herdado de OpenXmlElement)
GetAttribute(String, String)

Obtém um atributo Open XML com o nome da etiqueta especificado e o URI do espaço de nomes.

(Herdado de OpenXmlElement)
GetAttributes()

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

(Herdado de OpenXmlElement)
GetEnumerator()

Devolve um enumerador que itera através da coleção subordinada.

(Herdado de OpenXmlElement)
GetFirstChild<T>()

Localiza o primeiro elemento subordinado 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 subordinados 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 aparece depois de um elemento especificado na ordem do documento.

(Herdado de OpenXmlElement)
IsBefore(OpenXmlElement)

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

(Herdado de OpenXmlElement)
LookupNamespace(String)

Resolve o prefixo do espaço de nomes no contexto do nó atual.

(Herdado de OpenXmlElement)
LookupPrefix(String)

Localiza o prefixo correspondente para um URI de espaço de nomes no âmbito do elemento atual.

(Herdado de OpenXmlElement)
NextSibling()

Obtém o elemento OpenXmlElement que segue imediatamente o elemento OpenXmlElement atual. Devolve nulo (Nada no Visual Basic) se não existir nenhum elemento OpenXmlElement seguinte.

(Herdado de OpenXmlElement)
NextSibling<T>()

Obtém o elemento OpenXmlElement com o tipo especificado que segue o elemento OpenXmlElement atual. Devolve nulo (Nada no Visual Basic) se não existir um OpenXmlElement seguinte.

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

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

(Herdado de OpenXmlCompositeElement)
PreviousSibling()

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

(Herdado de OpenXmlElement)
PreviousSibling<T>()

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

(Herdado de OpenXmlElement)
Remove()

Remove o elemento atual do respetivo elemento principal.

(Herdado de OpenXmlElement)
RemoveAllChildren()

Remove todos os elementos subordinados do elemento atual.

(Herdado de OpenXmlCompositeElement)
RemoveAllChildren<T>()

Remova todos os elementos subordinados 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 subordinado especificado.

(Herdado de OpenXmlCompositeElement)
RemoveNamespaceDeclaration(String)

Remove a declaração de espaço de nomes para o prefixo especificado. Não remove nada se não existir um prefixo.

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

Substitui um dos elementos subordinados 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 é definido. Se o atributo for um atributo expandido, o "openxmlAttribute" é adicionado à lista de atributos expandidos.

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

Define vários atributos para o elemento . Se um atributo for um atributo conhecido, o valor do atributo é definido. Se um atributo for um atributo expandido, o "openxmlAttribute" é adicionado à lista de atributos expandidos.

(Herdado de OpenXmlElement)
WriteTo(XmlWriter)

Guarda o nó atual no XmlWriter especificado.

(Herdado de OpenXmlElement)

Implantações explícitas de interface

IEnumerable.GetEnumerator()

Define a Classe MergeCells.

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

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

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

Devolve um enumerador que itera através da coleção subordinada.

(Herdado de OpenXmlElement)

Aplica-se a