无法从excel文件显示到jquery数据表 [英] unable to display to jquery datatables from an excel file

查看:71
本文介绍了无法从excel文件显示到jquery数据表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我正在尝试将数据从本地Excel文件加载到 jQuery Datatables 但是它没有显示它。



你能帮我解决一下为什么它不显示数据吗?我大部分时间都尝试过,但似乎无法理解我在这里缺少什么?



这是我的控制器代码供您检查:



Hi,

I am trying to load data from a local excel file to jQuery Datatables but it's not displaying it.

Could you please help me out as to why it's not displaying the data please? I mostly tried everything but can't seem to understand what am i missing here?

Here's my Controller code for your inspection:

public ActionResult AjaxHandler0(jQueryDataTableParamModel param, string StartDate = "", string EndDate = "")
{
   try
   {
      if (Request.IsAuthenticated == true)
      {
         string Path = @"C:\\5Newwithdate-1k.xls";
         OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '"
                             + Path + "';Extended Properties=" + (char)34 + "Excel 8.0;IMEX=1;" + (char)34 + "");
         OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]", con);
         con.Close();
         System.Data.DataTable data = new System.Data.DataTable();
         da.Fill(data);

         List<TopPlayed> daa = new List<TopPlayed>();

         foreach (DataRow p in data.Rows)
         {
            TopPlayed top = new TopPlayed()
            {
               TrackID = Convert.ToInt32(p.Field<double>("TrackID")),
               Date = p.Field<DateTime>("DateTimes"),
               Times = Convert.ToInt32(p.Field<double>("Times"))
             };
             daa.Add(top);
         }

         var listOrder = daa.Where(i => i.Date >= Convert.ToDateTime(StartDate) && i.Date <= Convert.ToDateTime(EndDate)).ToList();
         var newlist = listOrder.OrderByDescending(i => i.Times);

         return Json(new
         {
            sEcho = param.sEcho,
            iTotalRecords = newlist.ToList().Count(),
            iTotalDisplayRecords = listOrder.ToList().Count(),
            aaData = data
         }, JsonRequestBehavior.AllowGet);
      }
      return Json(new { Result = "ERROR" });
   }
   catch (Exception ex)
   {
      return Json(new { Result = "ERROR", Message = ex.Message });
   }
}







我用这个例子它显示一切都很好:




I used this example and it displays everything fine:

public ActionResult AjaxHandler(jQueryDataTableParamModel param)
{
   return Json(new{
      sEcho = param.sEcho,
      iTotalRecords = 97,
      iTotalDisplayRecords = 3,
      aaData = new List<string[]>()
      {
         new string[] {"1", "Microsoft", "Redmond", "USA"},
         new string[] {"2", "Google", "Mountain View", "USA"},
         new string[] {"3", "Gowi", "Pancevo", "Serbia"}
      }
   },
   JsonRequestBehavior.AllowGet);
}





提前感谢:)



thanks in advance :)

推荐答案

,con);
con.Close();
System.Data.DataTable data = new System.Data.DataTable ();
da.Fill(data);

List< TopPlayed> daa = new List< TopPlayed>();

foreach (DataRow p in data.Rows)
{
TopPlayed top = new TopPlayed()
{
TrackID = Convert.ToInt32(p.Field< double>( TrackID)),
Date = p.Field< DateTime>( DateTimes),
Times = Convert.ToInt32(p.Field< double>( 时间))
};
daa.Add(顶部);
}

var listOrder = daa.Where(i = > i.Date > = Convert.ToDateTime(StartDate)&& i.Date < = Convert.ToDateTime(EndDate))。ToList();
var newlist = listOrder.OrderByDescending(i = > i.Times);

return Json( new
{
sEcho = param.sEcho,
iTotalRecords = newlist.ToList()。Count(),
iTotalDisplayRecords = listOrder.ToList()。Count(),
aaData = data
}, JsonRequestBehavior.AllowGet);
}
return Json( new {Result = ERROR});
}
catch (例外情况)
{
return Json( new {Result = ERROR,Message = ex.Message});
}
}
", con); con.Close(); System.Data.DataTable data = new System.Data.DataTable(); da.Fill(data); List<TopPlayed> daa = new List<TopPlayed>(); foreach (DataRow p in data.Rows) { TopPlayed top = new TopPlayed() { TrackID = Convert.ToInt32(p.Field<double>("TrackID")), Date = p.Field<DateTime>("DateTimes"), Times = Convert.ToInt32(p.Field<double>("Times")) }; daa.Add(top); } var listOrder = daa.Where(i => i.Date >= Convert.ToDateTime(StartDate) && i.Date <= Convert.ToDateTime(EndDate)).ToList(); var newlist = listOrder.OrderByDescending(i => i.Times); return Json(new { sEcho = param.sEcho, iTotalRecords = newlist.ToList().Count(), iTotalDisplayRecords = listOrder.ToList().Count(), aaData = data }, JsonRequestBehavior.AllowGet); } return Json(new { Result = "ERROR" }); } catch (Exception ex) { return Json(new { Result = "ERROR", Message = ex.Message }); } }







我用这个例子它显示一切都很好:




I used this example and it displays everything fine:

public ActionResult AjaxHandler(jQueryDataTableParamModel param)
{
   return Json(new{
      sEcho = param.sEcho,
      iTotalRecords = 97,
      iTotalDisplayRecords = 3,
      aaData = new List<string[]>()
      {
         new string[] {"1", "Microsoft", "Redmond", "USA"},
         new string[] {"2", "Google", "Mountain View", "USA"},
         new string[] {"3", "Gowi", "Pancevo", "Serbia"}
      }
   },
   JsonRequestBehavior.AllowGet);
}





提前感谢:)



thanks in advance :)


这篇关于无法从excel文件显示到jquery数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆