MergeCells Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define la clase MergeCells.
Esta clase está disponible en Office 2007 y versiones posteriores.
Cuando el objeto se serializa como xml, su nombre completo es 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
- Herencia
- Herencia
- Atributos
Ejemplos
En el ejemplo de código siguiente se combinan dos celdas adyacentes en una hoja de cálculo existente. Después de ejecutar el ejemplo, eche un vistazo al archivo y observe las celdas combinadas.
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
Comentarios
[ISO/IEC 29500-1 1.ª edición]
mergeCells (Combinar celdas)
Esta colección expresa todas las celdas combinadas de la hoja.
[Ejemplo:
En este ejemplo se muestra que se combinan tres intervalos. El formato y el contenido del rango combinado siempre se almacenan en la celda superior izquierda.
<mergeCells>
<mergeCell ref="C2:F2"/>
<mergeCell ref="B19:C20"/>
<mergeCell ref="E19:G19"/>
</mergeCells>
Fin del ejemplo]
Elementos primarios |
---|
hoja de cálculo (§18.3.1.99) |
Elementos secundarios | Subclause |
---|---|
mergeCell (celda combinada) | §18.3.1.54 |
Atributos | Descripción |
---|---|
count (Count) | Recuento de colecciones de celdas combinadas. Los valores posibles para este atributo los define el tipo de datos unsignedInt del esquema XML W3C. |
[Nota: La definición del esquema XML W3C del modelo de contenido de este elemento (CT_MergeCells) se encuentra en §A.2. Fin de la nota]
ISO/IEC29500: 2008.
Constructores
MergeCells() |
Inicializa una nueva instancia de la clase MergeCells. |
MergeCells(IEnumerable<OpenXmlElement>) |
Inicializa una nueva instancia de la clase MergeCells con los elementos secundarios especificados. |
MergeCells(OpenXmlElement[]) |
Inicializa una nueva instancia de la clase MergeCells con los elementos secundarios especificados. |
MergeCells(String) |
Inicializa una nueva instancia de la clase MergeCells a partir de XML externo. |
Propiedades
ChildElements |
Obtiene todos los nodos secundarios del elemento actual. (Heredado de OpenXmlElement) |
Count |
Count Representa el atributo siguiente en el esquema: count |
ExtendedAttributes |
Obtiene todos los atributos extendidos (atributos no definidos en el esquema) del elemento actual. (Heredado de OpenXmlElement) |
Features |
Obtiene un IFeatureCollection para el elemento actual. Esta colección de características será de solo lectura, pero heredará características de su elemento primario y paquete si está disponible. (Heredado de OpenXmlElement) |
FirstChild |
Obtiene el primer elemento secundario del elemento OpenXmlElement actual. (Heredado de OpenXmlCompositeElement) |
HasAttributes |
Obtiene un valor que indica si el elemento actual tiene atributos. (Heredado de OpenXmlElement) |
HasChildren |
Obtiene un valor que indica si el elemento actual tiene algún elemento secundario. (Heredado de OpenXmlCompositeElement) |
InnerText |
Obtiene o establece los valores concatenados del nodo actual y todos sus elementos secundarios. (Heredado de OpenXmlCompositeElement) |
InnerXml |
Obtiene o establece el marcado que representa solo los nodos secundarios del nodo actual. (Heredado de OpenXmlCompositeElement) |
LastChild |
Obtiene el último elemento secundario del elemento OpenXmlElement actual. Devuelve null (Nothing en Visual Basic) si no hay ningún elemento OpenXmlElement de este tipo. (Heredado de OpenXmlCompositeElement) |
LocalName |
Define la clase MergeCells. Esta clase está disponible en Office 2007 y versiones posteriores. Cuando el objeto se serializa como xml, su nombre completo es x:mergeCells. |
LocalName |
Obtiene el nombre local del elemento actual. (Heredado de OpenXmlElement) |
MCAttributes |
Obtiene o establece los atributos de compatibilidad de marcado. Devuelve null si no se definen atributos de compatibilidad de marcado para el elemento actual. (Heredado de OpenXmlElement) |
NamespaceDeclarations |
Obtiene todas las declaraciones de espacio de nombres definidas en el elemento actual. Devuelve un enumerador vacío si no hay ninguna declaración de espacio de nombres. (Heredado de OpenXmlElement) |
NamespaceUri |
Obtiene el URI del espacio de nombres del elemento actual. (Heredado de OpenXmlElement) |
OpenXmlElementContext |
Obtiene el Objeto OpenXmlElementContext del elemento actual. (Heredado de OpenXmlElement) |
OuterXml |
Obtiene el marcado que representa el elemento actual y todos sus elementos secundarios. (Heredado de OpenXmlElement) |
Parent |
Obtiene el elemento primario del elemento actual. (Heredado de OpenXmlElement) |
Prefix |
Obtiene el prefijo de espacio de nombres del elemento actual. (Heredado de OpenXmlElement) |
XmlQualifiedName |
Obtiene el nombre completo del elemento actual. (Heredado de OpenXmlElement) |
XName |
Obtiene el nombre completo del elemento actual. (Heredado de OpenXmlElement) |
Métodos
AddAnnotation(Object) |
Agrega un objeto a la lista de anotaciones del elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
AddChild(OpenXmlElement, Boolean) |
Agrega el elemento especificado al elemento si es un elemento secundario conocido. Esto agrega el elemento en la ubicación correcta según el esquema. (Heredado de OpenXmlCompositeElement) |
AddNamespaceDeclaration(String, String) |
Agrega una declaración de espacio de nombres al nodo actual. (Heredado de OpenXmlElement) |
Ancestors() |
Enumera todos los antecesores del elemento actual. (Heredado de OpenXmlElement) |
Ancestors<T>() |
Enumera solo los antecesores del elemento actual que tienen el tipo especificado. (Heredado de OpenXmlElement) |
Annotation(Type) |
Obtenga el primer objeto de anotación del tipo especificado del elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
Annotation<T>() |
Obtenga el primer objeto de anotación del tipo especificado del elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
Annotations(Type) |
Obtiene una colección de anotaciones con el tipo especificado para el elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
Annotations<T>() |
Obtiene una colección de anotaciones con el tipo especificado para el elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
Append(IEnumerable<OpenXmlElement>) |
Anexa cada elemento de una lista de elementos al final de la lista de elementos secundarios del elemento actual. (Heredado de OpenXmlElement) |
Append(OpenXmlElement[]) |
Anexa cada elemento de una matriz de elementos al final de la lista de elementos secundarios del elemento actual. (Heredado de OpenXmlElement) |
AppendChild<T>(T) |
Anexa el elemento especificado al final de la lista de nodos secundarios del elemento actual. (Heredado de OpenXmlCompositeElement) |
ClearAllAttributes() |
Borra todos los atributos, incluidos los atributos conocidos y los atributos extendidos. (Heredado de OpenXmlElement) |
Clone() |
Crea un duplicado del nodo actual. (Heredado de OpenXmlElement) |
CloneNode(Boolean) |
Crea un duplicado de este nodo. |
Descendants() |
Enumera todos los descendientes del elemento actual. (Heredado de OpenXmlElement) |
Descendants<T>() |
Enumera todos los descendientes del elemento actual del tipo T. (Heredado de OpenXmlElement) |
Elements() |
Enumera todos los elementos secundarios del elemento actual. (Heredado de OpenXmlElement) |
Elements<T>() |
Enumera solo los elementos secundarios del elemento actual que tienen el tipo especificado. (Heredado de OpenXmlElement) |
ElementsAfter() |
Enumera todos los elementos del mismo nivel que siguen el elemento actual y tienen el mismo elemento primario que el elemento actual. (Heredado de OpenXmlElement) |
ElementsBefore() |
Enumera todos los elementos del mismo nivel que preceden al elemento actual y tienen el mismo elemento primario que el elemento actual. (Heredado de OpenXmlElement) |
GetAttribute(String, String) |
Obtiene un atributo Open XML con el nombre de etiqueta y el URI de espacio de nombres especificados. (Heredado de OpenXmlElement) |
GetAttributes() |
Obtiene una lista que contiene una copia de todos los atributos. (Heredado de OpenXmlElement) |
GetEnumerator() |
Devuelve un enumerador que recorre en iteración la colección secundaria. (Heredado de OpenXmlElement) |
GetFirstChild<T>() |
Busca el primer elemento secundario en el tipo T. (Heredado de OpenXmlElement) |
InsertAfter<T>(T, OpenXmlElement) |
Inserta el elemento especificado inmediatamente después del elemento de referencia especificado. (Heredado de OpenXmlCompositeElement) |
InsertAfterSelf<T>(T) |
Inserta el elemento especificado inmediatamente después del elemento actual. (Heredado de OpenXmlElement) |
InsertAt<T>(T, Int32) |
Inserta el elemento especificado en el índice especificado de los elementos secundarios del elemento actual. (Heredado de OpenXmlCompositeElement) |
InsertBefore<T>(T, OpenXmlElement) |
Inserta el elemento especificado inmediatamente antes del elemento de referencia especificado. (Heredado de OpenXmlCompositeElement) |
InsertBeforeSelf<T>(T) |
Inserta el elemento especificado inmediatamente antes del elemento actual. (Heredado de OpenXmlElement) |
IsAfter(OpenXmlElement) |
Determina si el elemento actual aparece después de un elemento especificado en el orden del documento. (Heredado de OpenXmlElement) |
IsBefore(OpenXmlElement) |
Determina si el elemento actual aparece antes que un elemento especificado en el orden del documento. (Heredado de OpenXmlElement) |
LookupNamespace(String) |
Resuelve el prefijo de espacio de nombres en el contexto del nodo actual. (Heredado de OpenXmlElement) |
LookupPrefix(String) |
Busca el prefijo correspondiente para un uri de espacio de nombres en el ámbito del elemento actual. (Heredado de OpenXmlElement) |
NextSibling() |
Obtiene el elemento OpenXmlElement que sigue inmediatamente al elemento OpenXmlElement actual. Devuelve null (Nothing en Visual Basic) si no hay ningún elemento OpenXmlElement siguiente. (Heredado de OpenXmlElement) |
NextSibling<T>() |
Obtiene el elemento OpenXmlElement con el tipo especificado que sigue al elemento OpenXmlElement actual. Devuelve null (Nothing en Visual Basic) si no hay ningún elemento OpenXmlElement siguiente. (Heredado de OpenXmlElement) |
PrependChild<T>(T) |
Inserta el elemento especificado al principio de la lista de nodos secundarios del elemento actual. (Heredado de OpenXmlCompositeElement) |
PreviousSibling() |
Obtiene el elemento OpenXmlElement que precede inmediatamente al elemento OpenXmlElement actual. Devuelve null (Nothing en Visual Basic ) si no hay ningún elemento OpenXmlElement anterior. (Heredado de OpenXmlElement) |
PreviousSibling<T>() |
Obtiene el elemento OpenXmlElement con el tipo especificado que precede al objeto OpenXmlElement actual. Devuelve null (Nothing en Visual Basic) si no hay ningún elemento OpenXmlElement anterior. (Heredado de OpenXmlElement) |
Remove() |
Quita el elemento actual de su elemento primario. (Heredado de OpenXmlElement) |
RemoveAllChildren() |
Quita todos los elementos secundarios del elemento actual. (Heredado de OpenXmlCompositeElement) |
RemoveAllChildren<T>() |
Quite todos los elementos secundarios del elemento actual que son de tipo T. (Heredado de OpenXmlElement) |
RemoveAnnotations(Type) |
Quita las anotaciones del tipo especificado del elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
RemoveAnnotations<T>() |
Quita las anotaciones con el tipo especificado del elemento OpenXmlElement actual. (Heredado de OpenXmlElement) |
RemoveAttribute(String, String) |
Quita el atributo del elemento actual. (Heredado de OpenXmlElement) |
RemoveChild<T>(T) |
Quita el elemento secundario especificado. (Heredado de OpenXmlCompositeElement) |
RemoveNamespaceDeclaration(String) |
Quita la declaración de espacio de nombres para el prefijo especificado. No quita nada si no hay ningún prefijo. (Heredado de OpenXmlElement) |
ReplaceChild<T>(OpenXmlElement, T) |
Reemplaza uno de los elementos secundarios del elemento actual por otro elemento OpenXmlElement. (Heredado de OpenXmlCompositeElement) |
SetAttribute(OpenXmlAttribute) |
Establece un atributo en el elemento especificado. Si el atributo es un atributo conocido, se establece el valor del atributo. Si el atributo es un atributo extendido, el atributo "openxmlAttribute" se agrega a la lista de atributos extendidos. (Heredado de OpenXmlElement) |
SetAttributes(IEnumerable<OpenXmlAttribute>) |
Establece una serie de atributos en el elemento . Si un atributo es un atributo conocido, se establece el valor del atributo. Si un atributo es un atributo extendido, el atributo "openxmlAttribute" se agrega a la lista de atributos extendidos. (Heredado de OpenXmlElement) |
WriteTo(XmlWriter) |
Guarda el nodo actual en el objeto XmlWriter especificado. (Heredado de OpenXmlElement) |
Implementaciones de interfaz explícitas
IEnumerable.GetEnumerator() |
Define la clase MergeCells. Esta clase está disponible en Office 2007 y versiones posteriores. Cuando el objeto se serializa como xml, su nombre completo es x:mergeCells. (Heredado de OpenXmlElement) |
IEnumerable<OpenXmlElement>.GetEnumerator() |
Devuelve un enumerador que recorre en iteración la colección secundaria. (Heredado de OpenXmlElement) |