MergeCells Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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) |