OpenSpreadsheet
OpenSpreadsheet copied to clipboard
Error after updating DocumentFormat.OpenXml from 2.20.0 to 3.1.0
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