Issue Switch statement after upgrading

I Have upgraded DocumentFormat.OpenXml to 3.0,0. After upgrading my excel reading function throws compile time error.

This is Fuction to get Cell values

   private static string GetCellValue(SpreadsheetDocument document, Cell cell)
        {
            DateTime ReleaseDate = new DateTime(1899, 12, 30);
            SharedStringTablePart stringTablePart = document.WorkbookPart.SharedStringTablePart;
            object value = string.Empty;
            CellFormats cellFormats = (CellFormats)document.WorkbookPart.WorkbookStylesPart.Stylesheet.CellFormats;
    
            string format = string.Empty; uint formatid = 0;
    
            if (cell.DataType == null)
            {
                CellFormat cf = new CellFormat();
                if (cell.StyleIndex == null)
                {
                    cf = cellFormats.Descendants<CellFormat>().ElementAt<CellFormat>(0);
                }
                else
                {
                    cf = cellFormats.Descendants<CellFormat>().ElementAt<CellFormat>(Convert.ToInt32(cell.StyleIndex.Value));
                }
    
                formatid = cf.NumberFormatId;
    
                if (cell != null && cell.InnerText.Length > 0)
                {
                    value = cell.CellValue.Text;
                    if (formatid > 13 && formatid <= 22)
                    {
                        DateTime answer = ReleaseDate.AddDays(Convert.ToDouble(cell.CellValue.Text));
                        value = answer.ToShortDateString();
                    }
    
                }
                else
                {
    
                    value = cell.InnerText;
                }
            }
    
            if (cell.DataType != null)
            {
                switch (cell.DataType.Value)
                {
                    case CellValues.SharedString:
                        return stringTablePart.SharedStringTable.ChildElements[Int32.Parse(cell.CellValue.Text)].InnerText;
                    case CellValues.Boolean:
                        return cell.CellValue.Text == "1" ? "true" : "false";
                    case CellValues.Date:
                        {
                            DateTime answer = ReleaseDate.AddDays(Convert.ToDouble(cell.CellValue.Text));
                            return answer.ToShortDateString();
                        }
                    case CellValues.Number:
                        return Convert.ToDecimal(cell.CellValue.Text).ToString();
                    default:
                        if (cell.CellValue != null)
                            return cell.CellValue.Text;
                        return string.Empty;
                }
            }
    
            return value.ToString();
        }
      

Error i Am getting on Switch function.

a constant value of type cellvalues is expected

enter image description here

Leave a Comment