From f5f7474225dd957e1b51177588be48a5e61d9199 Mon Sep 17 00:00:00 2001 From: Michele Bastione Date: Fri, 8 Aug 2025 23:10:31 +0200 Subject: [PATCH 1/2] Minor refactoring Taken care of a some warnings, removed unused imports, added pattern matching where deemed appropriate, general code and comment cleanup --- .../Abstractions/IMiniExcelWriteAdapter.cs | 4 +- .../IMiniExcelWriteAdapterAsync.cs | 4 +- .../DataReader/MiniExcelDataReaderBase.cs | 4 +- .../OpenXml/Constants/ExcelXml.cs | 3 +- .../OpenXml/Models/ExcelWidthCollection.cs | 2 - src/MiniExcel.Core/OpenXml/OpenXmlReader.cs | 61 +- .../OpenXml/OpenXmlWriter.DefaultOpenXml.cs | 39 +- src/MiniExcel.Core/OpenXml/OpenXmlWriter.cs | 34 +- .../OpenXml/Picture/OpenXmlPicture.cs | 1 - .../Builder/DefaultSheetStyleBuilder.cs | 589 +++++++++--------- .../Builder/MinimalSheetStyleBuilder.cs | 63 +- .../Styles/Builder/SheetStyleBuildContext.cs | 29 +- .../Styles/Builder/SheetStyleBuilderBase.cs | 133 ++-- .../Styles/Builder/SheetStyleBuilderHelper.cs | 1 - .../OpenXml/Styles/OpenXmlStyles.cs | 20 +- .../OpenXml/Templates/OpenXmlTemplate.Impl.cs | 18 +- .../OpenXml/Templates/OpenXmlTemplate.cs | 5 +- .../Templates/OpenXmlValueExtractor.cs | 3 - .../OpenXml/Utils/DateTimeHelper.cs | 2 +- .../Reflection/CustomPropertyHelper.cs | 1 - .../Reflection/MiniExcelMapper.cs | 2 - .../AsyncEnumerableWriteAdapter.cs | 5 +- .../WriteAdapters/DataReaderWriteAdapter.cs | 5 +- .../WriteAdapters/DataTableWriteAdapter.cs | 5 +- .../WriteAdapters/EnumerableWriteAdapter.cs | 6 +- .../MiniExcelDataReaderWriteAdapter.cs | 5 +- .../MiniExcelWriteAdapterFactory.cs | 5 +- src/MiniExcel.Csv/CsvReader.cs | 9 +- src/MiniExcel.Csv/CsvWriter.cs | 13 +- .../MiniExcelAutoAdjustWidthTests.cs | 38 +- .../MiniExcelOpenXmlConfigurationTest.cs | 2 +- .../MiniExcelOpenXmlMultipleSheetTests.cs | 11 +- .../MiniExcelOpenXmlTests.cs | 5 +- tests/MiniExcel.Csv.Tests/AsyncIssueTests.cs | 67 +- tests/MiniExcel.Csv.Tests/IssueTests.cs | 95 +-- .../MiniExcelCsvAsycTests.cs | 97 ++- .../MiniExcel.Csv.Tests/MiniExcelCsvTests.cs | 51 +- 37 files changed, 671 insertions(+), 766 deletions(-) diff --git a/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapter.cs b/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapter.cs index 1fb24a85..a57675ed 100644 --- a/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapter.cs +++ b/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapter.cs @@ -1,6 +1,4 @@ -using MiniExcelLib.Core.Reflection; - -namespace MiniExcelLib.Core.Abstractions; +namespace MiniExcelLib.Core.Abstractions; public interface IMiniExcelWriteAdapter { diff --git a/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapterAsync.cs b/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapterAsync.cs index 03865a63..14a9aeb9 100644 --- a/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapterAsync.cs +++ b/src/MiniExcel.Core/Abstractions/IMiniExcelWriteAdapterAsync.cs @@ -1,6 +1,4 @@ -using MiniExcelLib.Core.Reflection; - -namespace MiniExcelLib.Core.Abstractions; +namespace MiniExcelLib.Core.Abstractions; public interface IMiniExcelWriteAdapterAsync { diff --git a/src/MiniExcel.Core/DataReader/MiniExcelDataReaderBase.cs b/src/MiniExcel.Core/DataReader/MiniExcelDataReaderBase.cs index e10811ec..8bc3107d 100644 --- a/src/MiniExcel.Core/DataReader/MiniExcelDataReaderBase.cs +++ b/src/MiniExcel.Core/DataReader/MiniExcelDataReaderBase.cs @@ -1,6 +1,4 @@ -using MiniExcelLib.Core.Abstractions; - -namespace MiniExcelLib.Core.DataReader; +namespace MiniExcelLib.Core.DataReader; /// /// IMiniExcelDataReader Base Class diff --git a/src/MiniExcel.Core/OpenXml/Constants/ExcelXml.cs b/src/MiniExcel.Core/OpenXml/Constants/ExcelXml.cs index d5fd0639..fd885fcc 100644 --- a/src/MiniExcel.Core/OpenXml/Constants/ExcelXml.cs +++ b/src/MiniExcel.Core/OpenXml/Constants/ExcelXml.cs @@ -1,5 +1,4 @@ -using MiniExcelLib.Core.Helpers; -using MiniExcelLib.Core.OpenXml.Models; +using MiniExcelLib.Core.OpenXml.Models; namespace MiniExcelLib.Core.OpenXml.Constants; diff --git a/src/MiniExcel.Core/OpenXml/Models/ExcelWidthCollection.cs b/src/MiniExcel.Core/OpenXml/Models/ExcelWidthCollection.cs index b122fc07..7ed738b4 100644 --- a/src/MiniExcel.Core/OpenXml/Models/ExcelWidthCollection.cs +++ b/src/MiniExcel.Core/OpenXml/Models/ExcelWidthCollection.cs @@ -1,5 +1,3 @@ -using MiniExcelLib.Core.Reflection; - namespace MiniExcelLib.Core.OpenXml.Models; public sealed class ExcelColumnWidth diff --git a/src/MiniExcel.Core/OpenXml/OpenXmlReader.cs b/src/MiniExcel.Core/OpenXml/OpenXmlReader.cs index 1cbfd8bd..999cec5b 100644 --- a/src/MiniExcel.Core/OpenXml/OpenXmlReader.cs +++ b/src/MiniExcel.Core/OpenXml/OpenXmlReader.cs @@ -1,17 +1,14 @@ using System.Collections.ObjectModel; -using MiniExcelLib.Core.Helpers; using MiniExcelLib.Core.OpenXml.Constants; using MiniExcelLib.Core.OpenXml.Models; using MiniExcelLib.Core.OpenXml.Styles; -using MiniExcelLib.Core.OpenXml.Utils; using MiniExcelLib.Core.OpenXml.Zip; -using MiniExcelLib.Core.Reflection; using MiniExcelMapper = MiniExcelLib.Core.Reflection.MiniExcelMapper; using XmlReaderHelper = MiniExcelLib.Core.OpenXml.Utils.XmlReaderHelper; namespace MiniExcelLib.Core.OpenXml; -internal partial class OpenXmlReader : Abstractions.IMiniExcelReader +internal partial class OpenXmlReader : IMiniExcelReader { private static readonly string[] Ns = [Schemas.SpreadsheetmlXmlns, Schemas.SpreadsheetmlXmlStrictns]; private static readonly string[] RelationshiopNs = [Schemas.SpreadsheetmlXmlRelationshipns, Schemas.SpreadsheetmlXmlStrictRelationshipns]; @@ -22,7 +19,7 @@ internal partial class OpenXmlReader : Abstractions.IMiniExcelReader private bool _disposed; internal readonly OpenXmlZip Archive; - internal IDictionary? SharedStrings; + internal IDictionary SharedStrings = new Dictionary(); private OpenXmlReader(Stream stream, IMiniExcelConfiguration? configuration) { @@ -217,10 +214,8 @@ await XmlReaderHelper.SkipToNextSameLevelDomAsync(reader, cancellationToken) await foreach (var row in QueryRowAsync(reader, isFirstRow, startRowIndex, nextRowIndex, rowIndex, startColumnIndex, endColumnIndex, maxColumnIndex, - withoutCr, - useHeaderRow, headRows, mergeCellsContext.MergeCells, - cancellationToken) - .ConfigureAwait(false)) + withoutCr, useHeaderRow, headRows, mergeCellsContext.MergeCells, + cancellationToken).ConfigureAwait(false)) { if (isFirstRow) { @@ -232,8 +227,7 @@ await XmlReaderHelper.SkipToNextSameLevelDomAsync(reader, cancellationToken) yield return row; } } - else if (!await XmlReaderHelper.SkipContentAsync(reader, cancellationToken) - .ConfigureAwait(false)) + else if (!await XmlReaderHelper.SkipContentAsync(reader, cancellationToken).ConfigureAwait(false)) { break; } @@ -385,7 +379,7 @@ private ZipArchiveEntry GetSheetEntry(string? sheetName) : CustomPropertyHelper.GetEmptyExpandoObject(maxColumnIndex, startColumnIndex); } - private static void SetCellsValueAndHeaders(object? cellValue, bool useHeaderRow, Dictionary headRows, bool isFirstRow, IDictionary cell, int columnIndex) + private static void SetCellsValueAndHeaders(object? cellValue, bool useHeaderRow, Dictionary headRows, bool isFirstRow, IDictionary cell, int columnIndex) { if (!useHeaderRow) { @@ -411,7 +405,7 @@ private async Task SetSharedStringsAsync(CancellationToken cancellationToken = d { cancellationToken.ThrowIfCancellationRequested(); - if (SharedStrings is not null) + if (SharedStrings is { Count: > 0 }) return; var sharedStringsEntry = Archive.GetEntry("xl/sharedStrings.xml"); @@ -432,7 +426,7 @@ private async Task SetSharedStringsAsync(CancellationToken cancellationToken = d SharedStrings[idx++] = sharedString; } } - else if (SharedStrings is null) + else if (SharedStrings is { Count: 0 }) { var list = await XmlReaderHelper.GetSharedStringsAsync(stream, cancellationToken, Ns) .CreateListAsync(cancellationToken) @@ -672,7 +666,8 @@ private void ConvertCellValue(string rawValue, string aT, int xfIndex, out objec { const NumberStyles style = NumberStyles.Any; var invariantCulture = CultureInfo.InvariantCulture; - + value = null; + switch (aT) { case "s": @@ -680,22 +675,20 @@ private void ConvertCellValue(string rawValue, string aT, int xfIndex, out objec { if (sstIndex >= 0 && sstIndex < SharedStrings?.Count) { - //value = Helpers.ConvertEscapeChars(_SharedStrings[sstIndex]); value = XmlHelper.DecodeString(SharedStrings[sstIndex]); - return; } } - value = null; - return; + break; case "inlineStr": case "str": //TODO: it will unbox,box var v = XmlHelper.DecodeString(rawValue); + value = v; if (_config.EnableConvertByteArray) { //if str start with "data:image/png;base64," then convert to byte[] https://github.com/mini-software/MiniExcel/issues/318 - if (v is not null && v.StartsWith("@@@fileid@@@,", StringComparison.Ordinal)) + if (v?.StartsWith("@@@fileid@@@,", StringComparison.Ordinal) ?? false) { var path = v[13..]; var entry = Archive.GetEntry(path); @@ -708,29 +701,17 @@ private void ConvertCellValue(string rawValue, string aT, int xfIndex, out objec } value = bytes; } - else - { - value = v; - } - } - else - { - value = v; } - return; + break; case "b": value = rawValue == "1"; return; case "d": - if (DateTime.TryParseExact(rawValue, "yyyy-MM-dd", invariantCulture, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite, out var date)) - { - value = date; - return; - } - - value = rawValue; + value = DateTime.TryParseExact(rawValue, "yyyy-MM-dd", invariantCulture, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite, out var date) + ? date + : rawValue; return; case "e": @@ -738,13 +719,7 @@ private void ConvertCellValue(string rawValue, string aT, int xfIndex, out objec return; default: - if (double.TryParse(rawValue, style, invariantCulture, out var n)) - { - value = n; - return; - } - - value = rawValue; + value = double.TryParse(rawValue, style, invariantCulture, out var n) ? n : rawValue; return; } } diff --git a/src/MiniExcel.Core/OpenXml/OpenXmlWriter.DefaultOpenXml.cs b/src/MiniExcel.Core/OpenXml/OpenXmlWriter.DefaultOpenXml.cs index 47178af3..fc3e8ca2 100644 --- a/src/MiniExcel.Core/OpenXml/OpenXmlWriter.DefaultOpenXml.cs +++ b/src/MiniExcel.Core/OpenXml/OpenXmlWriter.DefaultOpenXml.cs @@ -1,14 +1,11 @@ -using MiniExcelLib.Core.Helpers; using MiniExcelLib.Core.OpenXml.Constants; using MiniExcelLib.Core.OpenXml.Models; -using MiniExcelLib.Core.OpenXml.Utils; using MiniExcelLib.Core.OpenXml.Zip; -using MiniExcelLib.Core.Reflection; using static MiniExcelLib.Core.Helpers.ImageHelper; namespace MiniExcelLib.Core.OpenXml; -internal partial class OpenXmlWriter : Abstractions.IMiniExcelWriter +internal partial class OpenXmlWriter : IMiniExcelWriter { private readonly Dictionary _zipDictionary = []; private Dictionary _cellXfIdMap; @@ -202,12 +199,11 @@ private Tuple GetCellValue(int rowIndex, int cellIndex, if (type == typeof(byte[]) && _configuration.EnableConvertByteArray) { + if (!_configuration.EnableWriteFilePath) + return Tuple.Create("4", "str", ""); + var base64 = GetFileValue(rowIndex, cellIndex, value); - if (_configuration.EnableWriteFilePath) - { - return Tuple.Create("4", "str", XmlHelper.EncodeXml(base64)); - } - return Tuple.Create("4", "str", ""); + return Tuple.Create("4", "str", XmlHelper.EncodeXml(base64)); } return Tuple.Create("2", "str", XmlHelper.EncodeXml(value.ToString())); @@ -260,7 +256,7 @@ private string GetNumericValue(object value, Type type) if (type.IsAssignableFrom(typeof(float))) return ((float)value).ToString(_configuration.Culture); - return (decimal.Parse(value.ToString())).ToString(_configuration.Culture); + return decimal.Parse(value.ToString()).ToString(_configuration.Culture); } private string GetFileValue(int rowIndex, int cellIndex, object value) @@ -272,7 +268,7 @@ private string GetFileValue(int rowIndex, int cellIndex, object value) //it can't insert to zip first to avoid cache image to memory //because sheet xml is opening.. https://github.com/mini-software/MiniExcel/issues/304#issuecomment-1017031691 //int rowIndex, int cellIndex - var file = new FileDto() + var file = new FileDto { Byte = bytes, RowIndex = rowIndex, @@ -280,7 +276,7 @@ private string GetFileValue(int rowIndex, int cellIndex, object value) SheetId = _currentSheetIndex }; - if (format != ImageHelper.ImageFormat.Unknown) + if (format != ImageFormat.Unknown) { file.Extension = format.ToString(); file.IsImage = true; @@ -331,18 +327,13 @@ private static double CorrectDateTimeValue(DateTime value) private static string GetDimensionRef(int maxRowIndex, int maxColumnIndex) { - string dimensionRef; - if (maxRowIndex == 0 && maxColumnIndex == 0) - dimensionRef = "A1"; - else if (maxRowIndex <= 1 && maxColumnIndex == 0) - dimensionRef = "A1"; - else if (maxColumnIndex <= 1) - dimensionRef = $"A1:A{maxRowIndex}"; - else if (maxRowIndex == 0) - dimensionRef = $"A1:{ColumnHelper.GetAlphabetColumnName(maxColumnIndex - 1)}1"; - else - dimensionRef = $"A1:{ColumnHelper.GetAlphabetColumnName(maxColumnIndex - 1)}{maxRowIndex}"; - return dimensionRef; + return (maxRowIndex, maxColumnIndex) switch + { + (<= 1, 0) => "A1", + (_, <= 1) => $"A1:A{maxRowIndex}", + (0, _) => $"A1:{ColumnHelper.GetAlphabetColumnName(maxColumnIndex - 1)}1", + _ => $"A1:{ColumnHelper.GetAlphabetColumnName(maxColumnIndex - 1)}{maxRowIndex}" + }; } private string GetDrawingRelationshipXml(int sheetIndex) diff --git a/src/MiniExcel.Core/OpenXml/OpenXmlWriter.cs b/src/MiniExcel.Core/OpenXml/OpenXmlWriter.cs index 4d0b2acc..80b5c268 100644 --- a/src/MiniExcel.Core/OpenXml/OpenXmlWriter.cs +++ b/src/MiniExcel.Core/OpenXml/OpenXmlWriter.cs @@ -1,21 +1,15 @@ +using System.ComponentModel; using System.Xml.Linq; -using MiniExcelLib.Core.Abstractions; -using MiniExcelLib.Core.Helpers; using MiniExcelLib.Core.OpenXml.Constants; using MiniExcelLib.Core.OpenXml.Models; using MiniExcelLib.Core.OpenXml.Styles.Builder; -using MiniExcelLib.Core.OpenXml.Utils; using MiniExcelLib.Core.OpenXml.Zip; -using MiniExcelLib.Core.Reflection; using MiniExcelLib.Core.WriteAdapters; -using DefaultSheetStyleBuilder = MiniExcelLib.Core.OpenXml.Styles.Builder.DefaultSheetStyleBuilder; -using ISheetStyleBuilder = MiniExcelLib.Core.OpenXml.Styles.Builder.ISheetStyleBuilder; -using MinimalSheetStyleBuilder = MiniExcelLib.Core.OpenXml.Styles.Builder.MinimalSheetStyleBuilder; using SafeStreamWriter = MiniExcelLib.Core.Helpers.SafeStreamWriter; namespace MiniExcelLib.Core.OpenXml; -internal partial class OpenXmlWriter : Abstractions.IMiniExcelWriter +internal partial class OpenXmlWriter : IMiniExcelWriter { private static readonly UTF8Encoding Utf8WithBom = new(true); @@ -35,8 +29,8 @@ internal OpenXmlWriter(Stream stream, object? value, string? sheetName, IMiniExc { _stream = stream; - // Why ZipArchiveMode.Update not ZipArchiveMode.Create? - // R : Mode create - ZipArchiveEntry does not support seeking.' + // A. Why ZipArchiveMode.Update and not ZipArchiveMode.Create? + // R. ZipArchiveEntry does not support seeking when Mode is Create. _configuration = configuration as OpenXmlConfiguration ?? OpenXmlConfiguration.Default; if (_configuration is { EnableAutoWidth: true, FastMode: false }) throw new InvalidOperationException("Auto width requires fast mode to be enabled"); @@ -255,13 +249,12 @@ private async Task WriteValuesAsync(SafeStreamWriter writer, object values, var count = 0; var isKnownCount = writeAdapter is not null && writeAdapter.TryGetKnownCount(out count); - List props; #if SYNC_ONLY - props = writeAdapter?.GetColumns(); + var props = writeAdapter?.GetColumns(); #else - props = writeAdapter is not null - ? writeAdapter?.GetColumns() - : await asyncWriteAdapter.GetColumnsAsync().ConfigureAwait(false); + var props = writeAdapter is not null + ? writeAdapter.GetColumns() + : await (asyncWriteAdapter?.GetColumnsAsync() ?? Task.FromResult?>(null)).ConfigureAwait(false); #endif if (props is null) @@ -309,7 +302,7 @@ private async Task WriteValuesAsync(SafeStreamWriter writer, object values, var currentRowIndex = 0; if (_printHeader) { - await PrintHeaderAsync(writer, props, cancellationToken).ConfigureAwait(false); + await PrintHeaderAsync(writer, props!, cancellationToken).ConfigureAwait(false); currentRowIndex++; } @@ -331,8 +324,6 @@ private async Task WriteValuesAsync(SafeStreamWriter writer, object values, else { #if !SYNC_ONLY -#pragma warning disable CA2007 - //todo: why does this throw compiler error even if ConfigureAwait(false) is present? await foreach (var row in asyncWriteAdapter.GetRowsAsync(props, cancellationToken).ConfigureAwait(false)) { cancellationToken.ThrowIfCancellationRequested(); @@ -344,7 +335,6 @@ private async Task WriteValuesAsync(SafeStreamWriter writer, object values, } await writer.WriteAsync(WorksheetXml.EndRow, cancellationToken).ConfigureAwait(false); } -#pragma warning restore CA2007 #endif } maxRowIndex = currentRowIndex; @@ -518,12 +508,12 @@ private async Task GenerateStylesXmlAsync(CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); - using var context = new SheetStyleBuildContext(_zipDictionary, _archive, Utf8WithBom, _configuration.DynamicColumns); - ISheetStyleBuilder? builder = _configuration.TableStyles switch + using var context = new SheetStyleBuildContext(_zipDictionary, _archive, Utf8WithBom, _configuration.DynamicColumns ?? []); + ISheetStyleBuilder builder = _configuration.TableStyles switch { TableStyles.None => new MinimalSheetStyleBuilder(context), TableStyles.Default => new DefaultSheetStyleBuilder(context, _configuration.StyleOptions), - _ => null! + _ => throw new InvalidEnumArgumentException(nameof(_configuration.TableStyles), (int)_configuration.TableStyles, typeof(TableStyles)) }; var result = await builder.BuildAsync(cancellationToken).ConfigureAwait(false); diff --git a/src/MiniExcel.Core/OpenXml/Picture/OpenXmlPicture.cs b/src/MiniExcel.Core/OpenXml/Picture/OpenXmlPicture.cs index b0c471a3..c1f4c651 100644 --- a/src/MiniExcel.Core/OpenXml/Picture/OpenXmlPicture.cs +++ b/src/MiniExcel.Core/OpenXml/Picture/OpenXmlPicture.cs @@ -1,6 +1,5 @@ using System.Drawing; using MiniExcelLib.Core.Enums; -using MiniExcelLib.Core.OpenXml.Utils; namespace MiniExcelLib.Core.OpenXml.Picture; diff --git a/src/MiniExcel.Core/OpenXml/Styles/Builder/DefaultSheetStyleBuilder.cs b/src/MiniExcel.Core/OpenXml/Styles/Builder/DefaultSheetStyleBuilder.cs index 56a4b097..8a5e67df 100644 --- a/src/MiniExcel.Core/OpenXml/Styles/Builder/DefaultSheetStyleBuilder.cs +++ b/src/MiniExcel.Core/OpenXml/Styles/Builder/DefaultSheetStyleBuilder.cs @@ -8,7 +8,7 @@ internal partial class DefaultSheetStyleBuilder(SheetStyleBuildContext context, { private static readonly SheetStyleElementInfos GenerateElementInfos = new() { - NumFmtCount = 0,//The default NumFmt number is 0, but there will be NumFmt dynamically generated based on ColumnsToApply + NumFmtCount = 0, //The default NumFmt number is 0, but there will be NumFmt dynamically generated based on ColumnsToApply FontCount = 2, FillCount = 3, BorderCount = 2, @@ -23,6 +23,9 @@ internal partial class DefaultSheetStyleBuilder(SheetStyleBuildContext context, private readonly SheetStyleBuildContext _context = context; private readonly OpenXmlStyleOptions _styleOptions = styleOptions; + private XmlReader OldReader => _context.OldXmlReader!; + private XmlWriter NewWriter => _context.NewXmlWriter!; + protected override SheetStyleElementInfos GetGenerateElementInfos() { return GenerateElementInfos; @@ -40,10 +43,10 @@ protected override async Task GenerateNumFmtAsync() /* * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "font", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "vertAlign", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "baseline").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "sz", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "11").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "name", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "Calibri").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "family", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "2").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "font", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "vertAlign", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "baseline").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "sz", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "11").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "name", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "Calibri").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "family", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "2").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); /* * @@ -86,23 +89,23 @@ protected override async Task GenerateFontAsync() * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "font", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "vertAlign", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "baseline").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "sz", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "11").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FFFFFFFF").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "name", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "Calibri").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "family", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "val", null, "2").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "font", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "vertAlign", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "baseline").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "sz", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "11").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FFFFFFFF").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "name", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "Calibri").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "family", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "val", null, "2").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); } [CreateSyncVersion] @@ -113,22 +116,22 @@ protected override async Task GenerateFillAsync() * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "fill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "patternFill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "patternType", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "fill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "patternFill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "patternType", null, "none").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); /* * * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "fill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "patternFill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "patternType", null, "gray125").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "fill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "patternFill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "patternType", null, "gray125").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); /* * @@ -137,18 +140,18 @@ protected override async Task GenerateFillAsync() * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "fill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "patternFill", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "patternType", null, "solid").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "fgColor", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "fill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "patternFill", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "patternType", null, "solid").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "fgColor", OldReader.NamespaceURI).ConfigureAwait(false); var bgColor = _styleOptions.HeaderStyle?.BackgroundColor ?? DefaultBackgroundColor; var hexBgColor = $"{bgColor.A:X2}{bgColor.R:X2}{bgColor.G:X2}{bgColor.B:X2}"; - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, hexBgColor).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, hexBgColor).ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); } [CreateSyncVersion] @@ -173,40 +176,40 @@ protected override async Task GenerateBorderAsync() * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "border", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "diagonalUp", null, "0").ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "diagonalDown", null, "0").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "left", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "right", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "top", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "bottom", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "diagonal", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "border", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "diagonalUp", null, "0").ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "diagonalDown", null, "0").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "left", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "right", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "top", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "bottom", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "diagonal", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); /* * @@ -227,40 +230,40 @@ protected override async Task GenerateBorderAsync() * * */ - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "border", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "diagonalUp", null, "0").ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "diagonalDown", null, "0").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "left", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "right", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "top", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "bottom", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "diagonal", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); - await _context.NewXmlWriter.WriteStartElementAsync(_context.OldXmlReader.Prefix, "color", _context.OldXmlReader.NamespaceURI).ConfigureAwait(false); - await _context.NewXmlWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); - await _context.NewXmlWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "border", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "diagonalUp", null, "0").ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "diagonalDown", null, "0").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "left", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "right", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "top", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "bottom", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "thin").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "diagonal", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "style", null, "none").ConfigureAwait(false); + await NewWriter.WriteStartElementAsync(OldReader.Prefix, "color", OldReader.NamespaceURI).ConfigureAwait(false); + await NewWriter.WriteAttributeStringAsync(null, "rgb", null, "FF000000").ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); + await NewWriter.WriteEndElementAsync().ConfigureAwait(false); } [CreateSyncVersion] @@ -271,63 +274,63 @@ protected override async Task GenerateCellStyleXfAsync() *