Skip to content

Commit

Permalink
Hide package builder types (#1643)
Browse files Browse the repository at this point in the history
  • Loading branch information
twsouthwick committed Jan 8, 2024
1 parent dadb7e2 commit 3e35208
Show file tree
Hide file tree
Showing 16 changed files with 25 additions and 103 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ namespace DocumentFormat.OpenXml.Builder;
/// <summary>
/// A delegate for initializing a package.
/// </summary>
public delegate void PackageInitializerDelegate<TPackage>(TPackage package);
internal delegate void PackageInitializerDelegate<TPackage>(TPackage package);

/// <summary>
/// Defines a builder to create an initialization pipeline for a <typeparamref name="TPackage"/>.
/// </summary>
/// <typeparam name="TPackage">Type of the <see cref="OpenXmlPackage"/>.</typeparam>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public interface IPackageBuilder<TPackage>
internal interface IPackageBuilder<TPackage>
where TPackage : OpenXmlPackage
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// <typeparam name="TPackage">Type of <see cref="OpenXmlPackage"/>.</typeparam>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Design", "CA1000:Do not declare static members on generic types", Justification = "Static abstract interface types")]
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public interface IPackageDocumentBuilder<TPackage> where TPackage : OpenXmlPackage, IPackageDocumentBuilder<TPackage>
internal interface IPackageDocumentBuilder<TPackage> where TPackage : OpenXmlPackage, IPackageDocumentBuilder<TPackage>
{
/// <summary>
/// Creates a default builder for <typeparamref name="TPackage"/>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// <typeparam name="TPackage">Type of the <see cref="OpenXmlPackage"/>.</typeparam>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public interface IPackageFactory<TPackage>
internal interface IPackageFactory<TPackage>
{
/// <summary>
/// Create an instance of <typeparamref name="TPackage"/>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static class OpenXmlPackageBuilderExtensions
internal static class OpenXmlPackageBuilderExtensions
{
/// <summary>
/// Opens the <paramref name="stream"/> with the given <paramref name="mode"/>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public enum PackageOpenMode
internal enum PackageOpenMode
{
/// <summary>
/// Indicates that a new package will be created.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// </summary>
[Experimental(ExperimentalApis.AOT, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.AOT, UrlFormat = ExperimentalApis.UrlFormat)]
public static class SchemaTrackingExtensions
internal static class SchemaTrackingExtensions
{
private const string Key = "__SchemaTracker";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace DocumentFormat.OpenXml.Builder;
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static class TemplateBuilderExtensions
internal static class TemplateBuilderExtensions
{
/// <summary>
/// Adds a template to the current <paramref name="builder"/>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace DocumentFormat.OpenXml.Features;
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public interface IPackageInitializer
internal interface IPackageInitializer
{
/// <summary>
/// Initializes a package.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace DocumentFormat.OpenXml.Features;
/// </summary>
[Experimental(ExperimentalApis.AOT, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.AOT, UrlFormat = ExperimentalApis.UrlFormat)]
public interface ISchemaTrackingFeature
internal interface ISchemaTrackingFeature
{
/// <summary>
/// Gets a collection of root elements that have been requested.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace DocumentFormat.OpenXml.Framework;
/// </summary>
[Experimental(ExperimentalApis.Framework, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.Framework, UrlFormat = ExperimentalApis.UrlFormat)]
public readonly partial struct OpenXmlNamespace : IComparable<OpenXmlNamespace>, IEquatable<OpenXmlNamespace>
internal readonly partial struct OpenXmlNamespace : IComparable<OpenXmlNamespace>, IEquatable<OpenXmlNamespace>
{
private readonly string? _uri;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace DocumentFormat.OpenXml.Framework;
/// </summary>
[Experimental(ExperimentalApis.Framework, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.Framework, UrlFormat = ExperimentalApis.UrlFormat)]
public readonly struct OpenXmlQualifiedName : IComparable<OpenXmlQualifiedName>, IEquatable<OpenXmlQualifiedName>
internal readonly struct OpenXmlQualifiedName : IComparable<OpenXmlQualifiedName>, IEquatable<OpenXmlQualifiedName>
{
internal OpenXmlQualifiedName(in OpenXmlNamespace ns, string name)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,61 +1 @@
#nullable enable
DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage>
DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage>.Build() -> DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage!>!
DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage>.Clone() -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage>.Properties.get -> System.Collections.Generic.IDictionary<string!, object?>!
DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage>.Use(System.Func<DocumentFormat.OpenXml.Builder.PackageInitializerDelegate<TPackage!>!, DocumentFormat.OpenXml.Builder.PackageInitializerDelegate<TPackage!>!>! configure) -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage>
DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage>.Create(DocumentFormat.OpenXml.Features.IPackageInitializer! initializer) -> TPackage
DocumentFormat.OpenXml.Builder.OpenXmlPackageBuilderExtensions
DocumentFormat.OpenXml.Builder.PackageInitializerDelegate<TPackage>
DocumentFormat.OpenXml.Builder.PackageOpenMode
DocumentFormat.OpenXml.Builder.PackageOpenMode.Create = 0 -> DocumentFormat.OpenXml.Builder.PackageOpenMode
DocumentFormat.OpenXml.Builder.PackageOpenMode.Read = 1 -> DocumentFormat.OpenXml.Builder.PackageOpenMode
DocumentFormat.OpenXml.Builder.PackageOpenMode.ReadWrite = 2 -> DocumentFormat.OpenXml.Builder.PackageOpenMode
DocumentFormat.OpenXml.Builder.SchemaTrackingExtensions
DocumentFormat.OpenXml.Builder.TemplateBuilderExtensions
DocumentFormat.OpenXml.Features.IPackageInitializer
DocumentFormat.OpenXml.Features.IPackageInitializer.Initialize(DocumentFormat.OpenXml.Packaging.OpenXmlPackage! package) -> void
DocumentFormat.OpenXml.Features.ISchemaTrackingFeature
DocumentFormat.OpenXml.Features.ISchemaTrackingFeature.Relationships.get -> System.Collections.Generic.ICollection<string!>!
DocumentFormat.OpenXml.Features.ISchemaTrackingFeature.RootElements.get -> System.Collections.Generic.ICollection<DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName>!
DocumentFormat.OpenXml.Framework.OpenXmlNamespace
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.CompareTo(DocumentFormat.OpenXml.Framework.OpenXmlNamespace other) -> int
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.Equals(DocumentFormat.OpenXml.Framework.OpenXmlNamespace other) -> bool
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.IsEmpty.get -> bool
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.OpenXmlNamespace() -> void
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.OpenXmlNamespace(string! nsUri) -> void
DocumentFormat.OpenXml.Framework.OpenXmlNamespace.Uri.get -> string!
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.CompareTo(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName other) -> int
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.Equals(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName other) -> bool
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.Name.get -> string!
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.Namespace.get -> DocumentFormat.OpenXml.Framework.OpenXmlNamespace
DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.OpenXmlQualifiedName() -> void
override DocumentFormat.OpenXml.Framework.OpenXmlNamespace.Equals(object? obj) -> bool
override DocumentFormat.OpenXml.Framework.OpenXmlNamespace.GetHashCode() -> int
override DocumentFormat.OpenXml.Framework.OpenXmlNamespace.ToString() -> string!
override DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.Equals(object? obj) -> bool
override DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.GetHashCode() -> int
override DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.ToString() -> string!
static DocumentFormat.OpenXml.Builder.OpenXmlPackageBuilderExtensions.Open<TPackage>(this DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage!>! builder, string! file, DocumentFormat.OpenXml.Builder.PackageOpenMode mode) -> TPackage!
static DocumentFormat.OpenXml.Builder.OpenXmlPackageBuilderExtensions.Open<TPackage>(this DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage!>! builder, System.IO.Packaging.Package! package) -> TPackage!
static DocumentFormat.OpenXml.Builder.OpenXmlPackageBuilderExtensions.Open<TPackage>(this DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage!>! builder, System.IO.Stream! stream, DocumentFormat.OpenXml.Builder.PackageOpenMode mode) -> TPackage!
static DocumentFormat.OpenXml.Builder.OpenXmlPackageBuilderExtensions.Use<TPackage>(this DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>! builder, System.Action<TPackage!, DocumentFormat.OpenXml.Builder.PackageInitializerDelegate<TPackage!>!>! middleware) -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
static DocumentFormat.OpenXml.Builder.SchemaTrackingExtensions.GetSchemaTracker<T>(this DocumentFormat.OpenXml.Builder.IPackageBuilder<T!>! builder) -> DocumentFormat.OpenXml.Features.ISchemaTrackingFeature!
static DocumentFormat.OpenXml.Builder.SchemaTrackingExtensions.UseSchemaTracker<T>(this DocumentFormat.OpenXml.Builder.IPackageBuilder<T!>! builder) -> DocumentFormat.OpenXml.Builder.IPackageBuilder<T!>!
static DocumentFormat.OpenXml.Builder.TemplateBuilderExtensions.UseTemplate<TPackage, TType>(this DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>! builder, string! path, TType type) -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.implicit operator DocumentFormat.OpenXml.Framework.OpenXmlNamespace(string! nsUri) -> DocumentFormat.OpenXml.Framework.OpenXmlNamespace
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator !=(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator <(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator <=(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator ==(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator >(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlNamespace.operator >=(DocumentFormat.OpenXml.Framework.OpenXmlNamespace left, DocumentFormat.OpenXml.Framework.OpenXmlNamespace right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator !=(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator <(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator <=(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator ==(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator >(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
static DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName.operator >=(DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName left, DocumentFormat.OpenXml.Framework.OpenXmlQualifiedName right) -> bool
virtual DocumentFormat.OpenXml.Builder.PackageInitializerDelegate<TPackage>.Invoke(TPackage package) -> void
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
#nullable enable
DocumentFormat.OpenXml.Builder.IPackageDocumentBuilder<TPackage>
DocumentFormat.OpenXml.Builder.IPackageDocumentBuilder<TPackage>.CreateBuilder() -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
DocumentFormat.OpenXml.Builder.IPackageDocumentBuilder<TPackage>.CreateDefaultBuilder() -> DocumentFormat.OpenXml.Builder.IPackageBuilder<TPackage!>!
DocumentFormat.OpenXml.Builder.IPackageDocumentBuilder<TPackage>.DefaultFactory.get -> DocumentFormat.OpenXml.Builder.IPackageFactory<TPackage!>!

13 changes: 4 additions & 9 deletions src/DocumentFormat.OpenXml/Packaging/PresentationDocument.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,7 @@ namespace DocumentFormat.OpenXml.Packaging
/// Defines PresentationDocument - an OpenXmlPackage represents a Presentation document
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "Disposable is returned")]
public partial class PresentationDocument :
#if NET7_0_OR_GREATER
OpenXmlPackage, IPackageDocumentBuilder<PresentationDocument>
#else
OpenXmlPackage
#endif
public partial class PresentationDocument : OpenXmlPackage
{
internal PresentationDocument()
: base()
Expand All @@ -35,22 +30,22 @@ internal PresentationDocument()
/// <returns>The default builder.</returns>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageBuilder<PresentationDocument> CreateBuilder() => new Builder();
internal static IPackageBuilder<PresentationDocument> CreateBuilder() => new Builder();

/// <summary>
/// Creates a builder that has minimal initialization for <see cref="PresentationDocument"/>.
/// </summary>
/// <returns>A minimal builder.</returns>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageBuilder<PresentationDocument> CreateDefaultBuilder() => DefaultBuilder.Clone();
internal static IPackageBuilder<PresentationDocument> CreateDefaultBuilder() => DefaultBuilder.Clone();

/// <summary>
/// Gets the default factory for <see cref="PresentationDocument"/>.
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageFactory<PresentationDocument> DefaultFactory { get; } = DefaultBuilder.Build();
internal static IPackageFactory<PresentationDocument> DefaultFactory { get; } = DefaultBuilder.Build();

private sealed class Builder : OpenXmlPackageBuilder<PresentationDocument>
{
Expand Down
13 changes: 4 additions & 9 deletions src/DocumentFormat.OpenXml/Packaging/SpreadsheetDocument.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,7 @@ namespace DocumentFormat.OpenXml.Packaging
/// Defines SpreadsheetDocument - an OpenXmlPackage represents a Spreadsheet document.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Reliability", "CA2000:Dispose objects before losing scope", Justification = "Disposable is returned")]
public partial class SpreadsheetDocument :
#if NET7_0_OR_GREATER
OpenXmlPackage, IPackageDocumentBuilder<SpreadsheetDocument>
#else
OpenXmlPackage
#endif
public partial class SpreadsheetDocument : OpenXmlPackage
{
internal SpreadsheetDocument()
: base()
Expand All @@ -35,22 +30,22 @@ internal SpreadsheetDocument()
/// <returns>The default builder.</returns>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageBuilder<SpreadsheetDocument> CreateBuilder() => new Builder();
internal static IPackageBuilder<SpreadsheetDocument> CreateBuilder() => new Builder();

/// <summary>
/// Creates a builder that has minimal initialization for <see cref="SpreadsheetDocument"/>.
/// </summary>
/// <returns>A minimal builder.</returns>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageBuilder<SpreadsheetDocument> CreateDefaultBuilder() => DefaultBuilder.Clone();
internal static IPackageBuilder<SpreadsheetDocument> CreateDefaultBuilder() => DefaultBuilder.Clone();

/// <summary>
/// Gets the default factory for <see cref="SpreadsheetDocument"/>.
/// </summary>
[Experimental(ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
[Obsolete(ExperimentalApis.Message, DiagnosticId = ExperimentalApis.PackageBuilder, UrlFormat = ExperimentalApis.UrlFormat)]
public static IPackageFactory<SpreadsheetDocument> DefaultFactory { get; } = DefaultBuilder.Build();
internal static IPackageFactory<SpreadsheetDocument> DefaultFactory { get; } = DefaultBuilder.Build();

private sealed class Builder : OpenXmlPackageBuilder<SpreadsheetDocument>
{
Expand Down
Loading

0 comments on commit 3e35208

Please sign in to comment.