OpenSpreadsheet icon indicating copy to clipboard operation
OpenSpreadsheet copied to clipboard

Error after updating DocumentFormat.OpenXml from 2.20.0 to 3.1.0

Open MikeWilliams-UK opened this issue 6 months ago • 0 comments

I am using OpenSpreadSheet 1.2.3 I have updated DocumentFormat.OpenXml from 2.20.0 to 3.1.0

I am now getting the following error when trying to create a spreadsheet

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.String.Equals(String a, String b)
   at DocumentFormat.OpenXml.Spreadsheet.VerticalAlignmentValues.DocumentFormat.OpenXml.IEnumValue.get_IsValid()
   at DocumentFormat.OpenXml.EnumValue`1.ValidateSet(T value)
   at DocumentFormat.OpenXml.OpenXmlSimpleValue`1.set_Value(T value)
   at OpenSpreadsheet.Configuration.StylesCollection.ConstructCellFormat(UInt32 borderId, UInt32 fillId, UInt32 fontId, UInt32 cellFormatId, UInt32 numberFormatId, HorizontalAlignmentValues horizontalAlignment, VerticalAlignmentValues verticalAlignment)
   at OpenSpreadsheet.Configuration.StylesCollection.AddCellFormat(UInt32 borderId, UInt32 fillId, UInt32 fontId, UInt32 cellStyleFormatId, UInt32 numberFormatId, HorizontalAlignmentValues horizontalAlignment, VerticalAlignmentValues verticalAlignment)
   at OpenSpreadsheet.Configuration.StylesCollection.AddDefaultStyles()
   at OpenSpreadsheet.Spreadsheet..ctor(String filePath)
   at TelemetryViewer.MainForm.ExportToExcel(List`1 rowsToExport, String fileName) in C:\Dev\Mike\MainForm.cs:line 1503
   at TelemetryViewer.MainForm.OnClick_ExportSelected(Object sender, EventArgs e) in C:\Dev\Mike\MainForm.cs:line 280
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

If I revert DocumentFormat.OpenXml to 2.20.0 all is ok

This is my code

using (var spreadsheet = new Spreadsheet(fileName))
{
    var worksheetStyle = new WorksheetStyle
    {
        ShouldFreezeHeaderRow = true,
        ShouldAutoFilter = true,
        ShouldAutoFitColumns = true,
        MaxColumnWidth = 200
    };

    using (var writer = spreadsheet.CreateWorksheetWriter<ExportGridDto, ExportGridMap>("Telemetry", worksheetStyle))
    {
        foreach (var exportDto in sorted)
        {
            writer.WriteRecord(exportDto);
        }
    }
}

using (var spreadsheet = new Spreadsheet(fileName)) is the line which explodes

MikeWilliams-UK avatar Aug 23 '24 11:08 MikeWilliams-UK