关键代码如下:

public static DataTable ExcelToDt(string filePath, bool isSkipFirstRow, int cols, string logBusiness)
            if (!string.IsNullOrEmpty(filePath))
                    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>();
                                    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;
                    当我们用EPPlus导入Excel数据到DataTable中,如果某列是DateTime格式 ,我们应该如何处理呢?解决思路:1、首先要获取excel中的列的格式类型2、判断格式类型是否是日期时间关键代码如下:public static DataTable ExcelToDt(string filePath, bool isSkipFirstRow, int cols, s
				
EPPlus 是.net的一个操作Excel的插件,封装了针对Excel的读取、写入等操作,并且该项目还是开源的。关于EPPlus的更多介绍我就不赘述了,可查看:http://epplus.codeplex.com/ 这里我简单的介绍如何将Excel的Sheet转换成DataTable,关于安装和其他的相关操作请谷歌或者百度下。 using System; using System.Coll...
public static object ChangeEPPlusCell(ExcelRange cell) if (null == cell.Value) return null; if (cell.Style.Numberformat.Format.IndexOf("yyyy") > -1 || (cell.Style.Numberformat.Format.IndexOf("月")
上篇说到,用NPOI导到.xlsx之后总是存在“文件已损坏”的提示,很烦。后来查了一下,最好是用NPOI导到.xls,用EPPLUS导到.xlsx。所以今天记录一下如何使用EPPLUSdataTable导入excel2007的文件。 首先还是如何添加引用 然后添加引用,就是最后一行 using OfficeOpenXml; using System; using System.Colle...
没错,依旧是这个美好的下着小雨可以睡懒觉的周六! 之前项目中写的dataTable列表要求按照创建日期进行排序,but虽然现在可以进行创建日期排序了,是在js中使用下面的代码配置的。 //5是时间字段所在的列号-1 "aaSorting": [[5, "desc" ]] 但是!最离谱的就是,这个只能对日期进行排序,乍一听没问题啊。问题在于,这个不能精确到时间啊,也就是说我按照天来可以对列表中的数据进行倒序排序,但是在一天内创建的数据他不能排序啊,听听听听,这多多少少有点气人的感觉了
double TimeNow = 44210; DateTime dt = new DateTime(1899, 12, 30); dt = dt.AddDays(TimeNow); Console.WriteLine(dt.ToString("dd/MM/yyyy")); public Stream DataTableToExcel(DataTable dataTable, string[] columns, string sheetName) using (ExcelPackage pck = new...
public static DataSet ReadExcelToDataSet(string filePath, string sheetName) DataSet ds = new DataSet(); DataRow dr; object objCellValue; strin...
2.在管理NuGet程序包中搜索EPPlus,点击进行安装,安装后便直接添加到引用了 二、在一般处理程序中使用EPPlus的OfficeOpenXml命名空间,进行datatableexcel处理 先上张将datatable的数据导出到excel效果图 下面贴代码: /// 将excel中的数据导入DataTable中 /// </summary> /// <param name="isFirstRowColumn">第一行是否是DataTable的列名</param> /// <returns>... ```csharp dataTable.DefaultView.Sort = "列名 ASC|DESC"; dataTable = dataTable.DefaultView.ToTable(); 其中,`ASC`表示按升序排列,`DESC`表示按降序排列,列名需要替换成您的实际列名。这段代码会将排序后的结果存储在新的DataTable中,您可以将其用于数据绑定或其他操作。