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.
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) |