diff --git a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.Async.cs b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.Async.cs index 9790fe5a..2d16d021 100644 --- a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.Async.cs +++ b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.Async.cs @@ -325,16 +325,7 @@ private async Task WriteCellAsync(MiniExcelAsyncStreamWriter writer, string cell private async Task WriteCellAsync(MiniExcelAsyncStreamWriter writer, int rowIndex, int cellIndex, object value, ExcelColumnInfo p, ExcelWidthCollection widthCollection) { - var columnReference = ExcelOpenXmlUtils.ConvertXyToCell(cellIndex, rowIndex); - var valueIsNull = value is null || value is DBNull; - - if (_configuration.EnableWriteNullValueCell && valueIsNull) - { - await writer.WriteAsync(WorksheetXml.EmptyCell(columnReference, GetCellXfId("2"))); - return; - } - - if (p.CustomFormatter != null) + if (p?.CustomFormatter != null) { try { @@ -346,6 +337,15 @@ private async Task WriteCellAsync(MiniExcelAsyncStreamWriter writer, int rowInde } } + var columnReference = ExcelOpenXmlUtils.ConvertXyToCell(cellIndex, rowIndex); + var valueIsNull = value is null || value is DBNull; + + if (_configuration.EnableWriteNullValueCell && valueIsNull) + { + await writer.WriteAsync(WorksheetXml.EmptyCell(columnReference, GetCellXfId("2"))); + return; + } + var tuple = GetCellValue(rowIndex, cellIndex, value, p, valueIsNull); var styleIndex = tuple.Item1; diff --git a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.cs b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.cs index 96e16955..312b7d1a 100644 --- a/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.cs +++ b/src/MiniExcel/OpenXml/ExcelOpenXmlSheetWriter.cs @@ -325,15 +325,6 @@ private void PrintHeader(MiniExcelStreamWriter writer, List pro private void WriteCell(MiniExcelStreamWriter writer, int rowIndex, int cellIndex, object value, ExcelColumnInfo columnInfo, ExcelWidthCollection widthCollection) { - var columnReference = ExcelOpenXmlUtils.ConvertXyToCell(cellIndex, rowIndex); - var valueIsNull = value is null || value is DBNull; - - if (_configuration.EnableWriteNullValueCell && valueIsNull) - { - writer.Write(WorksheetXml.EmptyCell(columnReference, GetCellXfId("2"))); - return; - } - if (columnInfo?.CustomFormatter != null) { try @@ -346,6 +337,15 @@ private void WriteCell(MiniExcelStreamWriter writer, int rowIndex, int cellIndex } } + var columnReference = ExcelOpenXmlUtils.ConvertXyToCell(cellIndex, rowIndex); + var valueIsNull = value is null || value is DBNull; + + if (_configuration.EnableWriteNullValueCell && valueIsNull) + { + writer.Write(WorksheetXml.EmptyCell(columnReference, GetCellXfId("2"))); + return; + } + var tuple = GetCellValue(rowIndex, cellIndex, value, columnInfo, valueIsNull); var styleIndex = tuple.Item1; // https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.spreadsheet.cell?view=openxml-3.0.1