EPPlus导入DataTable日期时间的处理

来源:互联网 发布:网络文明有哪些 编辑:程序博客网 时间:2024/06/08 14:44

当我们用EPPlus导入Excel数据到DataTable中,如果某列是DateTime格式 ,我们应该如何处理呢?

解决思路:

1、首先要获取excel中的列的格式类型

2、判断格式类型是否是日期时间

关键代码如下:

public static DataTable ExcelToDt(string filePath, bool isSkipFirstRow, int cols, string logBusiness)        {            if (!string.IsNullOrEmpty(filePath))            {                try                {                    DataTable dt = new DataTable();                    for (int col = 0; col < cols; col++)                    {                        dt.Columns.Add(col.ToString(), Type.GetType("System.String"));                    }                    Stream stream = new FileStream(filePath, FileMode.Open);                    using (stream)                    {                        ExcelPackage package = new ExcelPackage(stream);                        ExcelWorksheet sheet = package.Workbook.Worksheets[1];                        int startRowIndx = sheet.Dimension.Start.Row + (isSkipFirstRow ? 1 : 0);                        for (int r = startRowIndx; r <= sheet.Dimension.End.Row; r++)                        {                            DataRow dr = dt.NewRow();                            for (int c = sheet.Dimension.Start.Column; c <= sheet.Dimension.End.Column; c++)                            {                                if (sheet.Cells[r, c].Style.Numberformat.Format.IndexOf("yyyy") > -1                                    && sheet.Cells[r,c].Value!=null)//注意这里,是处理日期时间格式的关键代码                                {                                    dr[c - 1] = sheet.Cells[r, c].GetValue<DateTime>();                                }                                else                                    dr[c - 1] = (sheet.Cells[r, c].Value ?? DBNull.Value);                            }                            dt.Rows.Add(dr);                        }                    }                    return dt;                }                catch (Exception ex)                {                    log.WriteLog(string.Concat(new string[]                    {                        LogConst.SEPARATION,                        logBusiness,MSG,                        LogConst.SEPARATION,                        Environment.NewLine,                        ex.Message,                        Environment.NewLine                    }));                    return null;                }            }            return null;        }


原创粉丝点击