Compartilhar via


Novidades no SDK do Open XML

[3.0.0] - 2023-11-15

Adicionado

  • Os pacotes agora podem ser salvos no .NET Core e no .NET 5+ se construídos com um caminho ou fluxo (#1307).
  • Os pacotes agora podem dar suporte a URIs malformadas (como relações com um URI como mailto:person@)
  • Introduzir comparadores de igualdade para OpenXmlElement (#1476)
  • IFeatureCollection agora pode ser enumerado e tem uma exibição de depuração útil para ver quais recursos estão registrados (#1452)
  • Adicionar tipos de mímica à criação de parte (#1488)
  • DocumentFormat.OpenXml.Office.PowerPoint.Y2023.M02.Main namespace
  • DocumentFormat.OpenXml.Office.PowerPoint.Y2022.M03.Main namespace
  • DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace

Alterado

  • Quando a validação encontrar uma parte incorreta, ela agora incluirá o tipo de relação em vez de um nome de classe
  • IDisposableFeature agora faz parte do pacote de estrutura e está disponível por padrão em um pacote ou parte.

Alterações quebrando

  • O .NET Standard 1.3 não é mais uma plataforma com suporte. O .NET Standard 2.0 é o menor suporte ao .NET Standard.
  • A infraestrutura principal agora está contida em um novo pacote DocumentFormat.OpenXml.Framework. As classes digitada ainda estão em DocumentFormat.OpenXml. Isso significa que você pode fazer referência a DocumentFormat.OpenXml e ainda compilar os mesmos tipos, mas se quiser um pacote menor, poderá contar apenas com o pacote framework.
  • Tipo alterado de OpenXmlPackage.Package para DocumentFormat.OpenXml.Packaging.IPackage em vez de com uma superfície de System.IO.Packaging.Package API semelhante
  • EnumValue<T> agora é usado para encaixotar um struct em vez de um System.Enum. Isso nos permite habilitar o comportamento nele sem recorrer à reflexão
  • Os métodos em partes para adicionar partes filho (ou seja) AddImagePartagora são implementados como métodos de extensão fora de uma nova interface de marcador ISupportedRelationship<T>
  • Enumerações de informações de tipo de parte (ou seja ImagePartType) não são mais um enumeração, mas uma classe estática para expor tipos de parte bem conhecidos como structs. Agora, qualquer método para definir um novo par de tipo de conteúdo/extensão pode ser chamado com o novo PartTypeInfo struct que conterá as informações necessárias.
  • OpenXmlPackage.CanSave agora é uma propriedade de instância (#1307)
  • Tipos removidos OpenXmlSettings.RelationshipErrorHandlerFactory e associados e substituídos por um mecanismo interno para habilitar isso
  • IdPartPair agora é um struct readonly em vez de uma classe
  • Renomeada PartExtensionProvider para IPartExtensionFeature e reduziu sua área de superfície para apenas dois métodos (em vez de um completo Dictionary<,>). A propriedade para acessar essa desativação OpenXmlPackage foi removida, mas pode ser acessada por meio Features.Get<IPartExtensionFeature>() , se necessário.
  • OpenXmlPart/OpenXmlContainer/OpenXmlPackage e os tipos derivados agora têm construtores internos (estes tinham métodos abstratos internos, portanto, provavelmente não foram subclasse externamente)
  • OpenXmlElementList agora é um struct que implementa IEnumerable<OpenXmlElement> e IReadOnlyList<OpenXmlElement> onde está disponível (#1429)
  • Implementações individuais de OpenXmlPartReader estão disponíveis agora para cada tipo de pacote (ou seja WordprocessingDocumentPartReader, , SpreadsheetDocumentPartReader, PresentationDocumentPartReader), e o anterior TypedOpenXmlPartReader foi removido. (#1403)
  • Estruturas de destino desnecessárias reduzidas para pacotes além de DocumentFormat.OpenXml.Framework (#1471)
  • Alterou alguns problemas ortográficos para nomes de propriedades (#1463, #1444)
  • Model3D agora representa o nome am3d.model3d da marca de elemento xml modificado (anteriormente am3d.model3D)
  • Removido DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.PivotCacheHasRichValuePivotCacheRichInfo
  • Removido DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData.RichDataPivotCacheGuid
  • Removido não utilizado SchemaAttrAttribute (#1316)
  • Removido não utilizado ChildElementInfoAttribute (#1316)
  • Removido OpenXmlSimpleType.TextValue. Essa propriedade nunca foi feita para ser usada externamente (#1316)
  • Lógica de validação obsoleta removida da v1 do SDK (#1316)
  • Métodos obsoletos removidos de 2.x (#1316)
  • Propriedades mutáveis removidas no OpenXmlAttribute e marcadas como readonly (#1282)
  • Removido OpenXmlPackage.Close em favor de Dispose (#1373)
  • Removido OpenXmlPackage.SaveAs em favor de Clone (#1376)

[2.20.0] - 2023-04-05

Adicionado

  • Adicionado DocumentFormat.OpenXml.Office.Drawing.Y2022.ImageFormula namespace
  • Adicionado DocumentFormat.OpenXml.Office. Word. Y2023. Namespace WordML.Word16DU

Alterado

  • Marcado OpenXmlSimpleType.TextValue como obsoleto. Essa propriedade nunca foi feita para ser usada externamente (#1284)
  • Marcado OpenXmlPackage.Package como obsoleto. Este será um detalhe de implementação em versões futuras e não estará acessível (#1306)
  • Marcado OpenXmlPackage.Close como obsoleto. Isso será removido em uma versão posterior, use Dispose em vez disso (#1371)
  • Marcado OpenXmlPackage.SaveAs como obsoleto como será removido em uma versão futura (#1378)

Fixed

  • Correção de extensões de arquivo incorretas para arquivos vbaProject (#1292)
  • Extensões de arquivo incorretas fixas para ImagePart (#1305)
  • Invólucro incorreto corrigido para customXml (#1351)
  • Correção de AddEmbeddedPackagePart para permitir extensões corretas para vários tipos de conteúdo (#1388)

[2.19.0] - 2022-12-14

Adicionado

  • Destino do .NET 6 com suporte para corte (#1243, #1240)
  • Adicionado DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotRichData namespace
  • Adicionado DocumentFormat.OpenXml.Office.PowerPoint.Y2019.Main.Command namespace
  • Adicionado DocumentFormat.OpenXml.Office.PowerPoint.Y2022.Main.Command namespace
  • Added Child RichDataPivotCacheGuid to DocumentFormat.OpenXml.Office2010.Excel.PivotCacheDefinition

Fixed

  • Uso de reflexão removido sempre que possível (#1240)
  • Corrigido o problema em que algumas URIs podem ser alteradas ao clonar ou criar cópia (nº 1234)
  • Corrigido o problema na geração FlatOpc que não leria o fluxo completo no .NET 6+ (#1232)
  • Problema corrigido em que as relações restauradas não carregariam corretamente (#1207)

[2.18.0] 2022-09-06

Adicionado

  • Adicionado DocumentFormat.OpenXml.Office.SpreadSheetML.Y2021.ExtLinks2021 namespace (#1196)
  • Adicionado atributo durableId a DocumentFormat.OpenXml.Wordprocessing.NumberingPictureBullet (#1196)
  • Adicionaram poucas classes base para elementos, partes e pacotes digitados (nº 1185)

Alterado

  • O LICENSE.md ajustado para estar em conformidade com os requisitos do .NET Foundation (#1194)
  • Alterações diversas para melhor perf para serviços internos

[2.17.1] - 2022-06-28

Removido

  • Removeu o namespace de visualização DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions porque esse namespace criará documentos inválidos no momento.

Fixed

  • Restaurou a relação do PowerPointCommentPart com o PresentationPart.

Preterido

  • A relação entre o PowerPointCommentPart e o PresentationPart é preterida e será removida em uma versão futura.

[2.17.0] – Inédito

Adicionado

  • Adicionado DocumentFormat.OpenXml.Office.Comments.Y2020.Reactions namespace (#1151)
  • Adicionado DocumentFormat.OpenXml.Office.SpreadSheetML.Y2022.PivotVersionInfo namespace (#1151)

Fixed

  • Relação movida do PowerPointCommentPart para SlidePart (#1137)

Atualizado

  • Analisadores de API pública removidos em favor de EnablePackageValidation (#1154)

[2.16.0] - 2022-03-14

Adicionado

  • Método adicionado OpenXmlPart.UnloadRootElement que descarregará o elemento raiz se ele for carregado (#1126)

Atualizado

  • A geração de código de esquema foi movida para o projeto SDK usando geradores de código C#

[2.15.0] - 2021-12-16

Adicionado

  • Exemplos adicionados para classes fortemente tipadas e Linq-to-XML no ./samples diretório (#1101, #1087)
  • Envio de bibliotecas adicionais para algumas funcionalidades adicionais no DocumentFormat.OpenXml.Features e DocumentFormat.OpenXml.Linq. Consulte a documentação em repositório para obter mais detalhes.
  • Método de extensão adicionado para dar suporte à obtenção do tipo de parte da imagem (#1082)
  • Adicionado classes geradas e FileFormatVersions.Microsoft365 para novos tipos de modelo de assinatura e restrições (#1097).

Fixed

  • Problema corrigido para o tipo model/gltf.binary de mímica alterado (#1069)
  • DocumentFormat.OpenXml.Office.Drawing.ShapeTree agora está disponível apenas no Office 2010 e acima, não em 2007.
  • Serializar new CellValue(bool) corretamente valores (#1070)
  • Namespaces conhecidos atualizados a serem gerados por meio de um gerador de origem no repositório (#1092)
  • Alguns problemas de documentação em torno do FileFormatVersions enum

[2.14.0] - 2021-10-28

Adicionado

  • Adição de classes geradas para tipos e restrições de Office 2021 (nº 1030)
  • Propriedade adicionada Features a OpenXmlPartContainer e OpenXmlElement para habilitar um armazenamento de estado por parte ou por documento
  • Construtores públicos adicionados para XmlPath (#1013)
  • Partes adicionadas para tipos rich data (#1002)
  • Métodos adicionados para gerar IDs de parágrafo exclusivas (#1000)

[2.13.1] - 2021-08-17

Fixed

  • Corrigido algumas anotações de nulidade que foram definidas incorretamente (#953, #955)
  • Corrigido o problema que descartaria um ao criar um TextReaderXmlReader em determinadas circunstâncias (#940)
  • Corrigido um tipo de documentação (#937)
  • Corrigido um problema com a adição de crianças adicionais às partes de dados (#934)
  • Substituiu algumas entradas de documentação que eram valores genéricos por comentários úteis (#992)
  • Corrigido uma regressão em AddDataPartRelationship (#954)

[2.13.0] - 2021-05-13

Adicionado

  • Tipos adicionais de O19 para corresponder às Especificações Abertas (#916)
  • Adição de classes geradas para tipos e restrições do Office 2019 (nº 882)
  • Atributos de nulidade adicionados (#840, #849)
  • Sobrecarga adicionada para OpenXmlPartReader e OpenXmlReader.Create(...) para ignorar o whitespace (#857)
  • Adicionado HexBinaryValue.TryGetBytes(...) e HexBinaryValue.Create(byte[]) para gerenciar a codificação e a decodificação de bytes (#867)
  • IEquatable<IdPartPair> Implementado para IdPartPair corrigir a implementação de igualdade lá e setters obsoletos (#871)

Fixed

  • Serialização fixa de CellValue construtores para usar culturas invariáveis (#903)
  • Análise fixa para permitir expoentes para valores de célula numérica (#901)
  • Correção do gargalo de desempenho maciço quando UniqueAttributeValueConstraint está envolvido (#924)

Preterido

  • Office preterido2013. Word. Propriedade Person.Contact. Ele não persiste mais e será removido em uma versão futura (#912)

[2.12.3] - 2021-02-24

Fixed

  • Problema corrigido em que CellValue pode ser validado incorretamente para valores boolianos (#890)

[2.12.2] - 2021-02-16

Fixed

  • Corrigido o problema em que OpenSettings.RelationshipErrorHandlerFactory cria XML inválido se o URI resultante for menor que a entrada (nº 883)

[2.12.1] - 2021-01-11

Fixed

  • Correção do bug em que as propriedades em OpenXmlCompositeElement instâncias não podiam ser definidas como nulas para remover o elemento (#850)
  • Corrigido OpenXmlElement.RawOuterXml para definir corretamente valores nulos sem o lançamento (#818)
  • Permitir a reescrita de todas as URIs malformadas independentemente do valor de destino (#835)

[2.12.0] - 2020-12-09

Adicionado

  • Adicionado OpenSettings.RelationshipErrorHandlerFactory para fornecer uma maneira de lidar com URIs que interrompem a análise de documentos com links malformados (#793)
  • Adicionado OpenXmlCompositeElement.AddChild(OpenXmlElement) para adicionar crianças na ordem correta por esquema (#774)
  • Adicionado SmartTagClean e SmartTagId no lugar de SmtClean e SmtId (#747)
  • Substituições adicionadas OpenXmlValidator.Validate(..., CancellationToken) para permitir o cancelamento mais fácil da validação de execução longa no .NET 4.0+ (#773)
  • Sobrecargas adicionais para CellValue usar decimal, doublee int, bem como métodos de conveniência para analisá-los (#782)
  • Validação adicionada para CellType números e formatos de data (#782)
  • Adicionado OpenXmlReader.GetLineInfo() para recuperar IXmlLineInfo o leitor subjacente se estiver disponível (#804)

Fixed

  • Exceção fixa que seria gerada se tentasse salvar um documento como FlatOPC se ele contivesse arquivos SVG (#822)
  • Atributos adicionados SchemaAttrAttribute de volta para compatibilidade com versões anteriores (#825)

Removido

  • Referência explícita removida para System.IO.Packaging em builds do .NET 4.6 (nº 774)

[2.11.3] - 2020-07-17

Fixed

  • Correção do gargalo de desempenho maciço quando IndexReferenceConstraint e ReferenceExistConstraint estão envolvidos (#763)
  • Corrigido CellValue para incluir apenas três dígitos de sinalização na segunda fração para corrigir o problema de datas de carregamento (nº 741)
  • Corrigimos alguns erros de indexação de validação que poderiam causar erros de validação errôneos (#767)
  • Sistema de validação interna atualizado para não usar a recursão, permitindo um melhor curto-circuito (#766)

[2.11.2] - 2020-07-10

Fixed

  • Link de origem quebrado corrigido (#749)
  • A compilação assegurada é determinística (#749)
  • Arquivo extra removido no pacote NuGet (#749)

[2.11.1] - 2020-07-10

Fixed

  • Verifique se .NET Framework builds passam peVerify (#744)
  • OpenXmlPartContainer.DeletePart não gera mais uma exceção se não houver uma correspondência para o identificador dado (#740)
  • Marcar membros obsoletos para não aparecer com o Intelisense (#745)
  • Corrigido o problema com AttributeRequiredConditionToValue restrição semântica em que a validação poderia falhar na entrada correta (nº 746)

[2.11.0] - 2020-05-21

Adicionado

  • Enumeração adicionada FileFormatVersions.2019 (#695)
  • Elementos de gráfico e adicionados ChartSpace para os novos namespaces de 2016. Isso permite que as peças de conexão para criar uma parte do gráfico com estilos de gráfico como "Sunburst" (#687).
  • Métodos de extensão adicionados OpenXmlElementFunctionalExtensions.With(...) , que oferecem meios flexíveis para construir OpenXmlElement instâncias no contexto de transformações funcionais puras (#679)
  • Adicionamos versões mínimas do Office para tipos e valores de enumeração (#707)
  • Valores adicionais CompatSettingNameValues adicionados: UseWord2013TrackBottomHyphenation, AllowHyphenationAtTrackBottome AllowTextAfterFloatingTableBreak (#706)
  • Adicionado gfxdata attribue a Arc, Curve, Line, PolyLine, Group, Image, Oval, Rect e RoundRect tipos complexos de forma por MS-OI29500 2.1.1783-1799 (#709)
  • Adicionado OpenXmlPartContainer.TryGetPartById para habilitar a recuperação de parte filho sem exceção se ela não existir (nº 714)
  • Propriedade adicionada OpenXmlPackage.StrictRelationshipFound que indica se esse pacote contém relações transitórias convertidas de Strict (#716)

Fixed

  • Partes derivadas personalizadas não herdaram partes conhecidas de seu pai, causando falha ao adicionar partes (nº 722)

Alterado

  • Marcados os setters de propriedade em OpenXmlAttribute tão obsoletos quanto structs não devem ter estado mutável (#698)

[2.10.1] - 2020-02-28

Fixed

  • Atributos garantidos estão disponíveis quando OpenXmlElement são inicializados com XML externo (#684, #692)
  • Alguns erros de documentação (#681)
  • Estado removido que o tornava não thread seguro para validar elementos em determinadas condições (#686)
  • Insere corretamente elementos fortemente tipado antes de elementos conhecidos que não são fortemente tipado (#690)

[2.10.0] - 2020-01-10

Adicionado

  • Adicionado o suporte inicial do Office 2016, incluindo FileFormatVersion.Office2016, ExtendedChartPart e outros novos elementos de esquema (#586)
  • Destino do .NET Standard 2.0 adicionado (#587)
  • Suporte a símbolos incluídos para depuração (#650)
  • Exposto IXmlNamespaceResolver em vez de XmlPath uma lista formatada de cadeias de caracteres para expor o namespace/o mapeamento de prefixo (#536)
  • IComparable<T> Implementado e IEquatable<T> ativado OpenXmlComparableSimpleValue para permitir comparações sem boxe (#550)
  • Adicionado OpenXmlPackage.RootPart para acessar facilmente a parte raiz em qualquer pacote (#661)

Alterado

  • Atualizado para v4.7.0 do System.IO.Packaging, que traz uma série de correções de perf (#660)
  • Dados consolidados para crianças/propriedades do elemento para reduzir a duplicação (#540, #547, #548)
  • Dados binários opacos substituídos por restrições de crianças do elemento por modelo declarativo (#603)
  • Uma série de correções de desempenho para minimizar alocações sempre que possível
  • Redução de tamanho de 20% de 5,5mb para 4,3mb
  • O subsistema de validação passou por uma reformulação drástica. Isso pode causar alterações em quais erros são relatados.

Fixed

  • Corrigido algumas inconsistências de documentação (nº 582)
  • Corrigido ToFlatOpcDocument, ToFlatOpcString, FromFlatOpcDocumente FromFlatOpcString para processar corretamente partes de importação de formato alternativo ou "partes altChunk" (#659)

[2.9.1] - 2019-03-13

Alterado

  • Adicionou uma solução alternativa para um problema do compilador .NET Native que não dá suporte à chamada Marshal.SizeOf<T> com um struct que contém propriedades implementadas automaticamente (#569)
  • Corrigido um erro de documentação (#528)

[2.9.0] - 2018-06-08

Adicionado

  • ListValue agora implementa IEnumerable<T> (#385)
  • Adicionado uma WebExtension.Frozen propriedade e obsoleta com ortografia Fronzen incorreta (#460)
  • Adicionado uma OpenXmlPackage.CanSave propriedade que indica se uma plataforma dá suporte a salvar sem fechar o pacote (#468)
  • Tipos simples (exceto EnumValue e ListValue) agora implementam IComparable<T> e IEquatable<T> (#487)

Alterado

  • Estado removido que era transportado em validadores que se manteriam em pacotes quando não estiverem em uso (#390)
  • EnumSimpleType A análise foi aprimorada e usa menos alocações e caches para uso futuro (#408)
  • Corrigido uma série de erros ortográficos na documentação (#462)
  • Ao chamar OpenXmlPackage.Save .NET Framework, o pacote agora é liberado para o fluxo (#468)
  • Condição de corrida fixa ao executar uma tradução estrita de atributos (#480)
  • Os dados de esquema para validação usam um formato mais compacto que leva a uma redução no tamanho da dll e melhorias de desempenho para carregamento (#482, #483)
  • Várias APIs são marcadas como obsoletas, pois têm soluções alternativas simples e serão removidas na próxima grande alteração
  • Corrigido alguns valores de restrição para validação que continham o Office 2007, mesmo quando ele só tinha suporte em versões posteriores
  • Atualizado System.IO.Packaging para 4.5.0, que corrige alguns problemas em plataformas Xamarin, bem como minimiza as dependências do .NET Framework

[2.8.1] - 2018-01-03

Alterado

  • Referência de arquivo de licença de pacote corrigido para mostrar a licença do MIT atualizada

[2.8.0] - 2017-12-28

Adicionado

  • Diretiva de runtime padrão para obter melhor suporte .NET Native.

Alterado

  • A economia de parte fixa deve ser codificada com UTF8, mas nenhuma marca de pedido de byte. Isso fez com que alguns renderizadores não fossem capazes de abrir o documento gerado.
  • Exceções fixas geradas quando erros são encontrados ao abrir pacotes para serem consistentes entre plataformas.
  • Corrigido o problema em plataformas Mono usando o pacote NuGet System.IO.Packaging (Xamarin etc) ao criar um documento.
  • Correção da economia manual de um pacote quando o salvamento automático é falso.
  • Correção de dados de restrição de esquema e serialização padronizada entre plataformas.
  • Atualizado para a System.IO.Packaging versão 4.4.0 que corrige alguma consistência com .NET Framework em pacotes de abertura.

[2.7.2] - 2017-06-06

Adicionado

  • O pacote agora dá suporte ao .NET 3.5 e ao .NET 4.0, além do .NET Standard 1.3 e .NET Framework 4.6

Alterado

  • Corrigido o problema em que a versão do assembly não foi definida no assembly.

[2.7.1] - 2017-01-31

Alterado

  • Falha corrigida quando a validação é invocada no .NET Framework com a nomenclatura forte imposta.

[2.7.0] - 2017-01-24

Adicionado

  • O SDK agora dá suporte ao .NET Standard 1.3

Alterado

  • Movido para usar System.IO.Packaging do dotnet/corefx para .NET Standard 1.3 e WindowsBase para .NET 4.5.
  • Limpou o sistema de build de projeto para usar a CLI do .NET.

[2.6.1] - 2016-01-15

Adicionado

  • Adicionaram centenas de testes XUnit. Agora há um total de 1333 testes. Eles levam cerca de 20 minutos para serem executados, então seja paciente.

[2.6.0] - 2015-06-29

Adicionado

  • Incorporou uma substituição System.IO.Packaging que corrige alguns bugs graves (mas excepcionais) encontrados na implementação do WindowsBase