@@ -155,42 +155,39 @@ _ when IsOfType<DateTimeOffset>(propertyType) => DateTimeOffset.Parse(value),
155155 return cell . InnerText ;
156156
157157 string value = cell . InnerText ;
158- switch ( cell . DataType . Value )
158+ if ( cell . DataType . Value == CellValues . SharedString )
159159 {
160- case CellValues . SharedString :
161- // For shared strings, look up the value in the shared strings table.
162- // Get worksheet from cell
163- Debug . Assert ( cell . Parent != null , "cell.Parent != null" ) ;
164- OpenXmlElement parent = cell . Parent ;
165- while ( parent . Parent != null && parent . Parent != parent
166- && string . Compare ( parent . LocalName , "worksheet" , StringComparison . OrdinalIgnoreCase ) != 0 )
167- {
168- parent = parent . Parent ;
169- }
170- if ( string . Compare ( parent . LocalName , "worksheet" , StringComparison . OrdinalIgnoreCase ) != 0 )
171- {
172- throw new SpreadsheetParserException ( $ "Unable to find parent worksheet of cell { cell } ") ;
173- }
160+ // For shared strings, look up the value in the shared strings table.
161+ // Get worksheet from cell
162+ Debug . Assert ( cell . Parent != null , "cell.Parent != null" ) ;
163+ OpenXmlElement parent = cell . Parent ;
164+ while ( parent . Parent != null && parent . Parent != parent
165+ && string . Compare ( parent . LocalName , "worksheet" , StringComparison . OrdinalIgnoreCase ) != 0 )
166+ {
167+ parent = parent . Parent ;
168+ }
169+ if ( string . Compare ( parent . LocalName , "worksheet" , StringComparison . OrdinalIgnoreCase ) != 0 )
170+ {
171+ throw new SpreadsheetParserException ( $ "Unable to find parent worksheet of cell { cell } ") ;
172+ }
174173
175- var ws = parent as Worksheet ;
176- var ssDoc = ws ? . WorksheetPart ? . OpenXmlPackage as SpreadsheetDocument ;
177- var sstPart = ssDoc ? . WorkbookPart ? . GetPartsOfType < SharedStringTablePart > ( ) . FirstOrDefault ( ) ;
174+ var ws = parent as Worksheet ;
175+ var ssDoc = ws ? . WorksheetPart ? . OpenXmlPackage as SpreadsheetDocument ;
176+ var sstPart = ssDoc ? . WorkbookPart ? . GetPartsOfType < SharedStringTablePart > ( ) . FirstOrDefault ( ) ;
178177
179- return sstPart == null ? value : sstPart . SharedStringTable . ElementAt ( int . Parse ( value ) ) . InnerText ;
180- //this case within a case is copied from msdn.
181- case CellValues . Boolean :
182- return value switch
183- {
184- "0" => "FALSE" ,
185- _ => "TRUE"
186- } ;
187- case CellValues . Number :
188- case CellValues . Error :
189- case CellValues . String :
190- case CellValues . InlineString :
191- case CellValues . Date :
192- default :
193- return value ;
178+ return sstPart == null ? value : sstPart . SharedStringTable . ElementAt ( int . Parse ( value ) ) . InnerText ;
194179 }
180+
181+ if ( cell . DataType . Value == CellValues . Boolean )
182+ {
183+ return value switch
184+ {
185+ "0" => "FALSE" ,
186+ _ => "TRUE"
187+ } ;
188+ }
189+
190+ //All other types return the value
191+ return value ;
195192 }
196193}
0 commit comments