Compartir a través de


Novedades del SDK de Open XML

[3.0.0] - 2023-11-15

Añadido

  • Los paquetes ahora se pueden guardar en .NET Core y .NET 5+ si se construyen con una ruta de acceso o una secuencia (1307).
  • Los paquetes ahora pueden admitir URI con formato incorrecto (como relaciones con un URI como mailto:person@)
  • Introducir comparadores de igualdad para OpenXmlElement (1476)
  • IFeatureCollection ahora se puede enumerar y tiene una vista de depuración útil para ver qué características están registradas (1452)
  • Agregar tipos mime a la creación de piezas (1488)
  • Espacio de nombres DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main
  • Espacio de nombres DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main
  • Espacio de nombres DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021

Modificado

  • Cuando la validación encuentra una parte incorrecta, ahora incluirá el tipo de relación en lugar de un nombre de clase.
  • IDisposableFeature ahora forma parte del paquete de marco y está disponible de forma predeterminada en un paquete o parte.

Cambios importantes

  • .NET Standard 1.3 ya no es una plataforma compatible. .NET Standard 2.0 es el nivel más bajo compatible con .NET Standard.
  • La infraestructura principal ahora está contenida en un nuevo paquete DocumentFormat.OpenXml.Framework. Las clases con tipo siguen en DocumentFormat.OpenXml. Esto significa que puede hacer referencia a DocumentFormat.OpenXml y seguir compilando los mismos tipos, pero si desea un paquete más pequeño, puede confiar solo en el paquete de marco.
  • Se ha cambiado el tipo de OpenXmlPackage.Package a DocumentFormat.OpenXml.Packaging.IPackage en lugar de con una superficie de System.IO.Packaging.Package API similar
  • EnumValue<T>ahora se usa para boxear una estructura en lugar de .System.Enum Esto nos permite habilitar el comportamiento en él sin recurrir a la reflexión
  • Los métodos de los elementos para agregar elementos secundarios (es decir, AddImagePart) ahora se implementan como métodos de extensión a partir de una nueva interfaz de marcador ISupportedRelationship<T>
  • Las enumeraciones de información de tipo de pieza (es decir, ImagePartType) ya no son una enumeración, sino una clase estática para exponer tipos de elementos conocidos como estructuras. Ahora se puede llamar a cualquier método para definir un nuevo par content-type/extension con la nueva PartTypeInfo estructura que contendrá la información necesaria.
  • OpenXmlPackage.CanSave es ahora una propiedad de instancia (1307)
  • Tipos quitados OpenXmlSettings.RelationshipErrorHandlerFactory y asociados y reemplazados por un mecanismo integrado para habilitar esta
  • IdPartPair es ahora una estructura de solo lectura en lugar de una clase
  • Se ha cambiado el PartExtensionProvider nombre a IPartExtensionFeature y ha reducido su área expuesta a solo dos métodos (en lugar de a un completo Dictionary<,>). Se ha quitado la OpenXmlPackage propiedad para tener acceso a esta opción, pero se puede acceder a ella a través Features.Get<IPartExtensionFeature>() de si es necesario.
  • OpenXmlPart/OpenXmlContainer/OpenXmlPackage y los tipos derivados ahora tienen constructores internos (estos tenían métodos abstractos internos, por lo que lo más probable es que no se subclases externamente)
  • OpenXmlElementList es ahora una estructura que implementa IEnumerable<OpenXmlElement> y IReadOnlyList<OpenXmlElement> donde está disponible (1429)
  • Las implementaciones individuales de OpenXmlPartReader están disponibles ahora para cada tipo de paquete (es decir WordprocessingDocumentPartReader, , SpreadsheetDocumentPartReader, PresentationDocumentPartReader), y se ha quitado el anterior TypedOpenXmlPartReader . (#1403)
  • Marcos de destino innecesarios reducidos para paquetes además de DocumentFormat.OpenXml.Framework (1471)
  • Se han cambiado algunos problemas ortográficos para los nombres de propiedad (1463, 1444)
  • Model3D ahora representa el nombre am3d.model3d de etiqueta de elemento xml modificado (anteriormente am3d.model3D)
  • Quitado DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo
  • Quitado DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid
  • Quitado sin usar SchemaAttrAttribute (1316)
  • Quitado sin usar ChildElementInfoAttribute (1316)
  • Se quitó OpenXmlSimpleType.TextValue. Esta propiedad nunca estaba pensada para usarse externamente (1316)
  • Se ha quitado la lógica de validación obsoleta de la versión 1 del SDK (1316)
  • Se han quitado los métodos obsoletos de 2.x (1316)
  • Se quitaron las propiedades mutables en OpenXmlAttribute y se marcaron como readonly (1282)
  • Se ha quitado OpenXmlPackage.Close a favor de Dispose (1373)
  • Se ha quitado OpenXmlPackage.SaveAs a favor de Clone (1376)

[2.20.0] - 2023-04-05

Añadido

  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula.
  • Se ha agregado DocumentFormat.OpenXml.Office. Word. Y2023. Espacio de nombres WordML.Word16DU

Modificado

  • Marcado OpenXmlSimpleType.TextValue como obsoleto. Esta propiedad nunca estaba pensada para usarse externamente (1284)
  • Marcado OpenXmlPackage.Package como obsoleto. Esto será un detalle de implementación en versiones futuras y no será accesible (1306)
  • Marcado OpenXmlPackage.Close como obsoleto. Esto se quitará en una versión posterior, use Dispose en su lugar (1371)
  • Marcado OpenXmlPackage.SaveAs como obsoleto, ya que se quitará en una versión futura (1378)

Decimal

  • Se han corregido extensiones de archivo incorrectas para archivos vbaProject (1292)
  • Se han corregido extensiones de archivo incorrectas para ImagePart (1305)
  • Mayúsculas y minúsculas incorrectas corregidas para customXml (1351)
  • Se ha corregido AddEmbeddedPackagePart para permitir extensiones correctas para varios tipos de contenido (1388)

[2.19.0] - 2022-12-14

Añadido

  • Destino de .NET 6 compatible con el recorte (1243, 1240)
  • Se ha agregado el espacio de nombres DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.
  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command.
  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command.
  • Se ha agregado RichDataPivotCacheGuid secundario a DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition

Decimal

  • Se ha quitado el uso de reflexión siempre que sea posible (1240)
  • Se ha corregido un problema por el que se podían cambiar algunos URI al clonar o crear una copia (1234)
  • Se ha corregido un problema en la generación de FlatOpc que no podía leer la secuencia completa en .NET 6+ (1232)
  • Se ha corregido un problema por el que las relaciones restauradas no se cargan correctamente (1207)

[2.18.0] 2022-09-06

Añadido

  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 (#1196)
  • Se ha agregado el atributo durableId a DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet (1196)
  • Se han agregado algunas clases base para elementos, elementos y paquetes con tipo (1185)

Modificado

  • LICENSE.md ajustado para cumplir los requisitos de .NET Foundation (1194)
  • Cambios varios para mejorar el rendimiento de los servicios internos

[2.17.1] - 2022-06-28

Eliminación

  • Se quitó el espacio de nombres de vista previa DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions porque este espacio de nombres creará actualmente documentos no válidos.

Decimal

  • Restauró la relación PowerPointCommentPart con PresentationPart.

En desuso

  • La relación entre PowerPointCommentPart y PresentationPart está en desuso y se quitará en una versión futura.

[2.17.0] - No publicado

Añadido

  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions (#1151)
  • Se agregó el espacio de nombres DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo (#1151)

Decimal

  • Relación de PowerPointCommentPart movida a SlidePart (1137)

Actualizado

  • Se han quitado analizadores de API públicos en favor de EnablePackageValidation (1154)

[2.16.0] - 2022-03-14

Añadido

  • OpenXmlPart.UnloadRootElement Método agregado que descargará el elemento raíz si se carga (1126)

Actualizado

  • La generación de código de esquema se ha movido al proyecto del SDK mediante generadores de código de C#.

[2.15.0] - 2021-12-16

Añadido

  • Se han agregado ejemplos para clases fuertemente tipadas y Linq-to-XML en el ./samples directorio (1101, 1087)
  • Envío de bibliotecas adicionales para algunas funciones adicionales en DocumentFormat.OpenXml.Features y DocumentFormat.OpenXml.Linq. Consulte la documentación del repositorio para obtener más detalles.
  • Se ha agregado el método de extensión para admitir la obtención del tipo de elemento de imagen (1082)
  • Se han agregado clases generadas y FileFormatVersions.Microsoft365 para nuevos tipos y restricciones del modelo de suscripción (1097).

Decimal

  • Se ha corregido un problema para el tipo model/gltf.binary mime modificado (1069)
  • DocumentFormat.OpenXml.Office.Drawing.ShapeTree ahora solo está disponible en Office 2010 y versiones posteriores, no en 2007.
  • Serializar new CellValue(bool) correctamente los valores (1070)
  • Se han actualizado los espacios de nombres conocidos que se van a generar a través de un generador de origen en el repositorio (1092)
  • Algunos problemas de documentación relacionados con FileFormatVersions la enumeración

[2.14.0] - 2021-10-28

Añadido

  • Se han agregado clases generadas para Office 2021 tipos y restricciones (1030)
  • Se agregó Features la propiedad a OpenXmlPartContainer y OpenXmlElement para habilitar un almacenamiento de estado por pieza o por documento.
  • Se han agregado constructores públicos para XmlPath (1013)
  • Elementos agregados para tipos de datos enriquecidos (1002)
  • Se han agregado métodos para generar identificadores de párrafo únicos (1000)

[2.13.1] - 2021-08-17

Decimal

  • Se han corregido algunas anotaciones de nulabilidad que se definieron incorrectamente (953, 955)
  • Se ha corregido un problema que eliminaba al TextReader crear un XmlReader objeto en determinadas circunstancias (940)
  • Se ha corregido un tipo de documentación (937)
  • Se ha corregido un problema al agregar elementos secundarios adicionales a elementos de datos (934)
  • Se han reemplazado algunas entradas de documentación que eran valores genéricos por comentarios útiles (992)
  • Se ha corregido una regresión en AddDataPartRelationship (954)

[2.13.0] - 2021-05-13

Añadido

  • Tipos de O19 adicionales para que coincidan con las especificaciones abiertas (916)
  • Se han agregado clases generadas para tipos y restricciones de Office 2019 (882)
  • Atributos de nulabilidad agregados (840, 849)
  • Se ha agregado una sobrecarga para OpenXmlPartReader y OpenXmlReader.Create(...) para omitir el espacio en blanco (857)
  • Se ha agregado HexBinaryValue.TryGetBytes(...) y HexBinaryValue.Create(byte[]) para administrar la codificación y descodificación de bytes (867)
  • Implementado IEquatable<IdPartPair> para IdPartPair corregir la implementación de igualdad allí y establecedores obsoletos (871)

Decimal

  • Se ha corregido la serialización de CellValue constructores para usar referencias culturales invariables (903)
  • Análisis corregido para permitir exponentes de valores numéricos de celda (901)
  • Se ha corregido un cuello de botella de rendimiento masivo cuando UniqueAttributeValueConstraint se trata de (924)

En desuso

  • Office2013 en desuso. Word. Propiedad Person.Contact. Ya no se conserva y se quitará en una versión futura (912)

[2.12.3] - 2021-02-24

Decimal

  • Se ha corregido un problema por CellValue el que se puede validar incorrectamente para los valores booleanos (890)

[2.12.2] - 2021-02-16

Decimal

  • Se ha corregido un problema por OpenSettings.RelationshipErrorHandlerFactory el que se crea un XML no válido si el URI resultante es menor que la entrada (883)

[2.12.1] - 2021-01-11

Decimal

  • Se ha corregido un error por el que las propiedades de las instancias no se podían establecer en OpenXmlCompositeElement null para quitar el elemento (850)
  • Se ha corregido OpenXmlElement.RawOuterXml para establecer correctamente valores NULL sin generar (818)
  • Permitir la reescritura de todos los URI con formato incorrecto independientemente del valor de destino (835)

[2.12.0] - 2020-12-09

Añadido

  • Se ha agregado OpenSettings.RelationshipErrorHandlerFactory para proporcionar una manera de controlar los URI que interrumpen el análisis de documentos con vínculos con formato incorrecto (793)
  • Se ha agregado OpenXmlCompositeElement.AddChild(OpenXmlElement) para agregar elementos secundarios en el orden correcto por esquema (774)
  • Agregado SmartTagClean y SmartTagId en lugar de SmtClean y SmtId (747)
  • Se han agregado OpenXmlValidator.Validate(..., CancellationToken) invalidaciones para permitir una cancelación más sencilla de la validación de larga duración en .NET 4.0+ (773)
  • Se han agregado sobrecargas para CellValue tomar decimal, doubley , así intcomo métodos prácticos para analizarlas (782)
  • Se ha agregado validación para CellType números y formatos de fecha (782)
  • Se ha agregado OpenXmlReader.GetLineInfo() para recuperar IXmlLineInfo el lector subyacente si está disponible (804)

Decimal

  • Se ha corregido la excepción que se produciría si se intentaba guardar un documento como FlatOPC si contiene archivos SVG (822)
  • Se han agregado SchemaAttrAttribute atributos de nuevo para la compatibilidad con versiones anteriores (825)

Eliminación

  • Se ha quitado la referencia explícita a System.IO.Packaging en compilaciones de .NET 4.6 (774)

[2.11.3] - 2020-07-17

Decimal

  • Se ha corregido un cuello de botella de rendimiento masivo cuando IndexReferenceConstraint y ReferenceExistConstraint están implicados (763)
  • Se ha corregido CellValue para incluir solo tres dígitos más firmantes en las segundas fracciones para corregir las fechas de carga de problemas (741)
  • Se ha corregido un par de errores de indexación de validación que podían provocar errores de validación erróneos (767)
  • Se ha actualizado el sistema de validación interno para que no use la recursividad, lo que permite un mejor cortocircuito (766)

[2.11.2] - 2020-07-10

Decimal

  • Se ha corregido el vínculo de origen roto (749)
  • Asegurarse de que la compilación es determinista (749)
  • Se quitó el archivo adicional en el paquete NuGet (749)

[2.11.1] - 2020-07-10

Decimal

  • Asegúrese de que las compilaciones de .NET Framework pasan PEVerify (744)
  • OpenXmlPartContainer.DeletePart ya no produce una excepción si no hay una coincidencia para el identificador especificado (740)
  • Marcar miembros obsoletos para que no aparezcan con Intellisense (745)
  • Se ha corregido un problema con AttributeRequiredConditionToValue la restricción semántica por el que la validación podía producir un error en la entrada correcta (746)

[2.11.0] - 2020-05-21

Añadido

  • Enumeración agregada FileFormatVersions.2019 (695)
  • Se han agregado ChartSpace elementos de gráfico y para los nuevos espacios de nombres de 2016. Esto permite que las piezas de conexión compilen una parte del gráfico con estilos de gráfico como "Sunburst" (687).
  • Se han agregado OpenXmlElementFunctionalExtensions.With(...) métodos de extensión, que ofrecen medios flexibles para construir OpenXmlElement instancias en el contexto de transformaciones funcionales puras (679)
  • Se han agregado versiones mínimas de Office para los tipos y valores de enumeración (707)
  • Se han agregado valores adicionales CompatSettingNameValues : UseWord2013TrackBottomHyphenation, AllowHyphenationAtTrackBottomy AllowTextAfterFloatingTableBreak (706)
  • Se han agregado tipos complejos de formas gfxdata attribue a Arc, Curve, Line, PolyLine, Group, Image, Oval, Rect y RoundRect por MS-OI29500 2.1.1783-1799 (709)
  • Se ha agregado OpenXmlPartContainer.TryGetPartById para habilitar la recuperación de elementos secundarios sin excepción si no existe (714)
  • Propiedad agregada OpenXmlPackage.StrictRelationshipFound que indica si este paquete contiene relaciones de transición convertidas de Strict (716)

Decimal

  • Los elementos derivados personalizados no heredaron elementos conocidos de su elemento primario, lo que produjo un error al agregar elementos (722)

Modificado

  • Marcados los establecedores de propiedad en OpenXmlAttribute como obsoletos, ya que los structs no deben tener el estado mutable (698)

[2.10.1] - 2020-02-28

Decimal

  • Los atributos garantizados están disponibles cuando OpenXmlElement se inicializa con XML externo (684, 692)
  • Algunos errores de documentación (681)
  • Estado quitado que hacía que no fuera seguro para subprocesos validar elementos en determinadas condiciones (686)
  • Inserta correctamente elementos fuertemente tipados antes de los elementos conocidos que no están fuertemente tipados (690)

[2.10.0] - 2020-01-10

Añadido

  • Se agregó compatibilidad inicial con Office 2016, incluidos FileFormatVersion.Office2016, ExtendedChartPart y otros nuevos elementos de esquema (586)
  • Se ha agregado el destino de .NET Standard 2.0 (587)
  • Compatibilidad con símbolos incluidos para la depuración (650)
  • Expuesto IXmlNamespaceResolver desde XmlPath en lugar de una lista con formato de cadenas para exponer la asignación de espacios de nombres o prefijos (536)
  • Implementado IComparable<T> y IEquatable<T> activado OpenXmlComparableSimpleValue para permitir comparaciones sin boxing (550)
  • Se ha agregado OpenXmlPackage.RootPart para acceder fácilmente al elemento raíz en cualquier paquete (661)

Modificado

  • Se ha actualizado a la versión 4.7.0 de System.IO.Packaging, que incorpora una serie de correcciones de rendimiento (660)
  • Datos consolidados para elementos secundarios o propiedades para reducir la duplicación (#540, #547, #548)
  • Se han reemplazado datos binarios opacos para restricciones de elementos secundarios por modelo declarativo (603)
  • Varias correcciones de rendimiento para minimizar las asignaciones siempre que sea posible
  • Reducción del tamaño del 20 % de 5,5 mb a 4,3 mb
  • El subsistema de validación ha pasado por un rediseño drástico. Esto puede provocar cambios en los errores que se notifican.

Decimal

  • Se han corregido algunas incoherencias de documentación (582)
  • Se corrigió ToFlatOpcDocument, ToFlatOpcString, FromFlatOpcDocumenty FromFlatOpcString para procesar correctamente elementos de importación de formato alternativo o "elementos altChunk" (659)

[2.9.1] - 2019-03-13

Modificado

  • Se ha agregado una solución alternativa para un problema del compilador de .NET Native que no admite la llamada Marshal.SizeOf<T> con una estructura que contiene propiedades implementadas automáticamente (569)
  • Se ha corregido un error de documentación (528)

[2.9.0] - 2018-06-08

Añadido

  • ListValue ahora implementa IEnumerable<T> (385)
  • Se agregó una WebExtension.Frozen propiedad mal escrita Fronzen y obsoleta (460)
  • Se ha agregado una OpenXmlPackage.CanSave propiedad que indica si una plataforma admite el guardado sin cerrar el paquete (468)
  • Los tipos simples (excepto EnumValue y ListValue) ahora implementan IComparable<T> y IEquatable<T> (487)

Modificado

  • Se quitó el estado que se llevaba en validadores que se almacenarían en paquetes cuando no se usaban (390)
  • EnumSimpleType Se ha mejorado el análisis y se usan menos asignaciones y cachés para su uso futuro (408)
  • Se corrigió una serie de errores ortográficos en la documentación (462)
  • Al llamar a OpenXmlPackage.Save en .NET Framework, el paquete ahora se vacía en la secuencia (468)
  • Condición de carrera fija al realizar una traducción estricta de atributos (480)
  • Los datos de esquema para la validación usan un formato más compacto que conduce a una reducción del tamaño de dll y mejoras de rendimiento para la carga (482, 483)
  • Varias API están marcadas como obsoletas, ya que tienen soluciones alternativas sencillas y se quitarán en el siguiente cambio importante.
  • Se han corregido algunos valores de restricción para la validación que contenían Office 2007, incluso cuando solo se admitía en versiones posteriores.
  • Se ha actualizado System.IO.Packaging a la versión 4.5.0, que corrige algunos problemas en las plataformas xamarin, así como minimiza las dependencias de .NET Framework.

[2.8.1] - 2018-01-03

Modificado

  • Referencia del archivo de licencia de paquete corregido para mostrar la licencia MIT actualizada

[2.8.0] - 2017-12-28

Añadido

  • Directiva en tiempo de ejecución predeterminada para mejorar la compatibilidad con .NET Native.

Modificado

  • Se ha corregido el guardado de piezas para codificarse con UTF8, pero sin marca de orden de bytes. Esto hizo que algunos representadores no pudieran abrir el documento generado.
  • Se han corregido las excepciones que se producen cuando se producen errores al abrir paquetes para que sean coherentes entre plataformas.
  • Se ha corregido un problema en plataformas Mono que usaba el paquete NuGet System.IO.Packaging (Xamarin, etc.) al crear un documento.
  • Se ha corregido el guardado manual de un paquete cuando el guardado automático es false.
  • Se han corregido los datos de restricción de esquema y la serialización estandarizada entre plataformas.
  • Se ha actualizado a la System.IO.Packaging versión 4.4.0, que corrige cierta coherencia con .NET Framework al abrir paquetes.

[2.7.2] - 2017-06-06

Añadido

  • El paquete ahora admite .NET 3.5 y .NET 4.0, además de .NET Standard 1.3 y .NET Framework 4.6

Modificado

  • Se ha corregido un problema por el que la versión del ensamblado no estaba establecida en el ensamblado.

[2.7.1] - 2017-01-31

Modificado

  • Se ha corregido un bloqueo al invocar la validación en .NET Framework con la aplicación de nomenclatura segura.

[2.7.0] - 2017-01-24

Añadido

  • Sdk ahora admite .NET Standard 1.3

Modificado

  • Se ha movido al uso de System.IO.Packaging desde dotnet/corefx para .NET Standard 1.3 y WindowsBase para .NET 4.5.
  • Se ha limpiado el sistema de compilación de proyectos para usar la CLI de .NET.

[2.6.1] - 2016-01-15

Añadido

  • Se han agregado cientos de pruebas XUnit. Ahora hay un total de 1333 pruebas. Tardan unos 20 minutos en ejecutarse, así que tenga paciencia.

[2.6.0] - 2015-06-29

Añadido

  • Incorporación de un reemplazo System.IO.Packaging que corrige algunos errores graves (pero excepcionales) encontrados en la implementación de WindowsBase