Reading a date from xlsx using open xml sdk

前端 未结 7 1628
长情又很酷
长情又很酷 2020-12-14 01:25

I have a date in format \"4/5/2011\" (month/day/year) in a xlsx file in one of the cells. Im trying to parse the file and load those data in some classes.

So far the

7条回答
  •  一生所求
    2020-12-14 01:47

    I do this after I retrieve any inline string:

        private static object Convert(this DocumentFormat.OpenXml.Spreadsheet.CellValues value, string content)
        {
            switch (value)
            {
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.Boolean:
                    if (content.Length < 2)
                    {
                        return content?.ToUpperInvariant() == "T" || content == "1";
                    }
                    return System.Convert.ToBoolean(content);
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.Date:
                    if (double.TryParse(content, out double result))
                    {
                        return System.DateTime.FromOADate(result);
                    }
                    return null;
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.Number:
                    return System.Convert.ToDecimal(content);
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.Error:
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.String:
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.InlineString:
                case DocumentFormat.OpenXml.Spreadsheet.CellValues.SharedString:
                default:
                    return content;
            }
        }
    

提交回复
热议问题